- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                数电课程设计组合逻辑设计
                    
数字逻辑
设计
及
应用
课程设计
组合逻辑设计
题目
使用74LS83构成4位二进制全加\全减器。
具体要求:1)列出真值表;
          2)画出逻辑图;
          3)用Verilog HDL进行仿真;
设计原理
  a、芯片简介
74LS83本身为一个4位全加器,具有A1、A2、A3、A4、B1、B2、B3、B4、C0九个输入端,其中A1、A2、A3、A4、B1、B2、B3、B4是加数和被加数的数据输入端,C0为初始进位。S1、S2、S3、S4、C4五个输出端口,S1、S2、S3、S4为本位和,C4为进位输出。
                   74LS83逻辑图
b、设计思路
由于芯片本身为4位全加器所以加法方面就只要用它自身,只要加入一个控制端来控制它进行加法还是减法和减法的实现原理即可。在二进制中减法的运算使用其补码(two’s complement)来进行,把原来的正数转换为负数的补码变成加法运算。我们知道,从一个数的原码到它的相反数的补码是进行逐位取反再在末位加1,为了实现这一加1运算可以在让电路做减法时把初始进位设为1。加入一个控制端Adder_Subtraction来控制电路做加法还是减法,令:Adder_Subtraction=1时电路做加法,Adder_Subtraction=0时电路做减法。则有如下关系:
初始进位端
C0=~Adder_Subtraction + Adder_Subtraction  C0(初始进位输入)
A1~A4不作变化
B1=~B1  ~Adder_Subtraction | B1  Adder_Subtraction
B2=~B2  ~Adder_Subtraction | B2  Adder_Subtraction
B3=~B3  ~Adder_Subtraction | B3  Adder_Subtraction
B4=~B4  ~Adder_Subtraction | B4  Adder_Subtraction
设计结果
a、Verilog 程序
module adder(A1,A2,A3,A4,B1,B2,B3,B4,C0,Adder_Subtraction,S1,S2,S3,S4,C4);
input	A1,A2,A3,A4,B1,B2,B3,B4,C0,Adder_Subtraction;
output	S1,S2,S3,S4,C4;
wire	WIRE_0,WIRE_1,WIRE_2,WIRE_3,WIRE_4,WIRE_23,
WIRE_6,WIRE_7,WIRE_9,WIRE_11,WIRE_12,WIRE_13,WIRE_14,WIRE_15,WIRE_16,WIRE_17,WIRE_18,
WIRE_19,WIRE_21;
\7483 	b2v_inst(
	.B4(WIRE_0),
	.C0(WIRE_1),
	.A1(A1),
	.A2(A2),
	.B1(WIRE_2),
	.B2(WIRE_3),
	.A3(A3),
	.B3(WIRE_4),
	.A4(A4),
	.S3(S3),
	.S4(S4),
	.S2(S2),
	.C4(C4),
	.S1(S1));
assign	WIRE_21 =  ~B3;
assign	WIRE_15 = WIRE_23  WIRE_6;
assign	WIRE_13 = WIRE_7  WIRE_23;
assign	WIRE_18 = Adder_Subtraction  B3;
assign	WIRE_11 = WIRE_9  WIRE_23;
assign	WIRE_14 = Adder_Subtraction  B2;
assign	WIRE_19 = Adder_Subtraction  C0;
assign	WIRE_12 = B1  Adder_Subtraction;
assign	WIRE_2 = WIRE_11 | WIRE_12;
assign	WIRE_3 = WIRE_13 | WIRE_14;
assign	WIRE_7 =  ~B2;
assign	WIRE_0 = WIRE_15 | WIRE_16;
assign	WIRE_4 = WIRE_17 | WIRE_18;
assign	WIRE_6 =  ~B4;
assign	WIRE_23 =  ~Adder_Subtraction;
assign	WIRE_9 =  ~B1;
assign	WIRE_1 = WIRE_19 | WIRE_23;
assign	WIRE_17 = WIRE_21  WIRE_23;
assign	WIRE_16 = Adder_Subtraction  B4;
e
                
原创力文档
                        

文档评论(0)