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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、,找到之前的元件add即可,之后方可進(jìn)行總程序的編譯。(5)仿真時(shí),首先選擇EditEndTime設(shè)置時(shí)間為30us,之后導(dǎo)入輸入輸出端口,選擇Pins:All將需要的端口添加,之后給輸入端口進(jìn)行賦值或添加時(shí)鐘進(jìn)行時(shí)序仿真。2.2設(shè)計(jì)代碼及仿真2.2.1元件REGSHT設(shè)計(jì)代碼及仿真結(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時(shí)序仿真圖分析:此處鎖存器模塊即16位右移寄存器可利用IF語(yǔ)句來(lái)完成其輸入值的鎖存當(dāng)清零CLR=1信號(hào)到來(lái)時(shí)定義的信號(hào)量R16S鎖存輸入值即R16S清零否則在時(shí)鐘信號(hào)CLK上升沿作用下將R16S的低8位進(jìn)行移位操作同時(shí)將8位輸入數(shù)據(jù)D鎖存到R16S的高8位最后傳送給Q輸出。在乘法器的頂層設(shè)計(jì)中乘數(shù)與被乘數(shù)的乘積也將出現(xiàn)在REG16B端口。2.2.2元件SREG8BT設(shè)計(jì)代碼及仿真結(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時(shí)序仿真圖分析:8位右移寄存器是當(dāng)時(shí)鐘信號(hào)CLK處于上升沿時(shí)當(dāng)LOAD=1時(shí)將8位被乘數(shù)加載進(jìn)去而當(dāng)LOAD=0時(shí)數(shù)據(jù)進(jìn)行移位操作。同時(shí)定義一個(gè)信號(hào)REG8用來(lái)裝載新數(shù)據(jù)及移位后的操作數(shù)在完成這些操作后寄存器的最低位REG8(0)傳送給QB輸出。2.2.3元件AND8B設(shè)計(jì)代碼及仿真結(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時(shí)序仿真圖分析:加法器是由兩個(gè)4位二進(jìn)制加法器U1和U2組成的8位加法器邏輯電路其中U1用來(lái)裝載8位加法器中兩個(gè)加數(shù)的低四位而U2則用來(lái)裝載高4位。2.2.4元件ADDER8BT設(shè)計(jì)代碼及仿真結(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時(shí)序仿真圖分析:8位加法器的設(shè)計(jì)是由兩個(gè)4位加法器U1,U2所形成的在下面程序中定義一個(gè)信號(hào)量CARRY_OUT將4位加法器U1的COUT賦給CARRY_OUT ,再將CARRY_OUT的值賦給4位加法器U2的進(jìn)位CIN,8位加法器的高四位低四位分別來(lái)自于4位加法器U2和U1。2.2.5總模塊設(shè)計(jì)代碼及仿真結(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 總模塊時(shí)序仿真圖第三章 總結(jié)本次設(shè)計(jì)是個(gè)綜合性設(shè)計(jì),我們需要熟悉很多知識(shí)才能完成本次設(shè)計(jì)。通過(guò)本次項(xiàng)目的設(shè)計(jì),我對(duì)一個(gè)項(xiàng)目開(kāi)發(fā)的基本流程有了更深層次的了解,也讓我加深對(duì)EDA的了解,我也開(kāi)始喜歡上了EDA。在此次設(shè)計(jì)的過(guò)程中,遇到了很多問(wèn)題,如寫(xiě)端口時(shí)將小括號(hào)寫(xiě)成大括號(hào),有些部分還少了分號(hào)導(dǎo)致了編譯出錯(cuò),最后根據(jù)錯(cuò)誤提示信息找到了錯(cuò)誤并改正,還有仿真的時(shí)候找不到

溫馨提示

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

評(píng)論

0/150

提交評(píng)論