基于FPGA采用模塊化思路設(shè)計(jì)一個(gè)譯碼器_第1頁(yè)
基于FPGA采用模塊化思路設(shè)計(jì)一個(gè)譯碼器_第2頁(yè)
基于FPGA采用模塊化思路設(shè)計(jì)一個(gè)譯碼器_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

基于FPGA采用模塊化思路設(shè)計(jì)一個(gè)譯碼器本次實(shí)驗(yàn)的任務(wù)是構(gòu)建一個(gè)3-8譯碼器,且將譯碼結(jié)果通過(guò)小腳丫的LED燈顯示。聽(tīng)上去并不難,而且我能想象到,一定會(huì)有不少同學(xué)會(huì)立刻開(kāi)始畫(huà)一個(gè)8行的真值表,然后通過(guò)卡諾圖進(jìn)行化簡(jiǎn),且根據(jù)最終的邏輯表達(dá)式畫(huà)出門(mén)電路圖。這個(gè)方法當(dāng)然沒(méi)有錯(cuò),不過(guò),如果面對(duì)更多位數(shù)的系統(tǒng),比如4-16或者是8-256的譯碼器,建一個(gè)幾百行的真值表并進(jìn)行邏輯運(yùn)算聽(tīng)上去似乎不那么科學(xué)。在這里我們將采用模塊化的思路來(lái)完成我們的實(shí)驗(yàn)設(shè)計(jì)。在開(kāi)始進(jìn)行模塊化設(shè)計(jì)之前,我們先做一個(gè)2-4譯碼器,也就是譯碼器系列中最底層的基礎(chǔ)模塊。表12-4譯碼器真值表這次的代碼我們采用行為級(jí)描述(Behavioral-level)的寫(xiě)法,直接根據(jù)真值表將輸入與輸出的各種組合進(jìn)行直接關(guān)聯(lián)。可以看出,行為級(jí)的寫(xiě)法甚至不需要構(gòu)建門(mén)電路,僅通過(guò)輸入輸出對(duì)應(yīng)關(guān)系即可構(gòu)建,因此最為抽象。moduledecode24(inputwire[1:0]A,//定義兩位輸入outputreg[3:0]Y//定義輸出的4位譯碼結(jié)果對(duì)應(yīng)的led);always@(A)//always塊語(yǔ)句,a值變化時(shí)執(zhí)行一次過(guò)程塊begincase(A)2'b00:Y=4'b0001;//2-4譯碼結(jié)果2'b01:Y=4'b0010;2'b10:Y=4'b0100;2'b11:Y=4'b1000;endcaseendendmodule有了最基礎(chǔ)的模塊,如何通過(guò)它搭建出3-8譯碼器呢?現(xiàn)在,我們?cè)谠械恼嬷当砩霞由弦宦肥鼓苄盘?hào)E,再來(lái)觀察一下新的真值表??梢园l(fā)現(xiàn),當(dāng)E為低電平時(shí),不論輸入的取值如何,前四位輸出均為0。當(dāng)E為高電平時(shí),右側(cè)仍然為2-4譯碼器的輸出結(jié)構(gòu)。表22-4譯碼器真值表(加使能信號(hào))我們可以把表3看作為一個(gè)3-8譯碼器的真值表,只不過(guò)輸入端的最高位由E代替。由于E為低電平時(shí)輸出最高的四位均為0,因此確保我們?cè)趯?duì)后四位輸出(黃色)進(jìn)行賦值不會(huì)影響到前四位的輸出。表33-8譯碼器真值表從表3不難看出,黃框和紅框?qū)?yīng)的其實(shí)就是一個(gè)帶有使能端的2-4譯碼器,且使能端E控制著前后半端位數(shù)的輸出結(jié)果。也就是說(shuō),一個(gè)3-8譯碼器可以由兩個(gè)2-4譯碼器構(gòu)成。同理,一個(gè)4-16譯碼器可以由兩個(gè)3-8譯碼器構(gòu)成,以此類推。帶有使能E的2-4譯碼器如下圖所示。實(shí)際上就是在之前的代碼上稍做修改,在這里我們就不詳細(xì)寫(xiě)出來(lái)了,給大家自行練習(xí)的機(jī)會(huì)。接下來(lái),按照之前的分析,我們畫(huà)出由兩個(gè)2-4譯碼器組成的3-8譯碼器的結(jié)構(gòu)。以下是用Verilog寫(xiě)的一個(gè)3-8譯碼器,在程序里我們調(diào)用了兩次2-4譯碼器的子模塊。注意,子模塊的文件需要和decode38文件放在同一個(gè)工程目錄下,不然就成了隔壁老王了。moduledecode38(inputwire[2:0]X,outputwire[7:0]D);decode24upper//調(diào)用第一個(gè)子模塊,命名為upper(.a(X[1:0]),//將大模塊的X1,X0與lower的A1,A0匹配.E(X[2]),//將大模塊的X2與lower的E匹配.Y(D[7:4])//將大模塊的D7-D4與lower的Y3-Y0匹配);decode24lower//調(diào)用第二個(gè)子模塊,命名為lower(.a(X[1:0]),//將大模塊的X1,X0與lower的A1,A0匹配.E(!X[2]),//將大模塊的X2與lower的E匹配.Y(D[3:0])//將大模塊的D7-D4與lower的Y3-Y0匹配);endmodule當(dāng)你反復(fù)在圖和代碼之間徘徊幾輪,并有了多么痛的領(lǐng)悟之后,你就可以把自己編譯好的程序下載到小腳丫里,然后通過(guò)實(shí)驗(yàn)測(cè)試你的代碼了。練習(xí)一下,當(dāng)我們把輸出D7-D1分別對(duì)應(yīng)為小腳丫上的L7-L1,且輸入X2-X0分別對(duì)應(yīng)至小腳丫的SW3-SW1,請(qǐng)判

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論