ALU的設計與實現_第1頁
ALU的設計與實現_第2頁
ALU的設計與實現_第3頁
ALU的設計與實現_第4頁
ALU的設計與實現_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上計算機組成原理實驗實驗四 ALU的設計與實現專業班級:計算機科學與技術學號: 姓名:馮帆學號: 姓名:張琪實驗地點: 理工樓901 實驗四 ALU的設計與實現一、實驗目的 1、理解ALU的功能和其在處理器中的地位。2、掌握ALU的結構化(分模塊、分層次)的設計方法。 3、掌握ALU的Verilog語言描述方法。二、實驗內容1、學習ALU的設計方法。2、用Verilog語言采用行為描述的方法完成74181的邏輯設計。3、用Verilog語言采用結構描述的方法完成74181的邏輯設計。4、學習用宏模塊的方法定制并調用 ALU 。三、實驗儀器及設備:PC機+ Quartus

2、 9.0 + DE2-70四、實驗步驟:1打開Quartus軟件,新建工程,并新建一個verilog文件。2編寫verilog程序。首先,查找74181的功能表,用always模塊和case語句實現其功能。然后,設計ALU的過程中,利用p函數和g函數實現超前進位功能。3附程序代碼如下:module ALU_74181 (input 3:0 a, input 3:0 b, input 3:0 s, /選擇信號 input m, /m=1執行邏輯運算,反之執行算術運算 input cn, /低位的進位或者是高位的借位 output 3:0 f, output aeqb, /輸出,當a=b時輸出1,

3、當a!=b時,輸出0 output c4, /對應74181的Cn+4 output p, /p函數 output g /g函數);reg 3:0 result; /定義中間變量result存放結果wire 4:0temp; /定義中間變量temp存放選擇變量s和mwire p0,p1,p2,p3; /進位產生信號wire g0,g1,g2,g3; /進位傳遞信號assign temp=s,m; always(temp or a or b) begin case (temp) /case語句實現74181的 32種功能 5b00000: result=a; 5b00001: result=!a

4、; 5b00010: result=a|b; 5b00011: result=(!a|b); 5b00100: result=(a|!b); 5b00101: result=!a&b; 5b00110: result=4b1111;/補碼運算,-1的補碼是1111 5b00111: result=0; 5b01000: result=a+(a&!b); 5b01001: result=!(a&b); 5b01010: result=!b; 5b01011: result=(a|!b)+(a&!b); 5b01100: result=ab; 5b01101: result=a-b+4b1111;

5、 5b01110: result=a&(!(b+4b1111); 5b01111: result=a&!b; 5b10000: result=a+a&b; 5b10001: result=(!a)|b; 5b10010: result=a+b; 5b10011: result=!(ab); 5b10100: result=(a|!b)+a&b; 5b10101: result=b; 5b10110: result=a&b+4b1111; 5b10111: result=a&b; 5b11000: result=a+a; 5b11001: result=1; 5b11010: result=(a

6、|b)+a; 5b11011: result=(a|!b); 5b11100: result=(a|!b)+a; 5b11101: result=(a|b); 5b11110: result=a+4b1111; 5b11111: result=a; default : result = 4b0000; /默認情況,給result賦值為0 endcase endassign f=result; /將中間變量result的值賦給f/片與片之間的超前進位assign g0=a0&b0; /g函數是a與b的與assign g1=a1&b1;assign g2=a2&b0;assign g3=a3&b0

7、;assign p0=a0b0; /p函數是a和b的異或assign p1=a1b1;assign p2=a2b2;assign p3=a3b3;assign c4=g3|(g2&p3)|(g1&p2&p3)|(g0&p0&p1&p2)|(cn&p0&p1&p2&p3);/g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0cnassign p=p0&p1&p2&p3; assign g=g3+g2&p3+g1&p2&p3+g0&p1&p2&p3;assign aeqb=(a=b)?1b1:1b0;endmodule4編譯并仿真得出結果。仿真結果如下圖:五、實驗思考

8、。1. ALU的功能是什么,它在整機系統中的地位如何?答:ALU是多功能算數邏輯運算單元,不僅能進行多種算術運算和邏輯運算,如與、或、非、異或循環、移位、求補、清零、加、減、乘、除等,而且具有先行進位邏輯,從而能實現高速運算。ALU是CPU的核心部分,也是CPU的重要組成部分。一臺計算機最主要的功能就是指向運算的功能,而ALU恰恰具有這樣的功能,可以說多功能運算時據算計的靈魂,沒有運算,計算機將不會具有如此強大的功能。2. ALU是典型的組合邏輯,為什么在P157的實現中要加入時鐘信號,其目的是什么?答:處于整機同步的需要,這樣可以保證ALU產生的結果能夠適時的送到總線,以便數據進行正確的讀寫

9、。3. 74181 ALU內部加法運算用的是超前進位算法嗎?答:是。74181的設計在內部的實現是通過超前進位,而后又利用了p函數和g函數實現了片與片之間的超前進位功能。4位之間采用先行進位公式,每一位的進位公式可遞推如下:G = A and B P = A xor Bc1= g0 + p0c0c2= g1 + p1c1= g1 + p1(g0 + p0c0)= g1 + p1g0 + p1p0c0c3= g2 + p2c2= g2 + p2(g1 + p1g0 + p1p0c0)= g2 + p2g1 + p2p1g0 + p2p1p0c0c4= g3 + p3c3= g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論