數(shù)電實(shí)驗(yàn)報(bào)告PPT_第1頁
數(shù)電實(shí)驗(yàn)報(bào)告PPT_第2頁
數(shù)電實(shí)驗(yàn)報(bào)告PPT_第3頁
數(shù)電實(shí)驗(yàn)報(bào)告PPT_第4頁
數(shù)電實(shí)驗(yàn)報(bào)告PPT_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)字電子技術(shù)課程設(shè)計(jì)8位雙向移位寄存器多功能雙向移位寄存器1.1 基本工作原理移位寄存器是基本的同步時(shí)序電路,基本的移位寄存器可以實(shí)現(xiàn)數(shù)據(jù)的串行/并行或并行/串行的轉(zhuǎn)換、數(shù)值運(yùn)算以及其他數(shù)據(jù)處理功能。在本設(shè)計(jì)中定義移位寄存器中的數(shù)據(jù)從低位觸發(fā)器移向高位為右移,移向低位為左移。為了擴(kuò)展邏輯功能和增加使用的靈活性,某些雙向移位寄存器集成電路產(chǎn)品又附加了并行輸入、并行輸出等功能。如圖1所示是上述幾種工作模式的簡化示意圖。8位雙向移位寄存器電路設(shè)計(jì)圖1-2 實(shí)現(xiàn)多功能雙向移位寄存器的一種方案 2電路圖設(shè)計(jì) 2.1 電路結(jié)構(gòu)根據(jù)上一節(jié)的移位寄存器的一種基本實(shí)現(xiàn)方案,可以設(shè)計(jì)出8位雙向移位寄存器,完整電路

2、圖入圖2-1所示。 此電路由8個(gè)4選1數(shù)據(jù)選擇器、8個(gè)帶異步清零的D觸發(fā)器組成。所有的數(shù)據(jù)選擇器編碼端 分別對應(yīng)地接在一起,同時(shí)選擇D觸發(fā)器的信號數(shù)據(jù)來源。D觸發(fā)器時(shí)鐘端CP接一起,清零端 也同樣接在一起,這樣可以保證級聯(lián)D觸發(fā)器的同步,和并行輸出數(shù)據(jù)的清零。另,每個(gè)D觸發(fā)器的輸出對應(yīng)一位并行輸入。Dsr是右移串行數(shù)據(jù)輸入端,Dsl是左移串行數(shù)據(jù)輸入端,分別接最低有效位對應(yīng)的數(shù)據(jù)選擇器和最高有效位對應(yīng)的數(shù)據(jù)選擇器。data3data2data1data0sel1.0resultlpm_mux0instdata3data2data1data0sel1.0resultlpm_mux0inst4da

3、ta3data2data1data0sel1.0resultlpm_mux0inst5data3data2data1data0sel1.0resultlpm_mux0inst6data3data2data1data0sel1.0resultlpm_mux0inst7data3data2data1data0sel1.0resultlpm_mux0inst8data3data2data1data0sel1.0resultlpm_mux0inst3CLRNDPRNQDFFinst17CLRNDPRNQDFFinst19CLRNDPRNQDFFinst20CLRNDPRNQDFFinst21CLRND

4、PRNQDFFinst22CLRNDPRNQDFFinst23CLRNDPRNQDFFinst24VCCCRINPUTVCCS1INPUTVCCS0INPUTVCCDsrINPUTVCCD0INPUTVCCD1INPUTVCCD2INPUTVCCD3INPUTVCCD4INPUTVCCD5INPUTVCCD6INPUTVCCD7INPUTVCCDslINPUTQ0OUTPUTQ1OUTPUTQ2OUTPUTQ3OUTPUTQ4OUTPUTQ5OUTPUTQ6OUTPUTQ7OUTPUTGNDCLKINPUTCLRNDPRNQDFFinst18GNDCPINPUTdata3data2data1d

5、ata0sel1.0resultlpm_mux0inst252.2 真值表分析電路圖,可得此8位雙向移位寄存器的真值表,如表2所示:本設(shè)計(jì)通過行為級描述語句always描述了一個(gè)8位雙向移位寄存器,它有兩個(gè)選擇輸入端、兩個(gè)串行數(shù)據(jù)輸入端、8個(gè)并行數(shù)據(jù)輸入端和8個(gè)并行數(shù)據(jù)輸出端,完成的功能與圖3的電路相同。它有5種功能:異步置零、同步置數(shù)、左移、右移和保持狀態(tài)不變。當(dāng)清零信號CR跳變到低電平時(shí),寄存器的輸出被異步置零;否則,當(dāng)CR=1時(shí),與時(shí)鐘信號有關(guān)的4種功能由case語句中的兩個(gè)選擇輸入信號S1和S0決定(在case后面S1、S0被拼接成2位矢量)。3 Verilog描述8位雙向移位寄存器

6、設(shè)計(jì)程序如下:/Behavioral description of Universal shift registermodule shift (S1,S0,D,Dsl,Dsr,Q,CP,CR);input S1,S0;/Select inputsinput Dsl,Dsr;/serial data input/input CP,CR;/Clock and Resetinput 7:0D;/Parallel Data inputoutput 7:0Q;/Register ouputreg7:0Q;always (posedge CP or negedge CR)if(CR) Q = 8b0000

7、0000 ;elsecase (S1,S0)2b00:Q=Q;/No change2b01:Q=Q6:0,Dsr;/Shift right2b10:Q=Dsl,Q7:1;/Shift left2b11:Q=D;/Patallel load inputendcaseendmodule 在程序中定義了一個(gè)模塊(module)shift,在QuartusII中新建工程文件時(shí),定義的頂層模塊名需要與工程名保持一致,否則在編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤。模塊前端為基本輸入輸出口的設(shè)置。使用了行為級描述語言always,后跟ifelse判斷語句,在循環(huán)執(zhí)行過程中來根據(jù)輸入信號判斷做出相應(yīng)的動(dòng)作。其中if(CR) Q=8

8、b00000000 ;表示當(dāng)CR信號為低電平時(shí),(CR)則為1,此時(shí)將8為二進(jìn)制數(shù)b00000000賦給Q,即實(shí)現(xiàn)移位寄存器的異步清零。Case語句類似于C語言中的case語句,同樣根據(jù)判斷條件來選擇要執(zhí)行的分支語句。在case中將S1和S0拼接為2位矢量,來共同決定判斷結(jié)果。同樣,移位由串行輸入和7個(gè)觸發(fā)器的輸入拼接起來進(jìn)行描述,如QQ6,Q6-Q5,,Q1-Q0),于是,完成將數(shù)據(jù)左移一位的操作。但是需要注意,上述程序中所注釋的右移和左移方向與圖3一致,而與Verilog描述語句中的排列和移動(dòng)方向正好相反。后者與一般技術(shù)機(jī)程序一致(即高位在左,低位在右)。 4 程序仿真在QuartuaII

9、中建立shift工程,添加Verilog文件,編寫源代碼后,進(jìn)行全編譯。編譯成功后,即可對定義的模塊進(jìn)行功能仿真。仿真步驟查看相關(guān)QuartusII書籍。本設(shè)計(jì)中,將所有定義的引腳添加入仿真環(huán)境中,對輸入數(shù)據(jù)進(jìn)行強(qiáng)制設(shè)定,運(yùn)行后觀察輸出波形及其時(shí)序圖。根據(jù)8位雙向移位寄存器的真值表,仿真時(shí),首先考察此移位寄存器的左移、右移、保持和并行輸入的基本功能,然后再在串行輸入端加入信號,觀察移位寄存器的時(shí)序波形。 圖4 基本功能時(shí)序圖圖4 基本功能時(shí)序圖 根據(jù)圖4,觀察S1和S0信號,每個(gè)基本功能的仿真之前都先強(qiáng)制S1=S0=1,即實(shí)現(xiàn)并行輸入功能,給輸入D7:0設(shè)置初值,然后再下一個(gè)周期對S1、S0進(jìn)

10、行改變,觀察輸出Q的變化。程序中,語句always (posedge CP or negedge CR)表示當(dāng)有CP的上升沿或CR的下降沿時(shí)觸發(fā),因此可以從仿真時(shí)序圖驗(yàn)證,D和Q的數(shù)據(jù)改變都發(fā)生在CP信號的上升沿。在第一個(gè)CP周期上升沿之前,設(shè)定的D初值為128,上升沿到來,D是數(shù)據(jù)移入Q,Q值為128,Q的各位同并行輸入D相同。第二個(gè)CP周期中,S1=S0=0,移位寄存器功能為保持,從時(shí)序圖中驗(yàn)證知,Q的初值保持到第三個(gè)CP周期上升沿時(shí)刻。在第三個(gè)CP周期初,設(shè)定并行輸入D為15,第四個(gè)周期為保持,第五個(gè)周期,設(shè)定S1S0=01,則寄存器實(shí)現(xiàn)右移,換算到計(jì)算機(jī)運(yùn)算中即為左移一位,數(shù)值增大1倍

11、。觀察第五個(gè)周期CP上升沿之后,Q數(shù)值由15增大為30,Q的各位數(shù)值與D的各位數(shù)值比較,可以看出Q的D移位后的結(jié)果,此時(shí)串行輸入的值為0,仿真驗(yàn)證正確。第六個(gè)周期保持?jǐn)?shù)據(jù),第七個(gè)周期并行移入數(shù)據(jù)18,保持一個(gè)周期,在第九個(gè)周期中,S1S0=10,寄存器功能為左移,換算到計(jì)算機(jī)運(yùn)算為右移,及數(shù)據(jù)變?yōu)樵瓉淼囊话?。從仿真時(shí)序圖知道,第九個(gè)CP上升沿到來后,Q數(shù)值變?yōu)?,功能仿真正確。 主要觀察第五個(gè)周期,Q初值為15,寄存器功能設(shè)定為右移,右移串行輸入為1,CP上升沿到來后,Q值增大為31,即增大到2倍后右在低位移入1。同樣在第九個(gè)周期中,寄存器設(shè)定功能為左移,CP上升沿到來后,原有的值18變?yōu)?,

12、但是左移串行輸入為1,從高位引入1,即為128+9=137,功能仿真結(jié)果正確。 5 總結(jié) 通過此次的能力拓展訓(xùn)練,我初步掌握了Verilog硬件描述語言,學(xué)會(huì)了在QuartusII中設(shè)計(jì)一些簡單的硬件電路,受益匪淺。首先,通過查閱相關(guān)的資料,我初步地學(xué)會(huì)了使用Verilog語言編寫基本的程序,熟悉了各寄存器的使用方法和數(shù)據(jù)傳送與處理,根據(jù)Verilog來對這些基本的硬件進(jìn)行行為級的描述。在Verilog程序編寫中,我還體會(huì)到了它強(qiáng)大的實(shí)序仿真功能,進(jìn)而根據(jù)仿真結(jié)果來來輔助程序設(shè)計(jì),直到達(dá)到預(yù)期的功能。這個(gè)方法對以后進(jìn)行Verilog程序的編寫和硬件開發(fā)將起到很大的幫助。其次,在本次能力拓展訓(xùn)練中,初

溫馨提示

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

評論

0/150

提交評論