移位相加型8位硬件乘法器設計_第1頁
移位相加型8位硬件乘法器設計_第2頁
移位相加型8位硬件乘法器設計_第3頁
移位相加型8位硬件乘法器設計_第4頁
移位相加型8位硬件乘法器設計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、合肥學院程設計報告移位相加型8位硬件乘法器別:電子信息與電氣工程系業(yè):通信工程級:13通信工程(1)班名:師:石朝毅績:2016年6月11日移位相加型8位硬件乘法器設計摘要本次設計是基于時序結構的8位移位相加型乘法器,使用as軟件QuartusII進行仿真設計。完成此乘法器,我們需要首先設計該乘法器的組件,包括REGSHT莫塊、SREG8B莫塊、AND8B模塊和ADDER8B1模塊,并對所有元件進行仿真,無誤后可進行乘法器的設計。設計方法使用的是元件例化,具體原理是通過逐項相加來實現(xiàn)乘法功能,最終完成整體的VHDL程序設計并仿真。關鍵詞:時序;乘法器;元件例化!未定義書簽。!未定義書簽。!未定

2、義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。!未定義書簽。目錄第i章前言錯誤設計概述錯誤問題提出與原理錯誤設計需要錯誤第二章設計過程及結果錯誤設計思路錯誤設計須知錯誤基本步驟錯誤設計代碼及仿真錯誤元件REGSHT設計代碼及仿真結果錯誤元件SREG8BT設計代碼及仿真結果錯誤元件AND8B設計代碼及仿真結果錯誤元件ADDER8BT設計代碼及仿真結果錯誤總模塊設計代碼及仿真結果錯誤第三章總結錯誤致謝錯誤!未定義書簽。第一章前言設計概述問題提出與原理采用元件例化的設計方法,設計一個移

3、位相加型8位硬件乘法器設計。下圖所示為一個基于時序結構的8位移位相加型乘法器。圖1設計原理圖設計需要元件REGSH設計,并仿真;2)元件SREG8BT并仿真;3)元件AND8B,并仿真;元件ADDER8B,T并仿真;5)整體VHDL程序設計,包括元件例化,并仿真。第二章設計過程及結果設計思路設計須知首先建立文件夾在軟件工作的環(huán)境下,注意對于不同的器件的設計不能放在同一個文件夾當中這樣會造成編譯時出現(xiàn)混亂的錯誤現(xiàn)象。對于每個元器件的設計有兩種方法:可以利用原理圖輸入法,或者利用文本輸入法進行設計。本次設計使用的是文本輸入法。要注意在寫文本輸入時要注意實體名與你程序中名字一致。然后,依次按照實驗指

4、導書的步驟進行設計。先功能仿真,然后時序仿真,最后下載編譯?;静襟E(1)為本項設計建立文件夾任何一項設計都是一項工程(Project),都必須首先為此工程建立一個放置與此工程相關的所有文件的文件夾,此文件夾將被EDA軟件默認為工作庫(WorkLibrary)o一個設計項目可以包含多個設計文件,一般不同的設計項目最好放在不同的文件夾中。注意:文件名不能用中文,且不可帶空格。(2)輸入設計項目和存盤a.打開QuartusII單擊"File"菜單,將鼠標移到NewProjectWizard選項并單擊,b.選擇FileNew,選擇原理圖編輯器,雙擊“BlockDiagram/Sc

5、hematicFile,”或者選中該項后單擊“0K按鈕。(或者選擇FileNew,選擇VHDLFile進行文本設計)(3)選擇目標器件并編譯,在Assignments選項的下拉菜單中選擇器件選擇項Device.,在Family(器件序列欄)中選定目標器件對應的序列名,EP1C6對應的是Cyclone系列。在AvailableDevices里選擇EP1C6Q240C&有時需要把Showadvaneeddevices的勾消去,以便顯示出所有速度級別的器件)。注意:所選器件必須與目標板的器件型號完全一致。(4)在總VHDL程序中需要將要用到的之前設計好的元件添加到當前工程中來,添加方法如下:

6、ProjectAdd/RemoveFileinProjeet,找到之前的元件add即可,之后方可進行總程序的編譯。(5)仿真時,首先選擇EditEndTime設置時間為30us,之后導入輸入輸出端口,選擇Pins:All將需要的端口添加,之后給輸入端口進行賦值或添加時鐘進行時序仿真。設計代碼及仿真元件REGSHTS計代碼及仿真結果LIBRARYIEEE;USEregshtISPORT(CLK,CLR:INSTD.LOGIC;D:INSTD_L0GIC_VECT0R(8DOWNTO0);Q:OUTSTD_L0GIC_VECT0R(15DOWNTO0);ENDregsht;ARCHITECTURE

7、behavOFregshtISSIGNALR16S:STD_L0GIC_VECT0R(15DOWNTO0);BEGINPROCESS(CLK,CLR)BEGINIFCLR=T'THENRI6s<二(OTHERS二)'O');ELSIFCLK'EVENTANDCLK=,TTHENR16S(6DOWNTO0)<=R16S(7DOWNTO1);R16S(15DOWNTO7)<=D;ENDIF;ENDPROCESS;Qv=R16S;ENDbehav;TirCd.IIVIJEHlX«XrtwLalxF1I-Ta:P"LeoPf=2IO

8、P1300»IttCTlT400PrjifjnnnnvuuiTjminmirnfuinROinRnnwuirjinnfuinRmiuirLJinnRrmj圖2REGSHT寸序仿真圖分析:此處鎖存器模塊即16位右移寄存器可利用IF語句來完成其輸入值的鎖存當清零CLR'信號到來時定義的信號量R16S鎖存輸入值即R16S清零否則在時鐘信號CLK上升沿作用下將R16S的低8位進行移位操作同時將8位輸入數據D鎖存到R16S的高8位最后傳送給Q輸出。在乘法器的頂層設計中乘數與被乘數的乘積也將出現(xiàn)在REG16B端口。元件SREG8B設計代碼及仿真結果LIBRARYIEEE;USEsreg8

9、btISPORT(CLK,LOAD:INSTD.LOGIC;DIN:INSTD_L0GIC_VECT0R(7DOWNTO0);QB:OUTSTD.LOGIC);ENDsreg8bt;ARCHITECTUREbehavOFsreg8btISSIGNALREG8:STD.LOGIC.VECTOR(7DOWNTO0);BEGINPROCESS(CLK,LOAD)BEGINIFCLK'EVENTANDCLK=T'THENIFLOAD='1'THENREG8<=DIN;ELSEREG8(6DOWNTO0)v=REG8(7DOWNTO1);ENDIF;ENDIF;EN

10、DPROCESS;QB<=REG8(0);ENDbehav;lfoan<Tl-irlUIrtt1rmtr-JWXmXru-WlI1Jh81rcKlLvlApL*TIKQfhDQTLY190pf惘M.TAr立?Z0國SO.0ni-SirLrlrLnLrLrLrLrLrLrLrLrLr_rLrL-LrLrLrLnrLrirLrurLrLrLJuflnn5曰.圖3SREG8BT寸序仿真圖分析:8位右移寄存器是當時鐘信號CLK處于上升沿時當LOAD=1時將8位被乘數加載進去而當LOAD='。時數據進行移位操作。同時定義一個信號REG8用來裝載新rEG8(0)數據及移位后的操作數在完

11、成這些操作后寄存器的最低位傳送給QB輸出。元件AXD8B設計代碼及仿真結果LIBRARYIEEE;USEand8bISPORT(ABIN:INSTD.LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);DOUT:OUTSTD_L0GIC_VECT0R(7DOWNTO0);ENDand8b;ARCHITECTUREbehavOFand8bISBEGINPROCESS(ABIN,DIN)BEGINFORIIN0TO7LOOPDOUT(l)v=DIN(l)ANDABIN;ENDLOOP;ENDPROCESS;ENDbehav;Ujih££liTaOjiM

12、ClDhHrte*SXUizxenF:Ii*End4UJV42加LSXXMW.fnix»tiIVTK|F.nDOmVuKTunUOU0QKurrfEi«圖4AND8B時序仿真圖分析:加法器是由兩個4位二進制加法器U1和U2組成的8位加法器邏輯電路其中U1用來裝載8位加法器中兩個加數的低四位而U2則用來裝載高4位。元件ADDER8BT設計代碼及仿真結果USEadder8btISPORT(CIN:INSTD.LOGIC;A,B:INSTD_L0GIC_VECT0R(7DOWNTO0);S:OUTSTD_L0GIC_VECT0R(7DOWNTO0);COUT:OUTSTD.LOG

13、IC);ENDadder8bt;ARCHITECTUREbehavOFadder8btISSIGNALSINT,AA,BB:STD_LOGIC_VECTOR(8DOWNTO0);BEGINAA號'O'&A;BB(二,0,&B;SINT<=AA+BB+CIN;S<=SINT(7DOWNTO0);C0UT<=SINT(8);ENDbehav;SioTiniKc圖5ADDER8BT時序仿真圖分析:8位加法器的設計是由兩個4位加法器UI,U2所形成的在下面程序中定義一個信號量CARRY_OUT將4位加法器U1的COUT賦給CARRY_OUT再將CARR

14、Y.OUT的值賦給4位加法器U2的進位CIN,8位加法器的高四位低四位分別來自于4位加法器U2和UL總模塊設計代碼及仿真結果LIBRARYIEEE;USEMULT8BISPORT(CLKO,LD:INSTD.LOGIC;A,B:INSTD_L0GIC_VECT0R(7DOWNTO0);Q0:BUFFERSTD_L0GIC_VECT0R(15DOWNTO0);ENDENTITYMULT8B;ARCHITECTUREBEHAVOFMULT8BISCOMPONENTSREG8BTPORT(CLK,LOAD:INSTD.LOGIC;DIN:INSTD_L0GIC_VECT0R(7DOWNTO0);QB

15、:OUTSTD.LOGIC);ENDCOMPONENT;COMPONENTAND8BPORT(ABIN:INSTD.LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);DOUT:OUTSTD_L0GIC_VECT0R(7DOWNTO0);ENDCOMPONENT;COMPONENTADDER8BTPORT(CIN:INSTD_LOGIC;A,B:INSTD_L0GIC_VECT0R(7DOWNTO0);S:OUTSTD_L0GIC_VECT0R(7DOWNTO0);COUT:OUTSTD.LOGIC);ENDCOMPONENT;COMPONENTREGSHTPORT(

16、CLK,CLR:INSTD.LOGIC;D:INSTD_L0GIC_VECT0R(8DOWNTO0);Q:OUTSTD_L0GIC_VECT0R(15DOWNTO0);ENDCOMPONENT;SIGNALNET1:STD_LOGIC;SIGNALNET4:STD_L0GIC;SIGNALNET3:STD_L0GIC_VECT0R(7DOWNTO0);SIGNALNET2:STD_L0GIC_VECT0R(8DOWNTO0);BEGINU1:SREG8BTPORTMAP(CLK=>CLKO,LOAD=>LD,DIN=>A,QB=>NET1);U2:AND8BPORTMA

17、P(DIN=>B,ABIN=NET1,DOUT二)NET3);U4:ADDER8BTPORTMAP(A=>Q0(15DOWNTO8),B=>NET3,CIN=>NET4,S=>NET2(7DOWNTO0),C0UT=>NET2(8);U3:REGSHTPORTMAP(CLK=>CLKO,CLR=>LD,D=>NET2,Q=>QO);ENDARCHITECTUREBEHAV;8nHSiitnlBUoBTif»Lrd03soy2*Ca909B3yoP-IW.pmnMn?CUD)0LBB0IdA20Q(d。E00QMlhmif(MICSPfOtXP31E圖6總模塊時序仿真圖第三章總結本次設計是個綜合性設計,我們需要熟悉很多知識才能完成本次設計。通過本次項目的設計,我對一個項目開發(fā)的基本流程有了更深層次的了解,也讓我加深對EDA的了解,我也開始喜歡上了EDA在此次設計的過程中,遇到了很多問題,如寫端口時將小括號寫成大括號,有些部分還少了分號導致了編譯出錯,最后根據錯誤提示信息找到了錯誤并改正,還有仿真的時候找不到

溫馨提示

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

評論

0/150

提交評論