7418alu算术逻辑单元


#7418alu算术逻辑单元

  姓名:xx                         学号:xxx         		        班级:计科班
 实验名称:74181alu	          实验性质:综合性实验			时间:2018.11.13

一、实验目的


设计一个简单的算术逻辑单元,并用Verilog实现,在实验箱上演示。


二、实验原理与内容

算术逻辑单元ALU集成了各种算术运算和逻辑运算部件的功能,包括加、减、乘、除等数值运算、逻辑运算、移位运算等。把这些功能集成在一一个逻辑部件ALU之中,使得ALU具有算术运算和逻辑运算功能。这种设计方法可以使得功能比较紧凑,简化对逻辑运算部件和算术运算部件的使用。同时还能最大限度的复用某些逻辑部件,从而减少逻辑电路的使用。
设计ALU首先要对各种算数逻辑运算进行编码。表1为本文设计的处理器实用的ALU功能编码表。


三、实验过程

源程序:

module ALU181A(S,A,B,F,M,CN,CO,FZ); 
input[3:0] S;
input[7:0]
A,B;
input M,CN; 
output[7:0] F; 
output CO,FZ; 

wire[7:0] F; 

wire CO; 

wire[8:0]
A9,B9;

 reg FZ; 

reg[8:0] F9; 

assign A9={1'b0,A}; 

assign B9={1'b0,B}; 


always @(M or CN or A9 or B9 or S) begin
case(S)  4'b0000: if(M==0)
F9<=A9+CN;  

else F9<=~A9; 4'b0001: if(M==0)
F9<=(A9|B9)+CN; 

else F9<=(~A9)&B9;  

4'b0010: if(M==0) F9<=(A9|(~B9))+CN;  

else F9<=~A9; 


4'b0011: if(M==0) F9<=9'b000000000-CN;  

else F9<=9'b000000000; 

 4'b0100:
if(M==0) F9<=A9+(A9&~B9)+CN;  

else F9<=~(A9&B9);  

4'b0101: if(M==0) F9<=((A9+B9)+(A9&~B9)+CN); 

else F9<=~B9; 

4'b0110: if(M==0) 
F9<=A9-B9-CN; 

else 
F9<=A9^B9; 

 4'b0111: if(M==0)
F9<=A9+(~B9)-CN; 

 else
F9<=A9&(~B9);  4'b1000: if(M==0)
F9<=A9+(A9&B9)+CN; 

 else
F9<=(~A9)+B9; 4'b1001:  if(M==0)  F9<=A9+B9+CN;    

else 
F9<=~(A9^B9);  4'b1010:
if(M==0) F9<=A9+(~B9)+(A9&B9)+CN;

  else
F9<=B9;  4'b1011: if(M==0)
F9<=(A9&B9)+CN;  

else F9<=(A9&B9); 4'b1100:  if(M==0) 
F9<=A9+A9+CN;  

  else  F9<=9'b000000001;  

4'b1101: if(M==0) F9<=(A9+B9)+A9+CN; 

 else
F9<=A9+(~B9); 

 4'b1110:
if(M==0) F9<=A9+(~B9)+A9+CN; 

 else
F9<=A9+B9;  4'b1111: if(M==0)
F9<=A9-CN;  

else F9<=A9; default: F9<=9'b000000000; 

endcase end 
assign F=F9[7:0]; 

assign CO=F9[8]; 

endmodule
-----------------------------------------------------------------------------------------

四、实验总结

在这个实验中,我以74181ALU 为设计实例,用verilog实现,在测试时使用的变量值分别为:a=8’b00001101 ;b=8’ b01001001;s=4’ b1001; m=0;cn=0;a, b的值采用了多组进行测试,基本实现了74181ALU 的所有功能


五、实验体会及改进建议

通过本次实验我更好的理解了ALU加法器算术与逻辑单元的功能,了解了算术逻辑单元ALU的各种算术运算和逻辑运算部件的功能,包括加、减、乘、除等数值运算、逻辑运算、移位运算等。增强了实验动手能力

你可能感兴趣的:(计算机组成原理实验报告,alu)