1. 程式人生 > >7418alu算術邏輯單元

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的各種算術運算和邏輯運算部件的功能,包括加、減、乘、除等數值運算、邏輯運算、移位運算等。增強了實驗動手能力