EDA大作業(yè)最終版_第1頁
EDA大作業(yè)最終版_第2頁
EDA大作業(yè)最終版_第3頁
EDA大作業(yè)最終版_第4頁
EDA大作業(yè)最終版_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、8位硬件乘法器EDA技術(shù)及應(yīng)用大作業(yè) 電子信息學(xué)院10級(jí)通信工程01班 41003030106目錄1. 總體設(shè)計(jì)說明-3 1.1設(shè)計(jì)原理-3 1.2設(shè)計(jì)方案-31.3設(shè)計(jì)優(yōu)點(diǎn)-32. 各模塊設(shè)計(jì)實(shí)現(xiàn)-4 2.1 ADDER8B模塊設(shè)計(jì)-4 2.2 ANDARITH模塊設(shè)計(jì)-5 2.3 ARICTL模塊設(shè)計(jì)-62.4 REG16B模塊設(shè)計(jì)-72.5 SREG8B模塊設(shè)計(jì)-83.總體仿真結(jié)果及分析-104.心得-105.附錄-106.參考文獻(xiàn)-128位硬件乘法器1總體設(shè)計(jì)說明1.1設(shè)計(jì)原理8位硬件乘法器是由8位加法器構(gòu)成并以時(shí)序邏輯方式設(shè)計(jì)的,該乘法器具有一定的實(shí)用價(jià)值。其乘法原理是:乘法通過逐項(xiàng)

2、移位相加原理來實(shí)現(xiàn),從被乘數(shù)的最低位開始,若為1,則乘數(shù)左移后與上一次和相加;若為0,則左移后以全零相加,直至被乘數(shù)的最高位。1.2設(shè)計(jì)方案8位硬件乘法器電路原理圖如下。ARICTL是乘法運(yùn)算控制電路,其START信號(hào)上跳沿與高電平有兩個(gè)功能,即16位寄存器清零和被乘數(shù)A7.0向移位寄存器SREG8B加載;它的低電平則作為乘法使能信號(hào)。乘法時(shí)鐘信號(hào)從ARICTL的CLK輸入。當(dāng)被乘數(shù)加載于8位右移寄存器SREG8B后,隨著每一時(shí)鐘節(jié)拍,最低位在前,由低位至高位逐位移出。當(dāng)為1時(shí),與門ANDARITH打開,8位乘數(shù)B7.0在同一節(jié)拍進(jìn)入8位加法器,與上一次鎖存在16位鎖存器REG16B中的高8位

3、進(jìn)行相加,其和在下一時(shí)鐘節(jié)拍的上升沿被鎖存進(jìn)此鎖存器。而當(dāng)被乘數(shù)移出位為0時(shí),與門全零輸出。如此往復(fù),直至八個(gè)時(shí)鐘脈沖后,由ARICTL控制,乘法運(yùn)算過程自動(dòng)終止,ARIEND輸出高電平,以此可點(diǎn)亮一發(fā)光管,以示懲罰結(jié)束。此時(shí),REG16B的輸出值即為最后乘積。8位硬件乘法器電路原理圖1.3設(shè)計(jì)優(yōu)點(diǎn)此乘法器優(yōu)點(diǎn)是節(jié)省芯片資源,其核心元件只是一個(gè)8位加法器,其運(yùn)算速度取決于輸入的時(shí)鐘頻率,因此,可以用此乘法器或相同原理構(gòu)成的更高位乘法器完成一些數(shù)字信號(hào)處理方面的運(yùn)算。2.各模塊設(shè)計(jì)實(shí)現(xiàn)2.1 ADDER8B模塊設(shè)計(jì)VHDL程序:LIBRARY IEEE; -8位加法器USE IEEE.STD_L

4、OGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER8B 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 ADDER8B;ARCHITECTURE behav OF ADDER8B IS SIGNAL SINT,AA,BB:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINAA<='0'&A

5、; BB<='0'&B; SINT<=AA+BB+CIN;S<=SINT(7 DOWNTO 0);COUT<=SINT(8);END behav;模塊圖:仿真波形圖:模塊功能:ADDER8B是一個(gè)8位加法器。有三個(gè)輸入端(CIN,A7.0,B7.0),其中A7.0是被乘數(shù).B7.0是乘數(shù)。ADDER8B起到使兩個(gè)數(shù)相加的作用;即在加法的基礎(chǔ)上才能相乘。2.2 ANDARITH模塊設(shè)計(jì)VHDL程序:LIBRARY IEEE; -1位乘法器USE IEEE.STD_LOGIC_1164.ALL;ENTITY ANDARITH ISPORT (ABIN

6、:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ANDARITH;ARCHITECTURE behav OF ANDARITH ISBEGINPROCESS(ABIN,DIN)BEGINFOR I IN 0 TO 7 LOOP -循環(huán),完成8位與1位運(yùn)算 DOUT(I)<=DIN(I)AND ABIN;END LOOP;END PROCESS;END behav;模塊圖:仿真波形圖: 模塊功能:ANDARITH是一個(gè)1位乘法器。有兩個(gè)輸入端(ABIN

7、,DIN7.0).有一個(gè)輸出端DOUT7.0。ANDARITH起乘法的作用。它類似于一個(gè)特殊的與門。即當(dāng)ABIN為1時(shí),DOUT直接輸出DIN,而當(dāng)ABIN為0時(shí),DOUT輸出“0”。2.3 ARICTL模塊設(shè)計(jì)VHDL程序:LIBRARY IEEE; -運(yùn)算控制模塊USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ARICTL ISPORT (CLK,START : IN STD_LOGIC; CLKOUT,RSTALL,ARIEND : OUT STD_LOGIC);END ARICTL;ARCHITECT

8、URE behave OF ARICTL ISSIGNAL CNT4B : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN RSTALL <= START;PROCESS(CLK,START)BEGIN IF START = '1' THEN CNT4B <= "0000" ELSIF CLK'EVENT AND CLK = '1' THEN IF CNT4B < 8 THEN CNT4B <= CNT4B + 1; END IF; END IF;END PROCESS;PROCESS(C

9、LK, CNT4B, START)BEGIN IF START = '0' THEN IF CNT4B < 8 THEN CLKOUT <=CLK; ARIEND <= '0' ELSE CLKOUT <= '0'ARIEND <= '1'END IF; ELSE CLKOUT <= CLK; ARIEND <= '0' END IF;END PROCESS;END behave;模塊圖:仿真波形圖:模塊功能:ARICTL是一個(gè)乘法器的控制模塊。為了接受實(shí)驗(yàn)系統(tǒng)上的連續(xù)脈沖

10、。有兩個(gè)輸入端(CLK,START);其中START信號(hào)的上跳沿及其高電平有兩個(gè)功能,即16位寄存器清零和被乘數(shù)A7.0向移位寄存器SREG8B加載;它的低電平則作為乘法使能信號(hào)。CLK為乘法時(shí)鐘信號(hào)。有三個(gè)輸出(CLKOUT,RSTALL,ARIEND)2.4 REG16B模塊設(shè)計(jì)VHDL程序:LIBRARY IEEE; -16位鎖存器/右移寄存器USE IEEE.STD_LOGIC_1164.ALL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG16B ISPORT (CLK, CLR : IN STD_LOGIC; D : IN S

11、TD_LOGIC_VECTOR(8 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END REG16B;ARCHITECTURE behav OF REG16B ISSIGNAL R16S : STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINPROCESS(CLK,CLR)BEGINIF CLR='1' THEN R16S<="0000000000000000" ;-時(shí)鐘到來時(shí),鎖存輸入值,并右移低8位ELSIF CLK'EVENT AND CLK='1'

12、 THEN R16S(6 DOWNTO 0)<=R16S(7 DOWNTO 1); -右移低8位 R16S(15 DOWNTO 7)<= D; -將輸入鎖存到高8位 END IF;END PROCESS;Q <= R16S;END behav;模塊圖:仿真波形圖:模塊功能:REG16B是一個(gè)16位鎖存器。有三個(gè)輸入端(CLK,CLR,D8.0);其中CLK為時(shí)鐘信號(hào)。有一個(gè)輸出端(Q15.0)。16位鎖存器主要為了鎖存一些數(shù),便于以后程序應(yīng)用。2.5 SREG8B模塊設(shè)計(jì)VHDL程序:LIBRARY IEEE; -8位右移寄存器USE IEEE.STD_LOGIC_1164.

13、ALL;ENTITY SREG8B ISPORT( CLK,LOAD:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB:OUT STD_LOGIC );END SREG8B;ARCHITECTURE behav OF SREG8B ISSIGNAL REG8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS (CLK,LOAD)BEGIN IF CLK'EVENT AND CLK='1'THEN IF LOAD='1'THEN REG8<=DIN; ELSE

14、 REG8(6 DOWNTO 0)<=REG8(7 DOWNTO 1); END IF; END IF;END PROCESS;QB <= REG8(0); -輸出最低位END behav;模塊圖:仿真波形圖:模塊功能:SREG8B是一個(gè)移位寄存器。有三個(gè)輸入端(CLK,LOAD,DIN7.0);當(dāng)被乘數(shù)被加載于8位右移寄存器后,隨著每一時(shí)鐘節(jié)拍,最低位在前,由低位至高位逐位移出。有一個(gè)輸出端(QB)。3.總體仿真結(jié)果及分析結(jié)果分析:從上面的波形圖看出,當(dāng)7EH和EFH相乘時(shí),第一個(gè)時(shí)鐘上升沿后,其移位相加的結(jié)果(在REG16B端口)是3F00H,第8個(gè)上升沿后,得到最終相乘結(jié)果7

15、5A2。4.實(shí)驗(yàn)心得通過本次大作業(yè),我基本掌握了Quartus 軟件的應(yīng)用,能夠用其建立工程、編譯仿真、驗(yàn)證結(jié)果,也熟悉了VHDL語言的構(gòu)成。在完成大作業(yè)的過程中,基本熟悉和掌握了8位硬件乘法器的原理,對各個(gè)模塊的功能也有了一定的認(rèn)識(shí)。在實(shí)驗(yàn)中,使我知道了實(shí)踐的重要性。對于EDA這種偏于實(shí)踐的課程,多做實(shí)驗(yàn)、多動(dòng)手編程要比單純看課本重要得多。另外,本次作業(yè)的順利完成得益于張老師平時(shí)的嚴(yán)格要求與督促,您的嚴(yán)謹(jǐn)治學(xué)使我受益匪淺。5.附錄實(shí)驗(yàn)主程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;Use ieee.std_logic_unsigned.all;E

16、NTITY MULTI8X8 IS -8位乘法器頂層設(shè)計(jì)PORT ( CLKk,hkey, START :IN STD_LOGIC; A, B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); Mmax :out STD_LOGIC_VECTOR(3 DOWNTO 0); ARIEND : OUT STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END MULTI8X8;ARCHITECTURE struc OF MULTI8X8 ISCOMPONENT ARICTL PORT ( CLK : IN STD_LOGIC

17、; START : IN STD_LOGIC; CLKOUT :OUT STD_LOGIC ; RSTALL : OUT STD_LOGIC; ARIEND : OUT STD_LOGIC );END COMPONENT;COMPONENT ANDARITHPORT ( ABIN : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END COMPONENT;COMPONENT ADDER8BPORT (CIN : IN STD_LOGIC; A, B

18、: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COUT : OUT STD_LOGIC );END COMPONENT;COMPONENT SREG8BPORT ( CLK : IN STD_LOGIC; LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB : OUT STD_LOGIC );END COMPONENT;COMPONENT REG16BPORT ( CLK : IN STD_LOGIC; CLR : IN S

19、TD_LOGIC; D : IN STD_LOGIC_VECTOR(8 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) );END COMPONENT;SIGNAL GNDINT, INTCLK,RSTALL,NEWSTART, QB,clk : STD_LOGIC;SIGNAL ANDSD : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL count,maxx : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DTBIN : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGN

20、AL DTBOUT : STD_LOGIC_VECTOR(15 DOWNTO 0);BEGIN DOUT <= DTBOUT; GNDINT <= '0'PROCESS(CLK,START)BEGIN IF START='1' THEN NEWSTART<='1' ELSIF CLK='0'THEN NEWSTART<='0' END IF;END PROCESS;Process(hkey) Begin If(hkey'event and hkey='1')then maxx<=maxx+'1' End if;End process;Mmax<=maxx;Process(clkk)Begin If clkk'event and clkk='1'

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論