




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、8位硬件乘法器EDA技術(shù)及應用大作業(yè) 電子信息學院10級通信工程01班 41003030106目錄1. 總體設(shè)計說明-3 1.1設(shè)計原理-3 1.2設(shè)計方案-31.3設(shè)計優(yōu)點-32. 各模塊設(shè)計實現(xiàn)-4 2.1 ADDER8B模塊設(shè)計-4 2.2 ANDARITH模塊設(shè)計-5 2.3 ARICTL模塊設(shè)計-62.4 REG16B模塊設(shè)計-72.5 SREG8B模塊設(shè)計-83.總體仿真結(jié)果及分析-104.心得-105.附錄-106.參考文獻-128位硬件乘法器1總體設(shè)計說明1.1設(shè)計原理8位硬件乘法器是由8位加法器構(gòu)成并以時序邏輯方式設(shè)計的,該乘法器具有一定的實用價值。其乘法原理是:乘法通過逐項
2、移位相加原理來實現(xiàn),從被乘數(shù)的最低位開始,若為1,則乘數(shù)左移后與上一次和相加;若為0,則左移后以全零相加,直至被乘數(shù)的最高位。1.2設(shè)計方案8位硬件乘法器電路原理圖如下。ARICTL是乘法運算控制電路,其START信號上跳沿與高電平有兩個功能,即16位寄存器清零和被乘數(shù)A7.0向移位寄存器SREG8B加載;它的低電平則作為乘法使能信號。乘法時鐘信號從ARICTL的CLK輸入。當被乘數(shù)加載于8位右移寄存器SREG8B后,隨著每一時鐘節(jié)拍,最低位在前,由低位至高位逐位移出。當為1時,與門ANDARITH打開,8位乘數(shù)B7.0在同一節(jié)拍進入8位加法器,與上一次鎖存在16位鎖存器REG16B中的高8位
3、進行相加,其和在下一時鐘節(jié)拍的上升沿被鎖存進此鎖存器。而當被乘數(shù)移出位為0時,與門全零輸出。如此往復,直至八個時鐘脈沖后,由ARICTL控制,乘法運算過程自動終止,ARIEND輸出高電平,以此可點亮一發(fā)光管,以示懲罰結(jié)束。此時,REG16B的輸出值即為最后乘積。8位硬件乘法器電路原理圖1.3設(shè)計優(yōu)點此乘法器優(yōu)點是節(jié)省芯片資源,其核心元件只是一個8位加法器,其運算速度取決于輸入的時鐘頻率,因此,可以用此乘法器或相同原理構(gòu)成的更高位乘法器完成一些數(shù)字信號處理方面的運算。2.各模塊設(shè)計實現(xiàn)2.1 ADDER8B模塊設(shè)計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是一個8位加法器。有三個輸入端(CIN,A7.0,B7.0),其中A7.0是被乘數(shù).B7.0是乘數(shù)。ADDER8B起到使兩個數(shù)相加的作用;即在加法的基礎(chǔ)上才能相乘。2.2 ANDARITH模塊設(shè)計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位運算 DOUT(I)<=DIN(I)AND ABIN;END LOOP;END PROCESS;END behav;模塊圖:仿真波形圖: 模塊功能:ANDARITH是一個1位乘法器。有兩個輸入端(ABIN
7、,DIN7.0).有一個輸出端DOUT7.0。ANDARITH起乘法的作用。它類似于一個特殊的與門。即當ABIN為1時,DOUT直接輸出DIN,而當ABIN為0時,DOUT輸出“0”。2.3 ARICTL模塊設(shè)計VHDL程序:LIBRARY IEEE; -運算控制模塊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是一個乘法器的控制模塊。為了接受實驗系統(tǒng)上的連續(xù)脈沖
10、。有兩個輸入端(CLK,START);其中START信號的上跳沿及其高電平有兩個功能,即16位寄存器清零和被乘數(shù)A7.0向移位寄存器SREG8B加載;它的低電平則作為乘法使能信號。CLK為乘法時鐘信號。有三個輸出(CLKOUT,RSTALL,ARIEND)2.4 REG16B模塊設(shè)計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" ;-時鐘到來時,鎖存輸入值,并右移低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是一個16位鎖存器。有三個輸入端(CLK,CLR,D8.0);其中CLK為時鐘信號。有一個輸出端(Q15.0)。16位鎖存器主要為了鎖存一些數(shù),便于以后程序應用。2.5 SREG8B模塊設(shè)計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是一個移位寄存器。有三個輸入端(CLK,LOAD,DIN7.0);當被乘數(shù)被加載于8位右移寄存器后,隨著每一時鐘節(jié)拍,最低位在前,由低位至高位逐位移出。有一個輸出端(QB)。3.總體仿真結(jié)果及分析結(jié)果分析:從上面的波形圖看出,當7EH和EFH相乘時,第一個時鐘上升沿后,其移位相加的結(jié)果(在REG16B端口)是3F00H,第8個上升沿后,得到最終相乘結(jié)果7
15、5A2。4.實驗心得通過本次大作業(yè),我基本掌握了Quartus 軟件的應用,能夠用其建立工程、編譯仿真、驗證結(jié)果,也熟悉了VHDL語言的構(gòu)成。在完成大作業(yè)的過程中,基本熟悉和掌握了8位硬件乘法器的原理,對各個模塊的功能也有了一定的認識。在實驗中,使我知道了實踐的重要性。對于EDA這種偏于實踐的課程,多做實驗、多動手編程要比單純看課本重要得多。另外,本次作業(yè)的順利完成得益于張老師平時的嚴格要求與督促,您的嚴謹治學使我受益匪淺。5.附錄實驗主程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;Use ieee.std_logic_unsigned.all;E
16、NTITY MULTI8X8 IS -8位乘法器頂層設(shè)計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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 草原割草過程中的生態(tài)環(huán)境保護考核試卷
- 陶瓷潔具產(chǎn)品生命周期管理考核試卷
- 闌尾炎術(shù)后感染臨床管理要點
- 幼兒進餐環(huán)節(jié)衛(wèi)生保健規(guī)范
- 月如意深呼吸
- 疫情期間普外科診療管理策略
- Influenza-virus-IN-9-生命科學試劑-MCE
- 超神數(shù)學-高考數(shù)學總復習基礎(chǔ)篇(一輪)(練習冊)專題03不等式(含答案或解析)
- 內(nèi)部資料性出版物管理辦法
- 海豐縣鷺影禾香鄉(xiāng)村振興示范帶建設(shè)項目可行性研究報告
- 綠電制綠氫及其綜合利用技術(shù)PPT
- 各類安全事故案例圖片合集
- 婚姻家庭咨詢師考試復習提綱
- 急性有機磷中毒臨床治療指南
- 上海市學生健康促進工程實施方案
- 實驗室CNAS評審常見問題精編要點
- 動火安全作業(yè)票填寫模板2022年更新
- 2011年7月20日深圳中心商業(yè)物業(yè)應急守則和突發(fā)事件的管理
- WNS鍋爐產(chǎn)品制造工藝檢驗流程卡
- 天津市成人高等教育畢業(yè)生登記表
- 通信管道施工三級-安全技術(shù)交底記錄表
評論
0/150
提交評論