32位移雙向位寄存器的設計_第1頁
32位移雙向位寄存器的設計_第2頁
32位移雙向位寄存器的設計_第3頁
32位移雙向位寄存器的設計_第4頁
32位移雙向位寄存器的設計_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 EDA課程設計報告題目:32位移位寄存器設計 專業(yè)班級:電氣工程及其自動化101姓名: 完成日期:2012年12月 30 日 設計要求雙向移位寄存器設計要求:完成以下功能特性的雙向32 位移位寄存器。同時要求有使能端,用1602 顯示。LOADLEFT_RIGHTCLKDQ1XXD異步置數(shù)Q=D00D循環(huán)右移01D循環(huán)左移32位移位寄存器設計摘 要:移位寄存器是基本的同步時序電路,基本的移位寄存器可以實現(xiàn)數(shù)據(jù)的串行/并行或并行/串行的轉(zhuǎn)換、數(shù)值運算以及其他數(shù)據(jù)處理功能。在本設計中使用硬件描述語言Verilog,在EDA工具QuartussII中,設計32位雙向移位寄存器硬件電路,根據(jù)設計語言

2、進行功能時序仿真,驗證設計的正確性與可行性。關鍵詞:Verilog QuartusII 移位寄存器1 引言隨著社會的發(fā)展,科學技術也在不斷的進步。特別是計算機產(chǎn)業(yè),可以說是日新月異,移位寄存器作為計算機的一個重要部件,從先前的只能做簡單的左移或右移功能的寄存器到現(xiàn)在廣泛應用的具有寄存代碼、實現(xiàn)數(shù)據(jù)的串行-并行轉(zhuǎn)換、數(shù)據(jù)運算和數(shù)據(jù)處理功能的移位寄存器。移位寄存器正在向著功能強,體積小,重量輕等方向不斷發(fā)展,本設計主要介紹的是一個基于超高速硬件描述語言Verilog對移位寄存器進行編程實現(xiàn)?,F(xiàn)在各種裝飾用的流水燈、廣告彩燈、宣傳畫越來越多的出現(xiàn)在人民的生活當中,這些裝飾控制設備多數(shù)要用移位寄存器來

3、實現(xiàn)。在計算機中常要求寄存器有移位功能。如在進行乘法時,要求將部分積右移;在將并行傳送的數(shù)轉(zhuǎn)換成串行數(shù)時也需要移位。因此,移位寄存器的設計是必要的。2 總體設計方案移位寄存器的功能即是對每一個上升沿到來時,并且寄存器使能是時,對輸入按照移位模式控制信號的要求實現(xiàn)輸出的左移和右移。首先,要完成雙向的32位移位寄存器,就首先必須要實現(xiàn)8位移位寄存器作為基礎。其次,在4個8個移位寄存器的基礎上達到32位移位寄存器的功能。第一要有模式控制輸入,來控制移位寄存器的移位方向;第二,有使能端,即在什么情況下移位寄存器才可以正常工作,才可以實現(xiàn)模式控制,什么時候置數(shù),什么時候移位,是左移還是右移,這就要求使能

4、是模式控制輸入的前提;然后是脈沖控制信號,由要求可知,移位寄存器是在上升沿觸發(fā)的,即在每一次上升沿到來時,移位寄存器使輸入按照模式控制的要求向左或向右移一位;最后輸入和輸出,都要用到32位并行輸入和輸出。本設計用一個8位移位寄存器,再增加一些電路,如4個8位鎖存器等,設計成為一個能為32位二進制數(shù)進行不同方式移位的移位寄存器。先建立底層模塊,再自底向上進行實驗調(diào)試仿真。2.1 設計思路2.1.1 8位移位寄存器功能的實現(xiàn)移位寄存器是基本的同步時序電路,基本的移位寄存器可以實現(xiàn)數(shù)據(jù)的串行/并行或并行/串行的轉(zhuǎn)換、數(shù)值運算以及其他數(shù)據(jù)處理功能。在本設計中定義移位寄存器中的數(shù)據(jù)從低位觸發(fā)器移向高位為

5、右移,移向低位為左移。由設計要求可知,要實現(xiàn)8位的雙向移位寄存器,并且還有使能端。我們可令CLK為移位時鐘信號,D為8位并行預置數(shù)據(jù)端口,CO為進位輸入,CN為進位輸出,LOAD為并行數(shù)據(jù)預置使能信號,Q為串行輸出端口,LEFT_RIGHT為左/右移控制數(shù)。此移位寄存器的工作方式是:當CLK得上升沿到來時,過程被啟動,如果這時預置使能端LOAD為低電平,且移位模式控制數(shù)LEFT_RIGHT為1時,則進位輸入CO被移入最低位,最高位被移入寄存器中,進而移到進位輸出CN,低7位依次左移1位;如果移位模式控制數(shù)LEFT_RIGHT為0時,則CO被移入最高位,最低位被移入寄存器中,進而移到進位輸出CN

6、,高7位依次右移1位。但如果這時預置使能端LOAD為高電平時,則將預置端口D中數(shù)據(jù)并行送往移位寄存器。最后在8位的基礎上來實現(xiàn)32位的更高功能。模塊程序見附錄。所生成的RTL圖如下圖1,仿真圖如圖2。圖1圖22.1.2 8位鎖存器功能的實現(xiàn)通過8位鎖存器實現(xiàn)數(shù)據(jù)輸入緩存,連通數(shù)據(jù)輸入與分配到四個八位寄存器。其RTL圖如圖3,仿真圖如圖4。圖3圖42.1.3 32位移位寄存器功能的實現(xiàn)一個Verilog模塊對應一個硬件電路功能實體器件。如果要將這些實體器件連接起來構成一個完整的系統(tǒng),就需要一個總的模塊將所有涉及的子模塊連接起來,這個總的模塊所對應的Verilog設計文件就成為頂層文件,或頂層模塊

7、。為了達到連接底層文件達到更高層次的電路設計結構,文件中使用了例化語句,用wire定義了網(wǎng)線型變量,用作底層文件的連線。Verilog中元件例化的語句結構比較簡單,一般格式如下:<模塊文件名> <例化文件名> ( . 例化元件端口(例化元件外接端口名),);總體圖中用到了4個鎖存器和4個8位移位寄存器。相同的元件承擔不同的任務,所以必須用不同的名字標注這些器件即元件名。本設計中分別用u1,u3,u5,u7 表示4個鎖存器,用u2,u4,u6,u8表示4個8位移位寄存器。具體例化語句如:SUOCUN U1(.D(DB7:0),.CLK(CLK),.Q(E);SUOCUN

8、為待調(diào)用的元件名,它就是存盤過的。而u1是用戶在此特定情況下調(diào)用元件SUOCUN而取的名字,即例化名。CLK(CLK)中的括號內(nèi)是鎖存器內(nèi)部時鐘,括號外是外部時鐘,表示內(nèi)部時鐘與外部時鐘相連??偟某绦蛞姼戒洝I傻腞TL圖和仿真圖見下圖5,6:圖5圖62.1.4 整體設計首先,當脈沖上升沿到來,LOAD=0使能時,確定移位模式控制數(shù),若left_right=0,則執(zhí)行begin REG7<=CO;REG6:0<=REG7:1;CY<=REG0;end。此語句表明:一個時鐘周期后將上一時鐘周期移位寄存器中的最低位放入寄存器的最高位,且高7位二進制數(shù),即以當前值 REG7:1更新

9、至此寄存器的低7位d6:0。但它并不會自我覆蓋,則其串行移空的最高位始終由后放入的最高位補充,隨著CLK脈沖的連續(xù)到來就完成了將并行預置輸入的數(shù)據(jù)逐位向右串行輸出的功能,即將寄存器的最低位首先輸出;若left_right=1,則執(zhí)行begin REG0<=CO;REG7:1<=REG6:0;CY<=REG7;end。表明:一個時鐘周期將上一時鐘周期移位寄存器中的最高位放入寄存器的最低位,且低7位二進制數(shù),即以當前值 REG6:0更新至此寄存器的高7位d7:1,并執(zhí)行后面的assign Q=REG;assign CN=CY。實現(xiàn)最終的輸出。完整程序見附錄。3 總結經(jīng)過了兩周的學

10、習和工作,我終于完成了移位寄存器的設計和實現(xiàn)及相關論文。從開始接到課程設計題目到系統(tǒng)的實現(xiàn),再到論文文章的完成,每走一步對我來說都是新的嘗試與挑戰(zhàn),這也是我在大學期間獨立完成的一項比較大的項目。在這段時間里,我學到了很多知識也有很多感受,從課程設計,EDA,VHDL等相關知識很不了解的狀態(tài),我開始了獨立的學習和試驗,查看相關的資料和書籍,讓自己頭腦中模糊的概念逐漸清晰,使自己非常稚嫩作品一步步完善起來,每一次改進都是我學習的收獲,每一次試驗的成功都會讓我興奮好一段時間。通過查閱相關的資料我初步地學會了使用Verilog語言編寫基本的程序熟悉了各寄存器的使用方法和數(shù)據(jù)傳送與處理根據(jù)Verilog

11、來對這些基本的硬件進行行為級的描述。在Verilog程序編寫中我還體會到了它強大的實序仿真功能進而根據(jù)仿真結果來來輔助程序設計直到達到預期的功能。這個方法對以后進行Verilog程序的編寫和硬件開發(fā)將起到很大的幫助。 雖然我的論文作品不是很成熟,還有很多不足之處,但我可以自豪的說,這里面的每一段代碼,都有我的勞動。當看著自己的程序,自己成天相伴的系統(tǒng)能夠健康的運行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會化為甜美的甘泉。通過查閱相關的資料我初步地學會了使用Verilog語言編寫基本的程序熟悉了各寄存器的使用方法和數(shù)據(jù)傳送與處理根據(jù)Verilog來對這些基本的硬件進行行為級的描述。在V

12、erilog程序編寫中我還體會到了它強大的實序仿真功能進而根據(jù)仿真結果來來輔助程序設計直到達到預期的功能。這個方法對以后進行Verilog程序的編寫和硬件開發(fā)將起到很大的幫助。附錄18位移位寄存器程序module YIWEI (CLK,CO,LOAD,LEFT_RIGHT,D,Q,CN);output 7:0 Q;output CN;input CLK,CO,LOAD,LEFT_RIGHT;input 7:0 D;reg 7:0 REG;reg CY;always (posedge CLK or posedge LOAD) beginif(LOAD) REG<=D;else if(LEF

13、T_RIGHT)begin REG0<=CO;REG7:1<=REG6:0;CY<=REG7;endelse begin REG7<=CO;REG6:0<=REG7:1;CY<=REG0;endendassign Q=REG;assign CN=CY;endmodule鎖存器程序module SUOCUN (D,Q,CLK);output 7:0 Q;input 7:0 D;input CLK;reg 7:0 Q1;always (posedge CLK) beginQ1<=D;endassign Q=Q1;endmodule32位移位寄存器程序mod

14、ule YIWEI32 (DB,CLK,LOAD,LEFT_RIGHT,QB);output 31:0 QB;input 31:0 DB; input CLK,LOAD,LEFT_RIGHT;wire 7:0 E,F,G,H; wire K,L,M,N;SUOCUN U1(.D(DB7:0),.CLK(CLK),.Q(E);YIWEI U2(.CLK(CLK),.CO(K),.LOAD(LOAD),.LEFT_RIGHT(LEFT_RIGHT),.D(E),.Q(QB7:0),.CN(L);SUOCUN U3(.CLK(CLK),.D(DB15:8),.Q(F);YIWEI U4(.CLK(CLK),.CO(L),.LOAD(LOAD),.LEFT_RIGHT(LEFT_RIGHT),.D(F),.Q(QB15:8),.CN(M);SUOCUN U5(.CLK(CLK),.D(DB23:16),.Q(G);YIWEI U6(.CLK(CLK),.CO(M),.LOAD(LOAD),.LEFT_RIGHT(LEFT_RIGHT),.D

溫馨提示

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

最新文檔

評論

0/150

提交評論