![設(shè)計(jì)8位雙向移位寄存器電路_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e9/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e91.gif)
![設(shè)計(jì)8位雙向移位寄存器電路_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e9/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e92.gif)
![設(shè)計(jì)8位雙向移位寄存器電路_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e9/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e93.gif)
![設(shè)計(jì)8位雙向移位寄存器電路_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e9/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e94.gif)
![設(shè)計(jì)8位雙向移位寄存器電路_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e9/cd90c5e6-af07-4a90-8c5b-8efe4d2bf2e95.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄摘要使用硬件描述語言Verilog,在EDA工具QuartussII中,對8位雙向移位寄存器進(jìn)行行為級描述,根據(jù)設(shè)計(jì)語言進(jìn)行功能時(shí)序仿真,驗(yàn)證設(shè)計(jì)的正確性與可行性。通過本基本設(shè)計(jì)熟悉QuartusII環(huán)境下的硬件描述操作流程,掌握基本的Verilog語法與編寫風(fēng)格。關(guān)鍵字:Verilog QuartusII 移位寄存器專心-專注-專業(yè)設(shè)計(jì)8位雙向移位寄存器電路1多功能雙向移位寄存器1.1基本工作原理移位寄存器是基本的同步時(shí)序電路,基本的移位寄存器可以實(shí)現(xiàn)數(shù)據(jù)的串行/并行或并行/串行的轉(zhuǎn)換、數(shù)值運(yùn)算以及其他數(shù)據(jù)處理功能。但有時(shí)候需要對移位寄存器的數(shù)據(jù)流向加以控制,實(shí)
2、現(xiàn)數(shù)據(jù)的雙向移動(dòng),其中一個(gè)方向稱為右移,另一個(gè)方向稱為左移,這種移位寄存器就稱為雙向移位寄存器。根據(jù)國家標(biāo)準(zhǔn)規(guī)定,邏輯圖中的最低有效位(LSB)到最高有效位(MSB)的電路排列順序應(yīng)從上到下,從左到右。因此定義移位寄存器中的數(shù)據(jù)從低位觸發(fā)器移向高位為右移,移向低位為左移。為了擴(kuò)展邏輯功能和增加使用的靈活性,某些雙向移位寄存器集成電路產(chǎn)品又附加了并行輸入、并行輸出等功能。下圖所示是上述幾種工作模式的簡化示意圖。圖1-1 多功能移位寄存器工作模式簡圖1.2 基本實(shí)現(xiàn)方案圖1-2所示是實(shí)現(xiàn)數(shù)據(jù)保持、右移、左移、并行置入和并行輸出的一種電路方案。圖中的D觸發(fā)器是N為移位寄存器中的第m位觸發(fā)器,在其數(shù)據(jù)
3、輸入端插入了一個(gè)4選1數(shù)據(jù)選擇器,用2位編碼輸入控制,來選擇觸發(fā)器輸入信號的來源。當(dāng)時(shí),選擇該觸發(fā)器本身輸出的,次態(tài)為,使觸發(fā)器保持狀態(tài)不變;當(dāng)時(shí),觸發(fā)器的輸出被選中,故CP脈沖上升沿到來時(shí),存入此前的邏輯值,即,而,從而實(shí)現(xiàn)右移功能;類似地,當(dāng)時(shí),選擇,實(shí)現(xiàn)左移功能;而當(dāng)時(shí),則選中并行輸入數(shù)據(jù),其次態(tài),從而完成并行數(shù)據(jù)的置入功能。上述四種操作概述于表1-1,此外,在各觸發(fā)器的輸入端,可以得到N位并行數(shù)據(jù)的輸出。圖1-2 實(shí)現(xiàn)多功能雙向移位寄存器的一種方案表1-1 圖1-2的功能表控制信號功能控制信號功能S1S0S1S000保持10左移01右移11并行輸入2電路圖設(shè)計(jì)2.1 電路結(jié)構(gòu)根據(jù)上一節(jié)
4、的移位寄存器的一種基本實(shí)現(xiàn)方案,可以設(shè)計(jì)出8位雙向移位寄存器,完整電路圖入圖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ù)選擇器。圖2-1 8位雙向移位寄存器2.2真值表分析電路圖,可得此8位雙向移位寄存器的真值表,入下表所示:表2-1 8位雙向移
5、位寄存器真值表輸 入輸 出清零控制信號串行輸入時(shí)鐘CP并行輸入S1S0DsrDslLLHLLHLHLHLHHHHLLHHLHHHH注:表示CP脈沖上升沿之前瞬間的電平3移位寄存器的Verilog建模3.1Verilog建模基礎(chǔ)硬件描述語言Verilog HDL類似于高級程序設(shè)計(jì)語言(如C語言等),它是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示更復(fù)雜的數(shù)字邏輯系統(tǒng)所完成的邏輯功能(即行為)。人們還可以用HDL編寫設(shè)計(jì)說明文檔,這種文檔易于存儲(chǔ)和修改,適用于不同的設(shè)計(jì)人員之間進(jìn)行技術(shù)交流,還能被計(jì)算機(jī)識別和處理,計(jì)算機(jī)對于HDL的處理包括兩個(gè)
6、方面:邏輯仿真和邏輯綜合。邏輯仿真是指用計(jì)算機(jī)仿真軟件對數(shù)字邏輯電路的結(jié)構(gòu)和行為進(jìn)行預(yù)測,仿真器對HDL描述進(jìn)行解釋,以文本形式或時(shí)序波形圖形式給出電路的輸出。在電路在實(shí)現(xiàn)之前,設(shè)計(jì)人員可以根據(jù)仿真結(jié)果初步判斷電路的邏輯功能是否正確。在仿真期間,如果發(fā)現(xiàn)設(shè)計(jì)中存在錯(cuò)誤,可以對HDL文件進(jìn)行修改,直至滿足設(shè)計(jì)要求為止。在Verilog中,行為級描述主要使用由關(guān)鍵詞initial或always定義的兩種結(jié)構(gòu)類型的語句。一個(gè)模塊的內(nèi)部可以包括多個(gè)initial或always語句,仿真時(shí)這些語句同時(shí)并行執(zhí)行,即與他們在的模塊內(nèi)部排列無關(guān),都從仿真的0時(shí)刻開始。本設(shè)計(jì)采用always語句對8位雙向移位寄
7、存器進(jìn)行行為級功能描述。Always本身是一個(gè)無限循環(huán)語句,即不停地循環(huán)執(zhí)行其內(nèi)部的過程語句,直到仿真過程結(jié)束。但用它來描述硬件電路的邏輯功能時(shí),通常在always后面緊跟著循環(huán)控制條件,所以always語句的一般用法如下:always (事件控制表達(dá)式)begin塊內(nèi)局部變量的定義;過程賦值語句;end這里,“事件控制表達(dá)式”也稱敏感事件表,即等待確定的事件發(fā)生或某一特定的條件變?yōu)椤罢妗?,它是?zhí)行后面過程賦值語句的條件?!斑^程賦值語句”左邊的變量必須被定義成寄存器數(shù)據(jù)類型,右邊變量可以是任意數(shù)據(jù)類型。begin和end將多條過程賦值語句包圍起來,組成一個(gè)順序執(zhí)行語句塊,塊內(nèi)的語句按照排列順序
8、依次執(zhí)行,最后一條語句執(zhí)行完后,執(zhí)行掛起,然后always語句處于等待狀態(tài),等待下一個(gè)事件的發(fā)生。注意,begin和end之間只有一條語句,且沒有定義局部變量時(shí),則關(guān)鍵詞begin和end可以被省略。在Verilog中,將邏輯電路的敏感事件分為兩種類型:電平敏感事件和邊沿觸發(fā)事件。在組合電路中,輸入信號的變化直接會(huì)導(dǎo)致輸出信號的變化。時(shí)序電路中的鎖存器輸出在使能信號為高電平時(shí)未亦隨輸入電平變化,這種對輸入信號電平變化的響應(yīng)稱為電平敏感事件。而觸發(fā)器狀態(tài)的變化僅僅發(fā)生在時(shí)鐘脈沖的上升沿或下降沿。Verilog中分別用關(guān)鍵詞posedge(上升沿)和negedge(下降沿)進(jìn)行說明,這就是邊沿敏感
9、事件。3.2 8位雙向移位寄存器Verilog描述本設(shè)計(jì)通過行為級描述語句always描述了一個(gè)8位雙向移位寄存器,它有兩個(gè)選擇輸入端、兩個(gè)串行數(shù)據(jù)輸入端、8個(gè)并行數(shù)據(jù)輸入端和8個(gè)并行數(shù)據(jù)輸出端,完成的功能與圖2-1的電路相同。它有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位矢量)。設(shè)計(jì)程序如下:/Behavioral description of Universal shift registermo
10、dule shift (S1,S0,D,Dsl,Dsr,Q,CP,CR);input S1,S0;/Select inputsinput Dsl,Dsr;/serial data inputinput CP,CR;/Clock and Resetinput 7:0D;/Parallel Data inputoutput 7:0Q;/Register ouputreg7:0Q;always (posedge CP or negedge CR)if(CR) Q <= 8'b ;elsecase (S1,S0)2'b00:Q<=Q;/No change2'b01:
11、Q<=Q6:0,Dsr;/Shift right2'b10:Q<=Dsl,Q7:1;/Shift left2'b11: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<=8b ;表示當(dāng)CR信號為低電平時(shí),(CR)則
12、為1,此時(shí)將8為二進(jìn)制數(shù)b賦給Q,即實(shí)現(xiàn)移位寄存器的異步清零。Case語句類似于C語言中的case語句,同樣根據(jù)判斷條件來選擇要執(zhí)行的分支語句。在case中將S1和S0拼接為2位矢量,來共同決定判斷結(jié)果。同樣,移位由串行輸入和7個(gè)觸發(fā)器的輸入拼接起來進(jìn)行描述,如Q<=Dsl,Q7:1;說明了左移操作,即在時(shí)鐘信號CP上升沿作用下,將左移輸入端Dsl的數(shù)據(jù)直接傳給輸出Q7,而觸發(fā)器輸出端的數(shù)據(jù)左移一位,Q7:1傳給Q6:0(即Q7->Q6,Q6->Q5,,Q1->Q0),于是,完成將數(shù)據(jù)左移一位的操作。但是需要注意,上述程序中所注釋的右移和左移方向與圖2-1一致,而與Ve
13、rilog描述語句中的排列和移動(dòng)方向正好相反。后者與一般技術(shù)機(jī)程序一致(即高位在左,低位在右)。4程序仿真在QuartuaII中建立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í),首先考察此移位寄存器的左移、右移、保持和并行輸入的基本功能,然后再在串行輸入端加入信號,觀察移位寄存器的書序波形。圖4-1為基本功能時(shí)序圖。圖4-1 基本功能時(shí)序圖根據(jù)圖4-1,觀察
14、S1和S0信號,每個(gè)基本功能的仿真之前都先強(qiáng)制S1=S0=1,即實(shí)現(xiàn)并行輸入功能,給輸入D7:0設(shè)置初值,然后再下一個(gè)周期對S1、S0進(jìn)行改變,觀察輸出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周期初
15、,設(shè)定并行輸入D為15,第四個(gè)周期為保持,第五個(gè)周期,設(shè)定S1S0=01,則寄存器實(shí)現(xiàn)右移,換算到計(jì)算機(jī)運(yùn)算中即為左移一位,數(shù)值增大1倍。觀察第五個(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)?,功能仿真正確。完成基本功能的仿真后,設(shè)置串行輸入Dsl和Dsr,繼續(xù)仿真然后觀察時(shí)序圖。圖4-2為
16、加入串行輸入時(shí)的仿真結(jié)果。圖4-2 加入串行輸入時(shí)的仿真結(jié)果主要觀察第五個(gè)周期,Q初值為15,寄存器功能設(shè)定為右移,右移串行輸入為1,CP上升沿到來后,Q值增大為31,即增大到2倍后右在低位移入1。同樣在第九個(gè)周期中,寄存器設(shè)定功能為左移,CP上升沿到來后,原有的值18變?yōu)?,但是左移串行輸入為1,從高位引入1,即為128+9=137,功能仿真結(jié)果正確。5心得體會(huì)通過這次的能力拓展訓(xùn)練的課程設(shè)計(jì),使我又學(xué)習(xí)了很多知識,而且是課堂上不容易學(xué)到的知識。俗話說,“實(shí)踐出真知”,課堂上學(xué)習(xí)到的理論知識,如果不轉(zhuǎn)化為實(shí)踐的話,始終都將是一紙空文,沒什么大的價(jià)值。作為一名電類專業(yè)的學(xué)生,掌握基本的EDA設(shè)
17、計(jì)方法是理所當(dāng)然的事情。雖然我們的課程中,對此次課設(shè)使用的硬件描述語言的介紹并不是很多,但是并不代表它不重要,相反,我們需要學(xué)好這樣一種工具,并熟練掌握。而這次的課設(shè),則給了我學(xué)習(xí)并使用Verilog和使用QuartusII的機(jī)會(huì),和將理論轉(zhuǎn)化為實(shí)踐的機(jī)會(huì),使我獲益匪淺。首先,通過課設(shè)中的程序設(shè)計(jì),查閱相關(guān)的資料,我能熟練地使用Verilog語言編寫基本的程序,熟悉各寄存器的使用方法和數(shù)據(jù)傳送與處理,根據(jù)Verilog來對這些基本的硬件進(jìn)行行為級的描述。在Verilog程序編寫中,我還學(xué)到了使用它強(qiáng)大的實(shí)序仿真方法,進(jìn)而根據(jù)仿真結(jié)果來來輔助程序設(shè)計(jì),直到達(dá)到預(yù)期的功能。這個(gè)方法對以后進(jìn)行Ver
18、ilog程序的編寫和硬件開發(fā)將起到很大的幫助。其次,在之前的課程中,我們所學(xué)習(xí)的編程語言如C、Visual Basic,都是高級語言,在系統(tǒng)下編寫,以其自然的語法和結(jié)構(gòu),和方便的調(diào)試工具,使我們很快學(xué)習(xí)吸收。而此次課設(shè),我們卻接觸了直接對硬件進(jìn)行描述的HDL語言,是區(qū)別于C之類的。Verilog語言并不像想象中的那么晦澀難懂,其實(shí)它也有靈活的結(jié)構(gòu)和處理方式,而且很貼近于C語言的語法習(xí)慣和句式,學(xué)習(xí)起來很容易上手和提升。此外,通過這次課設(shè),明白可以通過Verilog語言和QuartusII來自己定制需要的硬件模塊,具有針對性高的特點(diǎn)。如今,我對Verilog語言也有了很濃厚的興趣,在以后的學(xué)習(xí)中,我會(huì)加大這方面的能力提升,來實(shí)現(xiàn)相關(guān)電子產(chǎn)品的設(shè)計(jì)。再次,因?yàn)閂erilog語言與硬件聯(lián)系比較緊密,在ASIC設(shè)計(jì)中使用廣泛,同時(shí)在嵌入式SOPC中也有及其重要的地位。這種才新興20余年的技術(shù)手段在未來肯定會(huì)得到越來越大的推廣和使用。如今
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色建筑設(shè)計(jì)與施工合同書(環(huán)保版)
- 蘇科版數(shù)學(xué)九年級上冊2.8 錐的側(cè)面積聽評課記錄
- 生產(chǎn)現(xiàn)場成本控制的有效方法
- 【基礎(chǔ)卷】同步分層練習(xí):四年級下冊語文第3課《天窗》(含答案)
- 2025年度企業(yè)宣傳片定制與制作服務(wù)合同
- 機(jī)器人技術(shù)在教育行業(yè)的應(yīng)用前景
- 湘教版數(shù)學(xué)七年級上冊《2.5整式的加法和減法(2)》聽評課記錄7
- 生產(chǎn)調(diào)度的核心科學(xué)化、智能化決策
- 2025年度智能電纜系統(tǒng)設(shè)備供應(yīng)合同
- 人教版數(shù)學(xué)八年級上冊《角的平分線性質(zhì)的應(yīng)用》聽評課記錄
- 施工現(xiàn)場視頻監(jiān)控系統(tǒng)施工方案
- 2024年高考語文思辨類作文預(yù)測+考前模擬題+高分范文
- (正式版)JTT 1495-2024 公路水運(yùn)危險(xiǎn)性較大工程安全專項(xiàng)施工方案審查規(guī)程
- 2024年演出經(jīng)紀(jì)人考試必背1000題一套
- 課題達(dá)成型品管圈
- (正式版)JBT 1050-2024 單級雙吸離心泵
- 刑事判決書標(biāo)準(zhǔn)格式
- 《量化交易之門》連載27:風(fēng)險(xiǎn)的角度談收益MAR和夏普比率
- 華師大版數(shù)學(xué)七年級下冊全冊教案
- 2024年廣州市高三一模普通高中畢業(yè)班高三綜合測試一 物理試卷(含答案)
- 基于深度學(xué)習(xí)的醫(yī)學(xué)影像識別與分析
評論
0/150
提交評論