1、74181ALU设计说明算术逻辑单元ALU的设计班 级:计科1201班学 号:1208030113姓 名:何志强设计日期:2014-11-20西安科技大学计算机科学与技术学院1. 实验题目 算数逻辑单元ALU的设计2. 实验目的 设计一个简单的算数逻辑单元,并用Verilog实现,得到仿真波形。3. 实验设备 安装有modelsim和Quartus2的PC机一台4.实验原理算术逻辑单元ALU集成了各种算术运算和逻辑运算部件的功能,包括加、减、乘、除等数值运算、逻辑运算、移位运算等。把这些功能集成在一个逻辑部件ALU之中,使得ALU具有算术运算和逻辑运算功能。这种设计方法可以使得功能比较紧凑,简
2、化对逻辑运算部件和算术运算部件的使用。同时还能最大限度的复用某些逻辑部件,从而减少逻辑电路的使用。3.1 设计ALU首先要对各种算数逻辑运算进行编码。表1为本文设计的处理器实用的ALU功能编码表。表1 ALU功能编码表算术逻辑单元ALU的实现算术逻辑单元ALU的内部详细设计算术逻辑单元ALU的Verilog的实现 module ALU181A(S,A,B,F,M,CN,CO,FZ);input3:0 S;input7:0 A,B;input M,CN;output7:0 F;output CO,FZ;wire7:0 F;wire CO;wire8:0 A9,B9;reg FZ;reg8:0 F
3、9;assign A9=1b0,A;assign B9=1b0,B;always (M or CN or A9 or B9 or S) begincase(S)4b0000: if(M=0) F9=A9+CN; else F9=A9;4b0001: if(M=0) F9=(A9|B9)+CN; else F9=(A9)&B9;4b0010: if(M=0) F9=(A9|(B9)+CN; else F9=A9;4b0011: if(M=0) F9=9b000000000-CN; else F9=9b000000000;4b0100: if(M=0) F9=A9+(A9&B9)+CN; else
4、 F9=(A9&B9);4b0101: if(M=0) F9=(A9+B9)+(A9&B9)+CN); else F9=B9;4b0110: if(M=0) F9=A9-B9-CN; else F9=A9B9;4b0111: if(M=0) F9=A9+(B9)-CN; else F9=A9&(B9);4b1000: if(M=0) F9=A9+(A9&B9)+CN; else F9=(A9)+B9;4b1001: if(M=0) F9=A9+B9+CN; else F9=(A9B9);4b1010: if(M=0) F9=A9+(B9)+(A9&B9)+CN; else F9=B9;4b10
5、11: if(M=0) F9=(A9&B9)+CN; else F9=(A9&B9);4b1100: if(M=0) F9=A9+A9+CN; else F9=9b000000001;4b1101: if(M=0) F9=(A9+B9)+A9+CN; else F9=A9+(B9);4b1110: if(M=0) F9=A9+(B9)+A9+CN; else F9=A9+B9;4b1111: if(M=0) F9=A9-CN; else F9=A9;default: F9=9b000000000;endcaseendassign F=F97:0;assign CO=F98;endmodule/
6、includeALU181.vmodule TestA; reg7:0 a,b; reg3:0 s; reg m,cn; wire7:0 f; wire co,fz; initial begin a=8b00000001; b=8b00000001; s=4b1001; m=0; cn=0; #2000 a=8b10001001; b=8b00000001; s=4b1001; m=0; cn=0; #2000 a=8b00010001; b=8b01001011; s=4b1001; m=0; cn=0; #2000 a=8b01001001; b=8b01001001; s=4b1001;
7、 m=0; cn=0; #2000 a=8b11000001; b=8b10101001; s=4b1001; m=0; cn=0; #2000 a=8b01010001; b=8b01000011; s=4b1001; m=0; cn=0; #2000 a=8b00001101; b=8b01001001; s=4b1001; m=0; cn=0;endALU181A alu181a1(.S(s),.A(a),.B(b),.F(f),.M(m),.CN(cn),.CO(co),.FZ(fz);endmodule6实验结果分析 实验结果: 在这个实验中,我以74181ALU为设计实例,用verilog实现,在测试时使用的变量值分别为:a=8b00001101;b=8b01001001;s=4b1001; m=0;cn=0;a,b的值采用了多组进行测试,基本实现了74181ALU的所有功能。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1