




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、計算機組成與系統(tǒng)結(jié)構(gòu)實驗報告第三次實驗ALU 與ALU器設計實驗姓名:學號:11122006311 級計算機 系 2 班2012.10.15一、實驗目的1. 了解并掌握 ALU 的工作原理和 ALU 設計方法2. 了解并掌握 ALU二、實驗設備器的工作原理和 ALU器的設計方法裝有 Quartus II 的計算機一臺。三、實驗任務1. 用 Verilog HDL 語言或 VHDL 語言來編寫,實現(xiàn) MIPS32 位 CPU 的 ALU 及ALU 的器,使其能夠支持基本指令。2. 用Verilog HDL 語言或VHDL 語言來編寫,實現(xiàn) ARM32 位 CPU 的ALU 及ALU的器,使其能夠
2、支持基本指令。四、實驗原理與電路圖實驗一:1、基本思想:在 MIPS32 位 CPU 中,ALU 可執(zhí)行的功能與操作見表 1,需三位信號。除輸出運算結(jié)果 ALU_out31:0,ALU 還輸出信號 zero、Less、Overflow 分別表示運算結(jié)果是否為 0、兩數(shù)比較是大是小、是否有溢出,以用于某些指令。在 ALU 運算器中前導 0 的含義是對于一個數(shù)字來說,它表示一個字從最到低位開始連續(xù) 0 的個數(shù)。前導 1 的含義是對于一個字來說,它表示一個字從最到低位開始連續(xù) 1 的個數(shù)。為提高 ALU 的,而不是直接效率,ALU 采用兩級,即通過 ALU器實現(xiàn)對 ALU的ALU。圖 1 和圖 2
3、為 ALU 原理示意圖和邏輯圖。功能ALUopALUctr有符號減法0001110前導 100110000101101slt/slti0111101sltu/sltiu異或1001001表 12、電路圖:1000011或非0110010或0100100與0010000前導 00000110加法圖 1MPIS32 位運算器粗框圖圖 2MPIS32 位運算器邏輯圖圖 3MPIS32 位 ALU器邏輯圖3、程序代碼: module test1( input 31:0A,input 31:0B, input 3:0ALU_op, output reg Less, output reg Zero,out
4、put reg 31:0ALU_out, output reg Overflow);reg 2:0ALU_ctr;reg 31:0Temp; reg 31:0Result; reg 31:0Carry; integer i;always(*)beginALU_out=0;/ALU_ctrALU_ctr2=ALU_op3&ALU_op1|ALU_op3&ALU_op2&ALU_op0;ALU_ctr1=ALU_op3&ALU_op2&ALU_op1|ALU_op3&ALU_op2&ALU_op1&ALU_op0|ALU_op2&am
5、p;ALU_op1&ALU_op0; ALU_ctr0=ALU_op3&ALU_op2&ALU_op1|ALU_op3&ALU_op2&ALU_op0;/Bfor(i=0;i<32;i=i+1) Tempi=BiALU_op0;/A+B or A-BCarry0,Result0=A0+Temp0+ALU_op0; for(i=1;i<32;i=i+1)Carryi,Resulti=Ai+Tempi+ Carryi-1;/OverflowOverflow=Carry31Carry30;/Zeroif(Result=0) Zero=1; else
6、 Zero=0;/Lessif(ALU_op1=1) Less=Carry31ALU_op0; else Less=OverflowResult31;/MUXcase(ALU_ctr)0:beginfor(i=0;i<32;i=i+1) Tempi=AiALU_op0;ALU_out=32; for(i=31;i>-1;i=i-1) beginif(Tempi=1&&ALU_out=32) ALU_out=31-i;endend 1:for(i=0;i<32;i=i+1) ALU_outi=AiBi;2:for(i=0;i<32;i=i+1) ALU_o
7、uti=Ai|Bi;3:for(i=0;i<32;i=i+1)ALU_outi=(Ai|Bi);4:for(i=0;i<32;i=i+1)ALU_outi=Ai&Bi;5:ALU_out=Less;6:ALU_out=Result;default:ALU_out=0;endcaseendendmodule實驗二:1、 基本思想:ARM32 位 CPU 中的 ALU 電路框圖如圖 4 所示。因 ARM32 位 CPU 中 ALU_op 與 Opcode24:21相同,前導 0 指令、指令可單獨處理,所以 ARM32 位 CPU 中 ALU 就不需要 ALU作指令如表 2 所示
8、。器。ALU 數(shù)據(jù)操助記符操作結(jié)果ALUop邏輯位異或Rd=Rn EOR 移位的操作數(shù)0001EOR反向減Rd=移位的操作數(shù)-Rn0011RSB帶進位加Rd=Rn+移位的操作數(shù)+進位標志0101ADC帶進位反減Rd=移位的操作數(shù)-Rn-進位標志的非0111RSC測試相等Rn EOR 移位的操作數(shù)后更新標志1001TEQ比較反值Rn+移位的操作數(shù)后更新標志1011CMN傳送Rd=移位的操作數(shù)1101MOV求反Rd=NOT 移位的操作數(shù)1111MVN表 22、 電路圖:1110BIC位清 0Rd=Rn AND NOT(移位的操作數(shù))1100ORR邏輯位或Rd=Rn OR 移位的操作數(shù)1010CMP
9、比較Rn-移位的操作數(shù)后更新標志1000TST測試Rn AND 移位的操作數(shù)后更新標志0110SBC帶進位減Rd=Rn-移位的操作數(shù)-進位標志的非0100ADD加Rd=Rn+移位的操作數(shù)0010SUB減Rd=Rn-移位的操作數(shù)0000AND邏輯位與Rd=Rn AND 移位的操作數(shù)圖 4 ARM32 位 ALU 電路框圖3、程序代碼: module test2( input 31:0A,input 31:0B, input Cin,input 3:0ALU_op, output reg N, output reg Z, output reg C, output reg V,output reg
10、31:0ALU_out);reg 31:0Temp;reg 31:0Carry; integer i;always(*)beginALU_out=32'b0; N=1'b0;Z=1'b0; C=1'b0; V=1'b0;Temp=1'b0; Carry=1'b0; i=1'b0;/MUX case(ALU_op)/AND 0:ALU_out=A&B;/EOR 1:ALU_out=AB;/SUB 2:ALU_out=A-B;/RSB 3:ALU_out=B-A;/ADD 4:ALU_out=A+B;/ADC 5:ALU_ou
11、t=A+B+Cin;/SBC 6:ALU_out=A-B-(Cin);/RSC 7:ALU_out=B-A-(Cin);/TST 8:beginALU_out=A&B; N=ALU_out31;if(ALU_out=0) Z=1; else Z=0;end/TEQ9:beginALU_out=AB; N=ALU_out31;if(ALU_out=0) Z=1; else Z=0;end/CMP 10:beginfor(i=0;i<32;i=i+1) Tempi=Bi1'b1;Carry0,ALU_out0=A0+Temp0+1'b1; for(i=1;i<3
12、2;i=i+1)Carryi,ALU_outi=Ai+Tempi+Carryi-1;/Negative N=ALU_out31;/Zero if(ALU_out=0) Z=1; else Z=0;/Carry C=Carry31;/Overflow V=Carry31Carry30;end/CMN 11:beginCarry0,ALU_out0=A0+B0;for(i=1;i<32;i=i+1)Carryi,ALU_outi=Ai+Bi+Carryi-1;/Negative N=ALU_out31;/Zero if(ALU_out=0) Z=1; else Z=0;/Carry C=Ca
13、rry31;/Overflow V=Carry31Carry30;end/ORR 12:ALU_out=A|B;/MOV 13:ALU_out=B;/BIC14:ALU_out=A&(B);/MVN 15:ALU_out=B; default:ALU_out=0;endcaseendendmodule五、實驗步驟1. 打開計算機電源運行 Quartus II2. 用 Verilog HDL 語言或 VHDL 語言編寫一個 MIPS32 位 CPU 中所的 ALU 的程序3. 編譯調(diào)試,數(shù)據(jù)由圖中所示,0 時實現(xiàn)的加法,0000 0005+A000 0000 結(jié)果 A000 0005,而
14、且 00000005 小于 A000 0000;1 的時候?qū)崿F(xiàn)的是減法,一致,同理,后面的功能依次實現(xiàn)了,但是 slt 于 slti,sltu 與 sltiu 即硬件指令,條件滿足寫入 1,否則寫 0。4. 用 Verilog HDL 語言或 VHDL 語言編寫一個 ARM32 位 CPU 中所的 ALU 的程序5. 編譯調(diào)試,數(shù)據(jù)與 MIPS 相似,ARM 實現(xiàn)的功能在功能六、實驗總結(jié)中同樣可以看出。通過電路圖以及實驗功能的實現(xiàn),配合實驗代碼,可以輕松的實現(xiàn)所要的功能。同時,用 現(xiàn)功能的邏輯器件。七、思考題譯碼代替一級譯碼,是邏輯功能更加簡潔,節(jié)約了實1.說明一級譯碼和譯碼各自的特點。答:一級譯碼就是將信號直接輸入譯碼器內(nèi)來不同的運算;譯碼是將一組信號先進行一級譯碼,讓后將信號再傳出信號端來不同的運算。一譯碼邏輯更復雜,浪費;譯碼邏輯簡單一些。比如加法和減法運算,如果直接通過 ALUop 來操作,會使 ALU 操作十分復雜,但通過二級譯碼后,雖然外部指令不同,但最后都是通過加法實現(xiàn),提高了 ALU 的效率。2.分析我們在實驗中所用的ALU不一樣?答:實驗中所用的 AL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小吃品牌連鎖管理制度
- 城市能量轉(zhuǎn)讓方案(3篇)
- 貨物施工方案(3篇)
- 學校防疫網(wǎng)格管理制度
- 養(yǎng)殖物資存放管理制度
- 醫(yī)院采購中心管理制度
- 印刷車間設備管理制度
- 醫(yī)院防火防爆管理制度
- DB62T 4411-2021 隴東地區(qū)萬壽菊栽培技術(shù)規(guī)程
- 罰款繳納方案(3篇)
- 交通協(xié)管員勞務外包服務方案
- 頂管工程頂進記錄表
- 安全生產(chǎn)、環(huán)境保護監(jiān)督管理制度(最終版)
- 呼吸道病原體抗體檢測及臨床應用課件
- 戰(zhàn)略管理教學ppt課件(完整版)
- 太平歌詞唱詞
- 長篇情感電臺讀文(10篇)精選
- 辦公樓裝飾拆除工程施工方案
- DB35_T 169-2022 森林立地分類與立地質(zhì)量等級
- 動火作業(yè)危害識別及控制措施清單
- 醫(yī)院寧群腦高灌注綜合癥監(jiān)測和防治
評論
0/150
提交評論