用面包板搭建4bit加法器

这篇具有很好参考价值的文章主要介绍了用面包板搭建4bit加法器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验目的

4bit加法器是一种数字电路,用于将两个 4 bit的二进制数相加,生成一个 4 bit的和。实验目的如下:

(1)学习数字电路的基本概念和实现方法

(2)熟悉 4 bit加法器的设计和实现原理

(3)学会使用数字电路仿真工具模拟和验证电路的功能

(4)使用晶体管搭建一个4bit加法器电路

实验要求

下面是 4 bit加法器设计、仿真和实现的实验要求:

(1)利用三极管搭建逻辑门并进行仿真测试

(2)利用逻辑门搭建一位半加器并进行仿真测试

(3)在一位半加器的基础上搭建一位全加器并进行仿真测试

(4)利用一位全加器进行适当地级联,搭建 4­ bit加法器,并进行仿真测试

(5)进行实物搭建并测试,用 LED 灯的亮灭表示结果。亮表示 1,灭表示 0

(6)提交实物和实验报告

实验器材

​ 三极管 100 只,1 kΩ 电阻 50 只,10 kΩ 电阻 100 只,发光管 5 只,电源 1 个,面包板 1 块,

USB 连接线 1 根,万用表 1 只,跳线若干,如图所示。

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

评分标准

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

实验原理

三极管

​ 利用三极管导通特性,我们可以用它来搭建简单的逻辑门电路。

​ 这里推荐这篇文章的讲解三极管等搭建逻辑门电路。

​ 其实到目前不需要太了解三极管的输入输出特性,到了模电会学到的,现在只要知道怎么用就行了~

非门

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

与门

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

或门

​ 这个算是我自己创造的?hhhh~

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 可以看到这节点3的电压是由1-3路和2-3路决定的,只要有一路及以上是高电平,3节点也就是高电平。所以3的输出就是1-3路和2-3路取或的结果。

基础门电路

数字电路中常见门电路有以下几种,其中最常用的是前三个“与门”“或门”“非门”

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 在搭整个4bit加法器电路之前,我们先要分析需要利用什么样的逻辑电路。首先要搭4bit,我们先考虑搭1bit的加法器;我们知道加法会产生进位,所以要考虑该位计算好后的进位;另外,除了第0位外,还要考虑低一位的进位。因此,4bit加法器应该是由一个半加器和三个全加器组成的。我们分析半加器和全加器的逻辑真值表

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

得到它们的逻辑表达式:

​ 半加器:
S = A ⊕ B S = A ⊕ B S=AB

C = A B C = AB C=AB

​ 全加器:
S = A ⊕ B ⊕ C i n S = A ⊕ B ⊕ C_{in} S=ABCin

C o u t = ( A ⊕ B ) C i n + A B C_{out} = (A ⊕ B)C_{in} + AB Cout=(AB)Cin+AB

​ 我们看到,异或运算是最常用的,所以在下面的电路搭建前,要尽可能化简异或门的电路,这样能尽可能少地使用晶体管。

1bit半加器

​ 1bit半加器是一种数字电路,可以将两个二进制位相加并生成一个二进制位的和和一个进位位。

​ 根据上面的分析,我们需要实现异或门。观察常见门电路的逻辑真值表,最自然的想法是与门取非后同或门取与。它的逻辑表达式为
S = A ⊕ B = ( A B ) ‾ ( A + B ) S = A ⊕ B= \overline{(AB)}(A+B) S=AB=(AB)(A+B)
半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 接下来考虑进位的实现,类似的,我们发现可以直接用与门得到进位的结果。

​ 逻辑表达式:
C = A B C = AB C=AB
​ 逻辑电路符号

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 综合两者,则我们能得到这样的一个,拥有两bit输入,计算出1bit本位和1bit进位的半加器。

​ 逻辑表达式:
S = A ⊕ B = (AB) ‾ ( A + B ) S = A ⊕ B= \overline{\text{(AB)}}(A+B) S=AB=(AB)(A+B)

C = A B C = AB C=AB

​ 逻辑电路:

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 但是我们看到,使用的晶体管数量较大,一个半加器就用了2+1+2+2=9个,若考虑全加器,那总数至少60+,这样首先损耗会很大,其次搭建麻烦,debug会很难,再者给的面包板显然搭不下。所以我们考虑简化电路,减少晶体管的数量。

​ 进位的计算已经很简便了,只用了两个晶体管,我们考虑本位的化简。

​ 可以看到计算sum和carry都用了与门,所以可以考虑与门①和与门②共用。但是与门③不能再省掉了,这样一共要用5个三极管。

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 搭出来第一个较为简化的半加器后,我也有了信心去继续化简。这时我在想,电路中尽可能少用与门,尽可能用或门应该可以让电路更加简化,因为与门需要2个晶体管,非门要1一个,而或门不需要晶体管。于是继续观察门电路的真值表,我发现,可以用或非门或上与门再取非,同样与门可以共用,这样就是0+1+2+0+1=4个晶体管,减少掉一个也是进步了!

​ 于是逻辑表达式为:
S = A ⊕ B = A + B ‾ + A B ‾ S = A ⊕ B=\overline{\overline{A+B}+AB} S=AB=A+B+AB
​ 最终的逻辑电路是这样的:

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

1bit全加器

​ 全加器就是在半加器的基础上,多一个低位的进位,所以就要在本位和进位的计算上考虑低一位的进位。因此,全加器是一种数字电路,可以将三个二进制位相加并生成一个二进制位的和和一个进位位。它的逻辑电路符号如下:

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 在“基础门电路”一节分析的基础上,我们得到全加器的逻辑表达式
S = A ⊕ B ⊕ C i n S = A ⊕ B ⊕ C_{in} S=ABCin

C o u t = ( A ⊕ B ) C i n + A B C_{out} = (A ⊕ B)C_{in} + AB Cout=(AB)Cin+AB

​ 再结合半加器的实现,我们可以将得到这样的仿真电路

4bit加法器

​ 将半加器和三个全加器结合起来,本位的计算作为输出,低位进位作为下一位高位的进位输入即可。

仿真搭建

​ 这里注意**不要一口气把整个加法器搭完!**要搭一小部分就测试一下,不然调bug有你苦头吃的!

与门

00

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

01

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

10

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

11

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 结果完全正确!

或门

00

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

01

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

10

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

11

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 结果完全正确!

非门

异或门

00

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

01

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

10

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

11

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 结果完全正确!

1bit半加器

仿真电路如图

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

00

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

01

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

10

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

11

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 在这里我们看到,进位的电平从5V->3.77V,有了明显的下降,这样容易使得后面几个全加器的运算不准,所以要考虑升一下电平。这里我采取的是通过两个非门拉高电平。(其实在半加器这里我最终没有这样做,因为半加器只有一个,电平降低的影响不大,还要多用俩晶体管,所以我只拉高了全加器进位的电平)

​ 结果完全正确!

1bit全加器

​ 根据全加器的逻辑表达式,我们可以直接得到下面的仿真电路:

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 但是这里求 C o u t C_{out} Cout的与门实在太丑了,所以我转了一下:

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 仿真的时候发现进位电平降得很厉害

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 并且这个进位还要作为下一位的输入,所以必须考虑拉高电平。按照之前的分析,我们用两个非门拉高电平:

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 这样进位电平足够了~

​ 测试结果如下:

有低位进位:

00

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

01

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

10

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

11

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

无低位进位:

00

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

01

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

10

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

11

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

结果完全正确!

2bit加法器

​ 搭一个2bit的测试一下。整体电路如下

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 随机测试三组数据,万用表示数从上到下是输出结果从低位到高位

10+11

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 转化成数字,计算结果为101,正确

00+01

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 转化成数字,计算结果为001,正确

11+11

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 转化成数字,计算结果为110,正确

​ 结果完全正确!

4bit加法器

​ 整体电路如下

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 随机测试三组数据,万用表示数从上到下是输出结果从低位到高位

1111+1111

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 即输出结果为11110,结果正确!

0101+1101

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 即输出结果为10010,结果正确!

0010+0011

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 即输出结果为00101,结果正确!

​ 综上,结果完全正确!

​ 接下来就可以按照仿真电路图来搭建实物电路。

实物搭建

面包板的使用

​ 说实话我一开始都不知道面包板咋用呜呜呜,后来查了一下发现是这样的,下图画线部分是连通的,五格为一组。

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 同样,老师给的面包板上最上方两行也是各自连通的。

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 所以连通部分就不需要导线连接了。另外,也**不能把元件插在同一组的五格!**不然就被短路掉力!

电源的使用

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

​ 输入:USB接口,DC6.5V~12V

​ 输出:两组电源输出,高电平可选3.3V或5V,低电平为0V,即接地

​ 其他:开关打开则有电压输出,并且指示灯亮

如图插在面包板上即可为其供电。

搭建的注意事项

​ 实物搭建的思路仍然是**不要一口气把整个加法器搭完!**要搭一小部分就测试一下,不然调bug有你苦头吃的!(尤其是实体电路,深夜debug得想亖一亖 TAT)

​ 另外,尽可能按照电路图的布局去搭,这样可以边跑仿真,根据某个节点的仿真输出,用万用表测该处的电压值,相对比较容易找错误就比较方便。不过缺点就是排线会很多,眼睛容易看花搭错。

​ 老师给的面包板经历了三年的摧残,板孔特别松,而且电阻的引脚还特别细,经常容易接触不良,可以考虑多个电阻引脚直接插在一个孔里。(虽然有可能越插越大,但最方便的办法就这个了TAT,下一届也这样沿用或许就能催学校换板子了bushi)

​ 总结下来有这些注意点

  1. 搭完一个小模块就测试一下
  2. 尽可能按电路图布局去搭建
  3. 搭的时候注意模块化搭建
  4. 多个引脚插一个孔
  5. 考虑用元件代替引线来节约排线
  6. 同样功能的引线用一个颜色
  7. 注意节省空间,尽可能紧凑

错误快速排查

  1. 保证电路接线没问题时,若输出错误,可以拍一拍或按一按元件和接线(嗯,就跟对待老式电视那样)
  2. 沿着错误输出一路测电平,测到错误后检查周围接线或按一按元件和接线

部分搭建过程

(因为是一个人搭,拍照很麻烦,所以只有几张照片TAT)

半加器进位

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

电源连线

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

3bit加法器

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

4bit输出

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

5bit输出

半加器面包板连接电路,硬件,单片机,fpga开发,嵌入式硬件

心得体会

​ 这个加法器本来是三人一组的课程大作业,后来只有我一个人完成了全部。并且验收结果还挺好,所以按贡献比可能拿到250/100多分力hhhh。不过上限只有100,所以还是分类了一些贡献比给“组员”。我一共投入了20+个小时完成。过程虽然很麻烦,但是学到了很多~文章来源地址https://www.toymoban.com/news/detail-776332.html

  1. 将一个实际的问题抽象成逻辑电路,再通过逻辑电路搭建一个实体电路,实现目标功能,这样的过程很锻炼动手操作的能力。也算是一段项目经历了。
  2. 大作业也是很锻炼毅力和耐心的。过程中遇到了无数问题,一开始面包板和电源都不会用(可能也是因为我没上过课TAT)后面搭仿真电路也遇到输出和想象中相反,电阻选取不合适等问题,最后加法器的搭建更是问题百出,因为不知道是接线错了,还是解除不良,或是电阻看错了,电压的测试结果也百思不得其解。最后还是一个个克服了这些问题,“坚韧不拔”地完成了大作业hhhh(因为一开始就相信自己肯定能搭完的hhhh)。完成的时候是凌晨一两点,距离验收只有六七个小时了,但是也真的很佩服自己能不受ddl的压迫,沉住气把加法器搭完,还是增长了很多自信的。
  3. 大作业完成的过程也提醒我下次要合理安排长期任务了。作业发布没几天我就把仿真搭完了,觉得电路搭一下很方便的,加上其他事情也很多,一直拖到验收前两天才开始搭实体电路。第二天早上8点要验收,我前一天2点睡,5点起来搭,一直搭到第二天2点,7:30起床飞奔到实验室,各种输出又全乱了,于是继续调了一个小时bug,最后终于成功验收了。虽然完成了,但完成的过程很紧迫狼狈TAT,以后确实要考虑一下更合理分配时间了。
  4. 最后验收,同学们知道我一个人搭电路都说“tql!”“我给你互评满分!”老师也对我表示了赞许,也满足了我一些虚荣心吧hhh
    总之,真正学到东西的感觉好棒!

到了这里,关于用面包板搭建4bit加法器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • verilog全加器和四位加法器

    半加器: 保存为half_addr.bsf之后,可以在该项目中添加半加器 全加器: 通过RTL-Viewer查看半加器和全加器 添加全加器到项目 在process里面先后执行start fitter 和start time analyzer 生成testbench模板 修改testbench文件: 添加到项目 注意在联合modelsim时让generate functinal simulation netlist值为

    2024年02月07日
    浏览(47)
  • FPGA加法器实现与资源消耗-四位数加法器

    测试在实现半加器和全加器的基础上开始实现多位数的加法器 可以按照一位全加器,然后循环实现多位加法器。 相加正确,功能正确。 可能看不太清,但是基本就是按照与、或、异或进行连接,而且是串行实现的。 分析可知,工具使用两个查找表(SUM[0]_INST_0,SUM[1]_INST_0)实

    2024年02月03日
    浏览(50)
  • Verilog 加法器/减法器

    目录 1位加法器 8位加法器 8位补码加减法器  32位补码加减法器       

    2024年02月11日
    浏览(43)
  • 数字IC经典电路(1)——经典加法器的实现(加法器简介及Verilog实现)

    加法器是数字系统最基础的计算单元,用来产生两个数的和,加法器是以二进制作运算。负数可用二的补数来表示,减法器也是加法器,乘法器可以由加法器和移位器实现。加法器和乘法器由于会频繁使用,因此加法器的速度也影响着整个系统的计算速度。对加法器的设计也

    2024年02月14日
    浏览(54)
  • 【FPGA】Verilog:二进制并行加法器 | 超前进位 | 实现 4 位二进制并行加法器和减法器 | MSI/LSI 运算电路

    0x00 并行加法器和减法器 如果我们要对 4 位加法器和减法器进行关于二进制并行运算功能,可以通过将加法器和减法器以 N 个并行连接的方式,创建一个执行 N 位加法和减法运算的电路。 4 位二进制并行加法器 4 位二进制并行减法器

    2024年02月05日
    浏览(58)
  • 加法器电路

    图3 图三中,由虚短知: V- = V+ = 0 ……a 由虚断及基尔霍夫定律知,通过R2与R1的电流之和等于通过R3的电流,故 (V1 – V-)/R1 + (V2 – V-)/R2 = (V- –Vout)/R3 ……b 代入a式,b式变为V1/R1 + V2/R2 = Vout/R3 如果取R1=R2=R3,则上式变为-Vout=V1+V2,这就是传说中的加法器了。 图4 请看图四。因为

    2024年02月14日
    浏览(36)
  • Quartus 入门 —— 加法器

    这里使用的 intel 的 芯片为 EP4CE115F29C7 的开发板,软件使用的是 Quartus(Quartus Prime 18.1) 的版本 首先点击新建项目: 下面我们就直接点击下一步到芯片选择部分: 这里我们需要选择 Cyclone IV E 的 EP4CE115F29C7 芯片 然后这里我们选择使用 ModelSim-Altera 进行仿真,然后我们直接点击下

    2024年02月08日
    浏览(40)
  • UVM实战--加法器

    这里以UVM实战(张强)第二章为基础修改原有的DUT,将DUT修改为加法器,从而修改代码以使得更加深入的了解各个组件的类型和使用。 和第二章的平台的主要区别点 (1)有两个transaction,一个为transaction_i,一个为transaction_o,由于DUT的输入输出值并不相同,输入为a,b,cin,输

    2024年02月06日
    浏览(45)
  • 运算放大电路(三)-加法器

    加法器 由虚短知: V- = V+ = 0 ……a 由虚断及基尔霍夫定律知,通过R2与R1的电流之和等于通过R3的电流,故 (V1 – V-)/R1 + (V2 – V-)/R2 = (Vout – V-)/R3 ……b 代入a式,b式变为 V1/R1 + V2/R2 = Vout/R3 如果取 R1=R2=R3 则上式变为 Vout=V1+V2 这就是传说中的加法器了。 因为虚断,运放同向端没

    2024年02月04日
    浏览(56)
  • Verilog实现超前进位加法器

    在CPU等对性能要求较高的电路中,一般都会采用超前进位加法器,因为超前进位加法器的延时相对来说比较小。下面讲述超前进位加法器的原理: 我们知道,一个三输入,二输出的全加器,其逻辑关系为 S = A ⊕ B ⊕ C i n S=Aoplus Boplus C_{in} S = A ⊕ B ⊕ C in ​ C o u t = ( A B ) ∣

    2023年04月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包