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

下載本文檔

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

文檔簡介

1、EDA技術(shù)課程大作業(yè)設(shè)計題目:移位相加 8位硬件乘法器電路設(shè)計院 系:電子信息與電氣工程學(xué)院學(xué)生姓名:學(xué) 號:專業(yè)班級:200902070008電子信息專升本2010年 12月 03日移位相加8位硬件乘法器電路設(shè)計1.設(shè)計背景和設(shè)計方案1.1設(shè)計背景硬件乘法器,其基礎(chǔ)就是加法器結(jié)構(gòu),它已經(jīng)是現(xiàn)代計算機中必不可少的一 部分。乘法器的模型就是基于“移位和相加”的算法。乘法器應(yīng)用很廣泛,其在 數(shù)字信號處理中經(jīng)常用到,如用在FFT,數(shù)字上下變頻、數(shù)字濾波、優(yōu)化卷積、相關(guān)以及矩陣運算等算法中。隨著科技的發(fā)展,我們對乘法器的技術(shù)要求越來越高, 隨著乘數(shù)和被乘數(shù)位數(shù)的增加,乘法器電路中的加法器位數(shù)也要相應(yīng)的

2、增加,我 們可以在乘法器中開發(fā)出更快的加法陣列。硬件乘法器的快速發(fā)展已是現(xiàn)在社會 需要的必然。1.2設(shè)計方案1 內(nèi)容:由8位加法器構(gòu)成的以時序邏輯方式設(shè)計的 8位乘法器乘法通過逐向移位加 原理來實現(xiàn),從被乘數(shù)的最低位開始,若為 1,則乘數(shù)左移與上一次和相加;若為 0左 移后以全零相加,直至被乘數(shù)的最高位2設(shè)計思路:純組合邏輯構(gòu)成的乘法器雖然工作速度比較快,但過于占用硬件資源, 難以實現(xiàn)寬位乘法器,基于PLD器件外接ROM九九表的乘法器則無法構(gòu)成單片系統(tǒng),也 不實用。這里紹由八位加法器構(gòu)成的以時序邏輯方式設(shè)計的八位乘法器,具有一定的實 用價值,而且由FPGA構(gòu)成實驗系統(tǒng)后,可以很容易的用 ASI

3、C大型集成芯片來完成,性 價比高,可操作性強。其乘法原理是:乘法通過逐項移位相加原理來實現(xiàn),從被乘數(shù)的 最低位開始,若為1,則乘數(shù)左移后與上一次的和相加;若為 0,左移后以全零相加, 直至被乘數(shù)的最高位。3 設(shè)計總體框圖控制器|16位鎖存器頤希存器乘法圈框圖的說明1控制器是一個乘法器的控制模塊,用來接受實驗系統(tǒng)上的連續(xù)脈沖。2鎖存器起鎖存的作用,它可以鎖存 8位乘數(shù)。3移位寄存器起移位的作用,便于被乘數(shù)可以逐位移出。4乘法器功能類似一個特殊的與非門。5加法器用于8位乘數(shù)和高8位相加。2.方案實施2.1 SREG8B夠位寄存器)的模塊1.SREG8模塊的功能:SREG8是一個移位寄存器。有三個輸

4、入端 CLK,LOAD,DIN7.0); 當(dāng)被乘數(shù)被加載于8位右移寄存器后,隨著每一時鐘節(jié)拍,最低位在前,由低位至高位 逐位移出。有一個輸出端(QB。2. VHDL程序代碼如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SREG8B ISPORT(CLK ,L OAD: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

5、 DOWNTO 0);BEGINPROCESS(CLK, LOAD)BEGINIF CLK'EVENT AND CLK='1'THENIF LOAD='1'THEN REG8<=DIN;ELSE REG8(6 DOWNTO 0)<=REG8(7 DOWNTO 1);END IF;END IF;END PROCESS;QBv=REG8(0);END behav;2.2 ADDER8B( 8位加法器)模塊1.ADDER8B模塊的功能:ADDER8B是 一個 8 位加法器。有三個輸入端(CIN,A7.0,B7.0),其中 A7.0是被乘數(shù).B7.0

6、 是乘數(shù)。ADDER8起至U使兩個數(shù)相加的作用;即在加法的基礎(chǔ)上才能相乘。所以8位加法器是一個必不可少的模塊。ADDER8BCINS7.0i A7.0COUTi B7.0insl2. VHDL程序代碼如下LIBRARY IEEE;USE IEEE . STD_LOGIC_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

7、STD_LOGIC);END ADDER8B;ARCHITECTURE BEHAV OF ADDER8B ISSIGNAL SINT , AA, BB:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINAA<='0'&A; BB<='0'&B; SINT<=AA+BB+CIN;S<=SINT(7 DOWNTO 0);COUT<=SINT(8);2.3 ARICTL (控制器)模塊1. ARICTL模塊的功能:ARICTL是一個乘法器的控制模塊。為了接受實驗系統(tǒng)上的連續(xù) 脈沖。有兩個輸入端(CLK,S

8、TART ;其中START言號的上跳沿及其高電平有兩個功能, 即16位寄存器清零和被乘數(shù) A7.O向移位寄存器SREG8加載;它的低電平則作為乘 法使能信號。CLK為乘法時鐘信號。有三個輸出(CLKOUT,RSTALL,ARIEND2. 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;ARCHITE

9、CTURE BEHAV OF ARICTL ISSIGNAL CNT4B:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINRSTALL<=START;PROCESS(CLK,START)BEGINIF START ='1'THEN CNT4B<="0000"ELSIF CLK'EVENT AND CLK='1'THENIF CNT4B<8 THEN CNT4B<=CNT4B+1;END IF;END IF;END PROCESS;PROCESS(CLK,CNT4B,START)BEGINIF

10、 START='0'THEN7IF CNT4B<8 THEN CLKOUT<= CLK;ARIEND<='O'ELSE CLKOUT<='0'ARIEND<='1'END IF;ELSE CLKOUT<=CLK;ARIEND<='0'END IF;END PROCESS;END BEHAV;2.4 ANDARITH(乘法器)模塊1.ANDARITH模塊的功能:ANDARIT是一個 1位乘法器。有兩個輸入端(ABIN,DIN7.0).有一個輸出端.DOUT7.0 。ANDAR

11、IT起乘法的作用。它類似于一個特殊的與門。即當(dāng)ABIN為 1 時,DOUTft接輸出 DIN,而當(dāng) ABIN為 0 時,DOUT俞出“00000000”ANDARITH卜ABIN DIN7.0DOUT7.0inst2. VHDL程序代碼如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ANDARITH ISPORT(ABIN:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ANDARITH;ARCHITECTUR

12、E BEHAV OF ANDARITH ISBEGINPROCESS(ABIN,DIN)BEGINFOR I IN 0 TO 7 LOOPDOUT(I)<=DIN(I)AND ABIN;END LOOP;END BEHAV;2.5 REG16B(鎖存器)模塊1.REG16B模塊的功能:REG16B是一個16位鎖存器。有三個輸入端(CLK,CLR,D8.O); 其中CLK為時鐘信號。有一個輸出端(Q15.0 )。16位鎖存器主要為了鎖存一些數(shù), 便于以后程序應(yīng)用。REG16BCLKQ15.0CLRD8.0inst2. VHDL程序代碼如下LIBRARY IEEE;USE IEEE.STD_

13、LOGIC_1164.ALL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG16B ISPORT(CLK,CLR:IN STD_LOGIC;D:IN STD_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

14、 R16S<="0000000000000000"ELSIF CLK'EVENT AND CLK='1'THENR16S(6 DOWNTO 0)<=R16S(7 DOWNTO 1);R16S(15 DOWNTO 7)<=D;END IF;END PROCESS;9Qv=R16S;END BEHAV;3.結(jié)果和結(jié)論1.總體設(shè)計電路圖i'itART'"CLKCUKOUTSTARTR STALLARIENDfARiCTL-inn;述祁Utty. ARIENDnst!REGf8Bi:w,虬: =Sep, X;1XC

15、INS? DJ尊】COUT&7-(M:ADDERaB 'SREG8BCILKLOADDllN7】QB:inst4CLK Q15.DCLR:SZ|15:.Q1 :irwtSflfilND0LiT|7.Dl0lN7. 0|instil:疑(也:創(chuàng):X<aiii in a. iOUTPUTS715.O說明原理圖:本乘法器由五個模塊組成,其中 ARICTL是乘法運算控制電路,它的 START信號上的上 跳沿與高電平有2個功能,即16位寄存器清零和被乘數(shù)A7.O向移位寄存器SREG8B 加載;它的低電平則作為乘法使能信號,乘法時鐘信號從ARICTL的CLK輸入。當(dāng)被乘數(shù)被加載于8位

16、右移寄存器SREG8后,隨著每一時鐘節(jié)拍,最低位在前,由低位至咼 位逐位移出。當(dāng)為1時,一位乘法器ANDARIT打開,8位乘數(shù)B7.0在同一節(jié)拍進(jìn)入 8位加法器,與上一次鎖存在16位鎖存器REG16中的高8位進(jìn)行相加,其和在下一時 鐘節(jié)拍的上升沿被鎖進(jìn)此鎖存器。而當(dāng)被乘數(shù)的移出位為0時,一位乘法器全零輸出。如此往復(fù),直至8個時鐘脈沖后,由ARICTL的控制,乘法運算過程自動中止, ARIEND 輸出高電平,乘法結(jié)束。此時 REG16B勺輸出即為最后的乘積。2.時序仿真結(jié)果(以下是8位乘法器頂層設(shè)計的仿真波形圖)從上面的波形圖看出,當(dāng)9FH和FDHH相乘時,第一個時鐘上升沿后,其移位相加的結(jié)果(

17、在REG16端口)是4F80H,第8個上升沿后,最終相乘結(jié)果是 9D23H3. 心得體會通過電子設(shè)計的數(shù)字部分 EDA設(shè)計,我們掌握了系統(tǒng)的數(shù)字電子設(shè)計的方法,也知 道了實驗調(diào)試適配的具體操作方法。在設(shè)計過程中,我們遇到了各種問題,在老師的指 導(dǎo)下和我們自己的努力,克服了各種問題,最后得到了成功。但是我也發(fā)現(xiàn)了一些問題, 我們無法解決。如:在 ARICTL控制器模塊中有一個警告,還有在適配后得到頻率高的 執(zhí)行速度還要慢一些等等??傊@次設(shè)計使我掌握了很多有用的經(jīng)驗也學(xué)到了很多在 書本上學(xué)不到知識,為以后的學(xué)習(xí)和工作打下堅實的基礎(chǔ)通過這次設(shè)計,進(jìn)一步加深了對 EDA的了解,讓我對它有了更加濃厚的興趣。特別 是當(dāng)每一個子模塊編寫調(diào)試成功時,心里特別的開心。但是在編寫頂層文件的程序時, 遇到了不少問題,特別是各元件之間的連接,以及信號的定義,總是有錯誤,在

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論