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

下載本文檔

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

文檔簡介

1、合 肥 學(xué) 院課 程 設(shè) 計 報 告題 目:移位相加型8位硬件乘法器系 別: 電子信息與電氣工程系 專 業(yè): 通信工程 班 級: 13通信工程(1)班 學(xué) 號: 姓 名: 導(dǎo) 師: 石朝毅 成 績: 2016年 6 月 11 日移位相加型8位硬件乘法器設(shè)計摘要本次設(shè)計是基于時序結(jié)構(gòu)的8位移位相加型乘法器,使用軟件QuartusII進行仿真設(shè)計。完成此乘法器,我們需要首先設(shè)計該乘法器的組件,包括REGSHT模塊、SREG8BT模塊、AND8B模塊和ADDER8BT模塊,并對所有元件進行仿真,無誤后可進行乘法器的設(shè)計。設(shè)計方法使用的是元件例化,具體原理是通過逐項相加來實現(xiàn)乘法功能,最終完成整體的V

2、HDL程序設(shè)計并仿真。關(guān)鍵詞:時序;乘法器;元件例化目錄第一章 前言11.1設(shè)計概述1問題提出與原理1設(shè)計需要1第二章 設(shè)計過程及結(jié)果22.1設(shè)計思路2設(shè)計須知2基本步驟22.2設(shè)計代碼及仿真3元件REGSHT設(shè)計代碼及仿真結(jié)果3元件SREG8BT設(shè)計代碼及仿真結(jié)果4元件AND8B設(shè)計代碼及仿真結(jié)果5元件ADDER8BT設(shè)計代碼及仿真結(jié)果7總模塊設(shè)計代碼及仿真結(jié)果8第三章 總結(jié)11致謝12第一章 前言1.1設(shè)計概述問題提出與原理采用元件例化的設(shè)計方法,設(shè)計一個移位相加型8位硬件乘法器設(shè)計。下圖所示為一個基于時序結(jié)構(gòu)的8位移位相加型乘法器。圖1設(shè)計原理圖1.1.2設(shè)計需要(1)元件REGSHT設(shè)

3、計,并仿真;(2)元件SREG8BT,并仿真;(3)元件AND8B,并仿真;(4)元件ADDER8BT,并仿真;(5)整體VHDL程序設(shè)計,包括元件例化,并仿真。第二章 設(shè)計過程及結(jié)果2.1設(shè)計思路設(shè)計須知首先建立文件夾在軟件工作的環(huán)境下,注意對于不同的器件的設(shè)計不能放在同一個文件夾當(dāng)中這樣會造成編譯時出現(xiàn)混亂的錯誤現(xiàn)象。對于每個元器件的設(shè)計有兩種方法:可以利用原理圖輸入法,或者利用文本輸入法進行設(shè)計。本次設(shè)計使用的是文本輸入法。要注意在寫文本輸入時要注意實體名與你程序中名字一致。然后,依次按照實驗指導(dǎo)書的步驟進行設(shè)計。先功能仿真,然后時序仿真,最后下載編譯。2.1.2基本步驟(1)為本項設(shè)計

4、建立文件夾任何一項設(shè)計都是一項工程(Project),都必須首先為此工程建立一個放置與此工程相關(guān)的所有文件的文件夾,此文件夾將被EDA軟件默認為工作庫(Work Library)。一個設(shè)計項目可以包含多個設(shè)計文件,一般不同的設(shè)計項目最好放在不同的文件夾中。注意:文件名不能用中文,且不可帶空格。(2)輸入設(shè)計項目和存盤 a.打開Quartus II,單擊“File”菜單,將鼠標(biāo)移到New Project Wizard選項并單擊,b.選擇File-New,選擇原理圖編輯器,雙擊“Block Diagram/Schematic File”,或者選中該項后單擊“OK”按鈕。(或者選擇File 

5、4;New,選擇VHDL File進行文本設(shè)計)(3)選擇目標(biāo)器件并編譯,在Assignments選項的下拉菜單中選擇器件選擇項Device.,在Family(器件序列欄)中選定目標(biāo)器件對應(yīng)的序列名,EP1C6對應(yīng)的是Cyclone系列。在Available Devices里選擇EP1C6Q240C8(有時需要把 Show advanced devices的勾消去,以便顯示出所有速度級別的器件)。注意:所選器件必須與目標(biāo)板的器件型號完全一致。(4)在總VHDL程序中需要將要用到的之前設(shè)計好的元件添加到當(dāng)前工程中來,添加方法如下:ProjectAdd/Remove File in Project

6、,找到之前的元件add即可,之后方可進行總程序的編譯。(5)仿真時,首先選擇EditEndTime設(shè)置時間為30us,之后導(dǎo)入輸入輸出端口,選擇Pins:All將需要的端口添加,之后給輸入端口進行賦值或添加時鐘進行時序仿真。2.2設(shè)計代碼及仿真2.2.1元件REGSHT設(shè)計代碼及仿真結(jié)果LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY regsht ISPORT(CLK,CLR:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(8 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);E

7、ND regsht;ARCHITECTURE behav OF regsht ISSIGNAL R16S:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINPROCESS(CLK,CLR)BEGINIF CLR='1' THEN R16S<=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENR16S(6 DOWNTO 0)<=R16S(7 DOWNTO 1);R16S(15 DOWNTO 7)<=D;END IF;END PROCESS;Q<=R1

8、6S;END behav;圖2 REGSHT時序仿真圖分析:此處鎖存器模塊即16位右移寄存器可利用IF語句來完成其輸入值的鎖存當(dāng)清零CLR=1信號到來時定義的信號量R16S鎖存輸入值即R16S清零否則在時鐘信號CLK上升沿作用下將R16S的低8位進行移位操作同時將8位輸入數(shù)據(jù)D鎖存到R16S的高8位最后傳送給Q輸出。在乘法器的頂層設(shè)計中乘數(shù)與被乘數(shù)的乘積也將出現(xiàn)在REG16B端口。2.2.2元件SREG8BT設(shè)計代碼及仿真結(jié)果LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY sreg8bt ISPORT(CLK,LOAD:IN STD_LOGIC;

9、 DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB:OUT STD_LOGIC);END sreg8bt;ARCHITECTURE behav OF sreg8bt ISSIGNAL REG8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(CLK,LOAD)BEGINIF CLK'EVENT AND CLK='1' THENIF LOAD='1' THENREG8<=DIN;ELSE REG8(6 DOWNTO 0)<=REG8(7 DOWNTO 1);END IF;END

10、IF;END PROCESS;QB<=REG8(0);END behav;圖3 SREG8BT時序仿真圖分析:8位右移寄存器是當(dāng)時鐘信號CLK處于上升沿時當(dāng)LOAD=1時將8位被乘數(shù)加載進去而當(dāng)LOAD=0時數(shù)據(jù)進行移位操作。同時定義一個信號REG8用來裝載新數(shù)據(jù)及移位后的操作數(shù)在完成這些操作后寄存器的最低位REG8(0)傳送給QB輸出。2.2.3元件AND8B設(shè)計代碼及仿真結(jié)果LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY and8b ISPORT(ABIN:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7

11、DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END and8b;ARCHITECTURE behav OF and8b ISBEGINPROCESS(ABIN,DIN)BEGINFOR I IN 0 TO 7 LOOPDOUT(I)<=DIN(I) AND ABIN;END LOOP;END PROCESS;END behav;圖4 AND8B時序仿真圖分析:加法器是由兩個4位二進制加法器U1和U2組成的8位加法器邏輯電路其中U1用來裝載8位加法器中兩個加數(shù)的低四位而U2則用來裝載高4位。2.2.4元件ADDER8BT設(shè)計代碼及仿真結(jié)

12、果LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder8bt ISPORT(CIN:IN STD_LOGIC; A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COUT:OUT STD_LOGIC);END adder8bt;ARCHITECTURE behav OF adder8bt ISSIGNAL SINT,AA,BB:STD_LOGIC_VECTOR(8 DOWNTO 0);

13、BEGINAA<='0'&A;BB<='0'&B;SINT<=AA+BB+CIN;S<=SINT(7 DOWNTO 0);COUT<=SINT(8);END behav;圖5 ADDER8BT時序仿真圖分析:8位加法器的設(shè)計是由兩個4位加法器U1,U2所形成的在下面程序中定義一個信號量CARRY_OUT將4位加法器U1的COUT賦給CARRY_OUT ,再將CARRY_OUT的值賦給4位加法器U2的進位CIN,8位加法器的高四位低四位分別來自于4位加法器U2和U1。2.2.5總模塊設(shè)計代碼及仿真結(jié)果LIBRARY I

14、EEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MULT8B ISPORT(CLK0,LD:IN STD_LOGIC;A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);Q0:BUFFER STD_LOGIC_VECTOR(15 DOWNTO 0);END ENTITY MULT8B;ARCHITECTURE BEHAV OF MULT8B ISCOMPONENT SREG8BT PORT(CLK,LOAD:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(

15、7 DOWNTO 0);QB:OUT STD_LOGIC);END COMPONENT;COMPONENT AND8BPORT(ABIN:IN STD_LOGIC; DIN :IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END COMPONENT; COMPONENT ADDER8BTPORT(CIN:IN STD_LOGIC; A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); S: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT:OUT

16、STD_LOGIC);END COMPONENT;COMPONENT REGSHTPORT(CLK,CLR:IN STD_LOGIC;D:IN STD_LOGIC_VECTOR(8 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END COMPONENT;SIGNAL NET1:STD_LOGIC;SIGNAL NET4:STD_LOGIC;SIGNAL NET3:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL NET2:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN U1:SREG8BT PORT M

17、AP(CLK=>CLK0,LOAD=>LD,DIN=>A,QB=>NET1);U2:AND8B PORT MAP(DIN=>B,ABIN=>NET1,DOUT=>NET3);U4:ADDER8BT PORT MAP(A=>Q0(15 DOWNTO 8),B=>NET3,CIN=>NET4,S=>NET2(7 DOWNTO 0),COUT=>NET2(8);U3:REGSHT PORT MAP(CLK=>CLK0,CLR=>LD,D=>NET2,Q=>Q0);END ARCHITECTURE BEHAV;圖6 總模塊時序仿真圖第三章 總結(jié)本次設(shè)計是個綜合性設(shè)計,我們需要熟悉很多知識才能完成本次設(shè)計。通過本次項目的設(shè)計,我對一個項目開發(fā)的基本流程有了更深層次的了解,也讓我加深對EDA的了解,我也開始喜歡上了EDA。在此次設(shè)計的過程中,遇到了很多問題,如寫端口時將小括號寫成大括號,有些部分還少了分號導(dǎo)致了編譯出錯,最后根據(jù)錯誤提示信息找到了錯誤并改正,還有仿真的時候找不到

溫馨提示

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

評論

0/150

提交評論