去评论
推扬网

王老豹:如何用四个全加器构成4位并行进位加法器

admin
2020/08/11 18:09:27

赵端的回答:

用74LS283芯片和74LS86芯片通过拨码开关来控制高低电平作为二进制的0和1,用普通led灯来展现高低电平状态,高电平则灯亮,低电平则灯灭,通过2位的拨码开关来实现加法器和减法器的转换,经过两组芯片后电流通过led,led灯亮,则表示为1,如果灯灭,则表示为0,设计一个电源电路,将9v的交流电压降到5v,再输入到加法器、减法器电路,能够实现8位的二进制相加或则相减,结果的范围应该在00000000到111111110之间,八位二进制数换算成三位十进制数最大为255。 通过86芯片的与非门,实现逢八进一,然后将74823芯片进行串联实现8位数相加减,超前进位并行加法器74LS283可以实现四位二进制数的相加,需要两个74LS283进行串联,这样就得到一个新的8位二进制数,其范围在000到510之间。实现4位并行进位加法器。 扩展资料 逻辑优化 逻辑优化设计的主要目的是减少信号的翻转活动,它通过将电路的逻辑功能尽可能的分解、优化, 减少逻辑深度,减少信号假翻转,从而使翻转活动最小,减小电路的功耗。 令gsi=ai⊙bi ,则式(1)可以改写为si= gsi⊙ci ,先考察第一组CLA s0=gs0⊙c0 s1=gs1⊙c1=gs1⊙(g0+p0c0)? s2=gs2⊙c2=gs2⊙(g1+p1g0+p1p0c0)? s3=gs3⊙c3=gs3⊙(g2+p2g1+p2p1g0+p2p1p0c0) 因为g, p的值只有“00”、“01”、“11”这三种组合,结合布尔代数性质A⊙0=、A⊙1=A可知,s3的值最终可以归结为3个表达式:gs3, 3和(gs3⊙c0),同样,s2值的3个表达式为gs2, 2和(gs2⊙c0),s1为gs1, 1和(gs1⊙c0)。于是式(8)至式(11)就可以化为 s0=c0(gs0)+ 0 (0) (12) s1=c0(gs1⊙p0)+0(gs1⊙g0) (13) s2=c0(gs2⊙(g1+p1p0))+ 0 (gs2⊙(g1+p1g0))(14) s3=c0(gs3⊙(g2+p2g1+p2p1p0)) +0(gs3⊙(g2+p2g1+p2p1g0)) (15) 其他组,如s4~s7、s8~s11等,情况和s0~s3一样。 参考资料来源:百度百科-加法器

Bai的回答:

我已经做好的,全加器你自己弄吧……

王樱璇的回答:

简介编辑 多位全加器连接可以是逐位进位,也可以是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。 器物分类编辑 半加器 能对两个1位二进制数进行相加求和及进位的逻辑电路称为半加器。或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。图1为半加器的方框图。图2为半加器原理图。其中:A、B分别为被加数与加数,作为电路的输入端;S为两数相加产生的本位和,它和两数相加产生的向高位的进位C一起作为电路的输出。 根据二进制数相加的原则,得到半加器的真值表如表1所列。 信号输入 信号输出 A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 表1 半加器的真值表 (二)全加器 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图4为全加器的方框图。图5全加器原理图。被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。能实现全加运算功能的电路称为全加电路。全加器的逻辑功能真值表如表2中所列。 信号输入端 信号输出端 Ai Bi Ci Si C0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 表2 全加器逻辑功能真值表 多位全加器连接可以是逐位进位,也可以是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。 工作原理 加法器是数字系统中的基本逻辑器件。例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 四位全加器可对两个多位二进制数进行加法运算,同时产生进位。当两个二进制数相加时,较高位相加时必须加入较低位的进位项(Ci),以得到输出为和(S)和进位(C0)。 (一)半加器 VHDL语言描述语句为: so<=a xor b; co<=a and b 程序设计: library ieee; use ieee.std_logic_1164.all; entity h_adder is port (a,b:in std_logic; so,co:out std_logic); ――定义输入、输出端口 end h_adder; architecture bh of h_adder is begin so<=a xor b; ――“异或”运算 co<=a and b; ――“与”运算 end bh; 四位全加器程序代码如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity add4 is port(cin:in std_logic; a,b:in std_logic_vector(3 downto 0); s:out std_logic_vector(3 downto 0); cout:out std_logic); end add4; architecture beh of add4 is signal sint:std_logic_vector(4 downto 0); signal aa,bb:std_logic_vector(4 downto 0); begin aa<='0' & a(3 downto 0); --4位加数矢量扩为5位,提供进位空间 bb<='0' & b(3 downto 0); sint<=aa+bb+cin; s(3 downto 0)<=sint(3 downto 0); cout<=sint(4); end beh; 四位全加器 Verilog HDL语言代码如下: module adder4(cout,sum,a,b,cin); output[3:0] sum; output cout; input[3:0] a,b; input cin; assign {cout,sum}=a+b+cin; endmodule