ALU的設(shè)計與實現(xiàn)_第1頁
ALU的設(shè)計與實現(xiàn)_第2頁
ALU的設(shè)計與實現(xiàn)_第3頁
ALU的設(shè)計與實現(xiàn)_第4頁
ALU的設(shè)計與實現(xiàn)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

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

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

3、當(dāng)a!=b時,輸出0 output c4, /對應(yīng)74181的Cn+4 output p, /p函數(shù) output g /g函數(shù));reg 3:0 result; /定義中間變量result存放結(jié)果wire 4:0temp; /定義中間變量temp存放選擇變量s和mwire p0,p1,p2,p3; /進(jìn)位產(chǎn)生信號wire g0,g1,g2,g3; /進(jìn)位傳遞信號assign temp=s,m; always(temp or a or b) begin case (temp) /case語句實現(xiàn)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; /默認(rèn)情況,給result賦值為0 endcase endassign f=result; /將中間變量result的值賦給f/片與片之間的超前進(jìn)位assign g0=a0&b0; /g函數(shù)是a與b的與assign g1=a1&b1;assign g2=a2&b0;assign g3=a3&b0

7、;assign p0=a0b0; /p函數(shù)是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編譯并仿真得出結(jié)果。仿真結(jié)果如下圖:五、實驗思考

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

9、。3. 74181 ALU內(nèi)部加法運算用的是超前進(jìn)位算法嗎?答:是。74181的設(shè)計在內(nèi)部的實現(xiàn)是通過超前進(jìn)位,而后又利用了p函數(shù)和g函數(shù)實現(xiàn)了片與片之間的超前進(jìn)位功能。4位之間采用先行進(jìn)位公式,每一位的進(jìn)位公式可遞推如下: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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論