計算機組成原理 多功能ALU設計實驗

2021-10-01 09:28:51 字數 3787 閱讀 5286

一、實驗目的與要求

實驗目的:

(1)學習多功能alu的工作原理,掌握運算器的設計方法

(2)掌握運用verilog hdl 進行行為描述與建模的技巧和方法

實驗要求:本實驗要求設計乙個具有8種運算功能的32位alu,並能夠產生運算結果的標誌:結果為零標誌zf(zero flag)、溢位標誌of(overflow flag)。alu通過3根控制線alu_op[2:0]來選擇其8種功能。

功能表:

alu_op[2:0]

alu_op[2:0]

功能說明

0000

and按位與運算

0001

or按位或運

0010

xor按位異或運算

0011

nor按位或非運算

0100

add算術加運算

0101

sub算術減運算

0110

slt若a0111

sllb邏輯左移a所指定的位數

二、實驗設計與程式**

module alu

(op,a,b,f,zf,cf,of,sf,pf)

; parameter size =32;

//運算位數

input [3:

0] op;

//運算操作

input [size:

1] a;

//左運算數

input [size:

1] b;

//右運算數

output [size:

1] f;

//運算結果

output zf,

//0標誌位, 運算結果為0(全零)則置1, 否則置0

cf,//進借位標誌位, 取最高位進製c,加法時c=1則cf=1表示有進製,減法時c=0則cf=1表示有借位

of,//溢位標誌位,對有符號數運算有意義,溢位則of=1,否則為0

sf,//符號標誌位,與f的最高位相同

pf;//奇偶標誌位,f有奇數個1,則pf=1,否則為0

reg [size:

1] f;

reg c,zf,cf,of,sf,pf;

//c為最高位進製

always@(*)

begin

c=0;

case

(op)

4'b0000:begin f=a&b; end //按位與

4'b0001:begin f=a|b; end //按位或

4'b0010:begin f=a^b; end //按位異或

4'b0011:begin f=

~(a|b)

; end //按位或非

4'b0100:begin

=a+b; end //加法

4'b0101:begin

=a-b; end //減法

4'b0110:begin f=a

endcase

zf = f==0;

//f全為0,則zf=1

cf = c;

//進製借位標誌

of = a[size]

^b[size]

^f[size]

^c;//溢位標誌公式

sf = f[size]

;//符號標誌,取f的最高位

pf =

~^f;

//奇偶標誌,f有奇數個1,則f=1;偶數個1,則f=0

end

endmodule

三、實驗**

****?

module test()

; reg [31:

0] a,b;

reg [3:

0] op;

initial//初始化,每中運算擦拭兩組資料

begin

/*按位與*/

op=4'b0000;a=32'h0000_0000; b=

32'h0000_0001;#50

; op=

4'b0000;a=32'h0000_0001; b=

32'h0000_0001;#50

;/*按位或*/

op=4'b0001;a=32'h0000_0000; b=

32'h0000_0001;#50

; op=

4'b0001;a=32'h0000_0000; b=

32'h0000_0000;#50

;/*按位異或*/

op=4'b0010;a=32'h0000_0000; b=

32'h0000_0001;#50

; op=

4'b0010;a=32'h0000_0000; b=

32'h0000_0000;#50

;/*按位或非*/

op=4'b0011;a=32'h0000_0000; b=

32'h0000_0001;#50

; op=

4'b0011;a=32'h0000_0000; b=

32'h0000_0000;#50

;/*算術加運算*/

op=4'b0100;a=32'h7fff_ffff; b=

32'h7fff_ffff;#50

; op=

4'b0100;a=32'hffff_ffff; b=

32'hffff_ffff;#50

;/*算術減運算*/

op=4'b0101;a=32'h7fff_ffff; b=

32'h7fff_fffd;#50

; op=

4'b0101;a=32'h7fff_ffff; b=

32'hffff_ffff;#50

;/*aop=

4'b0110;a=32'h7fff_ffff; b=

32'h8fff_ffff;#50

; op=

4'b0110;a=32'hffff_ffff; b=

32'h7fff_ffff;#50

;/*b邏輯左移a指定的位數*/

op=4'b0111;a=32'h0000_0001; b=

32'h0000_0001;#50

; op=

4'b0111;a=32'h0000_0001; b=

32'h0000_0008;#50

; end

wire [31:

0] f;

wire zf, cf, of, sf, pf;

alu alu_test(.

op(op),.

a(a),.

b(b),.

f(f),.

zf(zf),.

cf(cf),.

of(of),.

sf(sf),.

pf(pf));

endmodule

**波形?

四、電路圖

杭電計算機組成實驗3(三)多功能ALU設計實驗

1.學習多功能alu的工作原理,掌握運算器的設計方法 2.掌握運用verilog hdl 進行行為描述與建模的技巧和方法 1.分析乙個具有8種運算功能的32位alu,並能夠產生運算結果的標誌 結果位零標誌 zf 和溢位標誌 of 2.首先,分析出zf只會在加減運算 現溢位情況,然後分析出alu 8種...

計算機組成原理cu 計算機組成原理 計算機概論

現代計算機樣式千奇百怪,常見的有我們的筆記本,台式電腦,也有各種伺服器 手機 攝像頭等都屬於計算機範疇。計算機包含我們看得見摸得著的計算機實體,稱為計算機硬體,如cpu 記憶體 各種掛接裝置等 還有我們看不見摸不著的軟體,它支援著硬體按照我們的預想在操作,包括系統軟體和應用軟體 計算機硬體樣式千奇百...

計算機組成原理

1計算機系統概論 1.1 計算機簡介 計算機由 硬體 和 軟體 組成。硬體 是看得見摸得著的各種電子元器件,各類光,電,機裝置的實物組成,如主機,外設等等。軟體 是看不見摸不著,由人們事先編製成具有各類特殊功能的資訊組成。計算機的三層結構 高階語言 組合語言 機器語言 微指令系統。計算機組成與計算機...