基于FPGA的自主可控SOC設(shè)計(jì) 課件 第四講 乘除法器的設(shè)計(jì)_第1頁
基于FPGA的自主可控SOC設(shè)計(jì) 課件 第四講 乘除法器的設(shè)計(jì)_第2頁
基于FPGA的自主可控SOC設(shè)計(jì) 課件 第四講 乘除法器的設(shè)計(jì)_第3頁
基于FPGA的自主可控SOC設(shè)計(jì) 課件 第四講 乘除法器的設(shè)計(jì)_第4頁
基于FPGA的自主可控SOC設(shè)計(jì) 課件 第四講 乘除法器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第四講乘除法器設(shè)計(jì)常用的機(jī)器編碼格式定點(diǎn)乘法器的原理及實(shí)現(xiàn)原碼一位乘法設(shè)計(jì)補(bǔ)碼一位乘法設(shè)計(jì)陣列乘法器設(shè)計(jì)定點(diǎn)除法器原理及實(shí)現(xiàn)原碼除法器設(shè)計(jì)補(bǔ)碼除法器設(shè)計(jì)陣列除法器設(shè)計(jì)4.1常用機(jī)器數(shù)的編碼格式

原碼表示法反碼表示法補(bǔ)碼表示法4.1常用機(jī)器數(shù)的編碼格式4.1.1原碼表示法原碼表示法是一種最簡單的機(jī)器數(shù)表示法,其最高位為符號位,符號位為0時表示該數(shù)為正,符號位為1時表示該數(shù)為負(fù),數(shù)值部分與真值相同。原碼形式為XS.X1X2…Xn,其中XS表示符號位。純小數(shù)原碼的定義為:

[X]原=純整數(shù)原碼的定義為:

[X]原=

X0≤X<11-X=1+∣X∣-1<X≤0

X,0≤X<2n2n-X=2n+∣X∣,-2n<X≤04.1常用機(jī)器數(shù)的編碼格式原碼的優(yōu)點(diǎn)是直觀易懂,機(jī)器數(shù)和真值間的轉(zhuǎn)換很容易,用原碼實(shí)現(xiàn)乘、除運(yùn)算的規(guī)則簡單。缺點(diǎn)是加、減運(yùn)算規(guī)則較復(fù)雜。4.1常用機(jī)器數(shù)的編碼格式4.1.2反碼表示法反碼是對一個數(shù)的各位求反。正數(shù)的反碼和原碼的形式相同;負(fù)數(shù)的反碼是符號位為1,數(shù)值部分等于其各位的絕對值求反。4.1常用機(jī)器數(shù)的編碼格式4.1.3補(bǔ)碼表示法補(bǔ)碼的符號位表示方法與原碼相同(即正數(shù)為0,負(fù)數(shù)為1),其數(shù)值部分的表示與數(shù)的正負(fù)有關(guān):正數(shù):數(shù)值部分與真值形式相同;負(fù)數(shù):將真值的數(shù)值部分按位取反,且在最低位加1。4.1常用機(jī)器數(shù)的編碼格式補(bǔ)碼形式為XS.X1X2…Xn,其中XS表示符號位。純小數(shù)補(bǔ)碼的定義為:

[X]補(bǔ)=純整數(shù)補(bǔ)碼的定義為:

[X]補(bǔ)=

在補(bǔ)碼表示中,真值0的表示形式是唯一的:

X,0≤X<12+X=2-∣X∣,-1<X≤0X,0≤X<2n2n+1+X=2n+1-∣X∣,-2n<X≤0[+0]補(bǔ)=[-0]補(bǔ)=000004.2定點(diǎn)乘法器的原理及實(shí)現(xiàn)乘法運(yùn)算是計(jì)算機(jī)中一種重要的基本運(yùn)算,實(shí)現(xiàn)方法包括以下幾種。(1)用軟件實(shí)現(xiàn)乘法運(yùn)算。(2)在加法器基礎(chǔ)上增加一些硬件實(shí)現(xiàn)乘法運(yùn)算。(3)設(shè)置專用硬件乘法器實(shí)現(xiàn)乘法運(yùn)算。使用該方法會使計(jì)算機(jī)結(jié)構(gòu)復(fù)雜,成本增加,但能使運(yùn)算速度大大提高。4.2定點(diǎn)乘法器的原理及實(shí)現(xiàn)乘法運(yùn)算是計(jì)算機(jī)中一種重要的基本運(yùn)算,實(shí)現(xiàn)方法包括以下幾種。(1)用軟件實(shí)現(xiàn)乘法運(yùn)算。(2)在加法器基礎(chǔ)上增加一些硬件實(shí)現(xiàn)乘法運(yùn)算。(3)設(shè)置專用硬件乘法器實(shí)現(xiàn)乘法運(yùn)算。使用該方法會使計(jì)算機(jī)結(jié)構(gòu)復(fù)雜,成本增加,但能使運(yùn)算速度大大提高。4.2定點(diǎn)乘法器的原理及實(shí)現(xiàn)原碼一位乘法設(shè)計(jì)原碼二位乘法設(shè)計(jì)補(bǔ)碼一位乘法設(shè)計(jì)陣列乘法器設(shè)計(jì)設(shè)計(jì)方法模塊功能與原理分析模塊結(jié)構(gòu)與電路模型VHDL語言設(shè)計(jì)實(shí)現(xiàn)FPGA驗(yàn)證4.2.1原碼一位乘法原理及實(shí)現(xiàn)原碼一位乘法的法則是:①乘積的符號為被乘數(shù)的符號位與乘數(shù)的符號位相異或;②乘積的絕對值為被乘數(shù)的絕對值與乘數(shù)的絕對值之積。即

[X]原×[Y]原=(X0⊕Y0)(|X|×|Y|)

4.2.1原碼一位乘法原理及實(shí)現(xiàn)手工乘法運(yùn)算例:若[X]原=0.1101,[Y]原=1.1011,求兩者之積。解:乘積的符號為0⊕1=1手算過程如下:

1101

×1011110111010000

1101.100011114.2.1原碼一位乘法原理及實(shí)現(xiàn)A,B,C,D都是寄存器二選一選擇器一位全加器移位寄存器計(jì)數(shù)器4.2.1原碼一位乘法原理及實(shí)現(xiàn)原碼一位乘法器框圖原碼一位乘法器功能模塊(1)控制器設(shè)計(jì)控制器功能:控制移位寄存器和16位寄存器。端口定義:

PORT(CLK,START:INSTD_LOGIC;CLKOUT,RSTALL,DONE:OUTSTD_LOGIC);(1)控制器設(shè)計(jì)輸入端口CLK:乘法時鐘信號START:乘法器啟動信號。信號的上跳沿及其高電平有兩個功能,即16位寄存器清零和被乘數(shù)A[7..0]向移位寄存器加載;低電平則作為乘法使能信號。輸出端口CLKOUT:時鐘控制端RSTALL:清零端口DONE:乘法完成標(biāo)志位(1)控制器設(shè)計(jì)計(jì)數(shù)器端口輸出控制信號(2)16位鎖存器設(shè)計(jì)16位鎖存器功能:存儲部分積及部分積移位端口定義

PORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(8DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(15DOWNTO0));(2)16位鎖存器設(shè)計(jì)移位及鎖存功能(3)移位寄存器移位寄存器功能是右移一位操作。端口定義

PORT( CLK:INSTD_LOGIC; LOAD:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);QB:OUTSTD_LOGIC);(3)移位寄存器設(shè)計(jì)移位功能(4)1位乘法器設(shè)計(jì)1位乘法器功能:當(dāng)前數(shù)據(jù)位與另外一個操作數(shù)進(jìn)行與運(yùn)算。1位乘法運(yùn)算(5)加法器設(shè)計(jì)8位并行加法器設(shè)計(jì)(6)仿真結(jié)果1.原碼一位乘法器采用硬件方式實(shí)現(xiàn),需要用到以下哪些功能模塊控制器加法器一位乘法器移位寄存器ABCD提交16位鎖存器E多選題1分此題未設(shè)置答案,請點(diǎn)擊右側(cè)設(shè)置按鈕4.2.2原碼二位乘法器設(shè)計(jì)原碼二位乘法

Yi+1YiC操作

000001010011100101110111

+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0

-|X|,右移2次,C=1

-|X|,右移2次,C=1+0,右移2次,C=1原碼二位乘法的法則表4.2.2原碼二位乘法器設(shè)計(jì)例:設(shè)X=+0.100111,

Y=-0.100111,利用原碼求積。

4.2.2原碼二位乘法器設(shè)計(jì)

Yi+1YiC操作

000001010011100101110111

+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0

-|X|,右移2次,C=1

-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=Yi=C4.2.2原碼二位乘法器設(shè)計(jì)

Yi+1YiC操作

000001010011100101110111

+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0

-|X|,右移2次,C=1

-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=0&&Yi⊕C=14.2.2原碼二位乘法器設(shè)計(jì)

Yi+1YiC操作

000001010011100101110111

+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0

-|X|,右移2次,C=1

-|X|,右移2次,C=1+0,右移2次,C=1Yi+1⊕Yi=1&&Yi=C4.2.2原碼二位乘法器設(shè)計(jì)

Yi+1YiC操作

000001010011100101110111

+0,右移2次,C=0+|X|,右移2次,C=0+|X|,右移2次,C=0+2|X|,右移2次,C=0+2|X|,右移2次,C=0

-|X|,右移2次,C=1

-|X|,右移2次,C=1+0,右移2次,C=1Yi+1=1&&Yi⊕C=14.2.2原碼二位乘法器設(shè)計(jì)2.原碼二位乘法器設(shè)計(jì)中,-|X|操作需要滿足條件Yi+1=Yi=CYi+1=0&&Yi⊕C=1Yi+1⊕Yi=1&&Yi=CYi+1=1&&Yi⊕C=1ABCD提交單選題1分此題未設(shè)置答案,請點(diǎn)擊右側(cè)設(shè)置按鈕4.2.3補(bǔ)碼一位乘法運(yùn)算布斯(Booth)法

假定被乘數(shù)X和乘數(shù)Y均為用補(bǔ)碼表示的純小數(shù),其中X0、Y0是它們的符號位:[X]補(bǔ)=X0.X-1X-2…X-(n-1)

[Y]補(bǔ)=Y(jié)0.Y-1Y-2…Y-(n-1)布斯法補(bǔ)碼一位乘法的算法公式為:[X·Y]補(bǔ)=[X]補(bǔ)[(Y-1-Y0)20+(Y-2-Y-1)2-1+(Y-3-Y-2)2-2+……+(Y-(n-1)-Y-(n-2))2-(n-2)+(0-Y-(n-1))2-(n-1)]4.2.3布斯補(bǔ)碼一位乘法運(yùn)算

YiYi-1

Yi-1-Yi操作

00

0+0,右移一次

01

1+[X]補(bǔ),右移一次

10-1+[-X]補(bǔ),右移一次

11

0+0,右移一次乘數(shù)的相鄰兩位的操作規(guī)律

4.2.3布斯補(bǔ)碼一位乘法運(yùn)算例:已知X=0.1010,Y=-0.1101。利用布斯法補(bǔ)碼一位乘法求積。解:首先將兩數(shù)用補(bǔ)碼表示:[X]補(bǔ)=00.1010,[Y]補(bǔ)=11.0011,而[-X]補(bǔ)=11.0110。4.2.3布斯補(bǔ)碼一位乘法運(yùn)算4.2.3布斯補(bǔ)碼一位乘法運(yùn)算A,B,C,D都是寄存器四選一選擇器加法器移位寄存器計(jì)數(shù)器符號位參與運(yùn)算4.2.3布斯補(bǔ)碼一位乘法運(yùn)算3.布斯補(bǔ)碼一位乘法運(yùn)算的符號位應(yīng)當(dāng)進(jìn)行相與相或參與運(yùn)算異或ABCD提交單選題1分此題未設(shè)置答案,請點(diǎn)擊右側(cè)設(shè)置按鈕4.2.4陣列乘法器設(shè)計(jì)設(shè)X=X3X2X1X0,Y=Y(jié)3Y2Y1Y0,計(jì)算X·Y=?

(1)基本乘加單元二輸入與門一位全加器(2)定點(diǎn)無符號數(shù)陣列乘法器Y0Y0Y2Y3Y1Y2Y1Y3X3X2X1X00000Z6Z7Z5Z4Z2Z3Z0Z1(2)定點(diǎn)無符號數(shù)陣列乘法器TOP_ROWMID_ROWLOW_ROW(3)TOP_ROW功能實(shí)現(xiàn)(4)MID_ROW功能實(shí)現(xiàn)(5)LOW_ROW功能實(shí)現(xiàn)(6)陣列乘法器結(jié)構(gòu)描述實(shí)現(xiàn)4.3定點(diǎn)數(shù)除法運(yùn)算定點(diǎn)數(shù)除法分為原碼除法和補(bǔ)碼除法兩類。除法實(shí)現(xiàn)方法①雙操作數(shù)加法器將除法分為若干次“加減與移位”的循環(huán),由時序控制部分實(shí)現(xiàn);②采用迭代除法,將除法轉(zhuǎn)換為乘法處理,可以利用快速乘法器實(shí)現(xiàn)除法器;③陣列除法器,一次求得商與余數(shù),實(shí)現(xiàn)快速除法的基本途徑。4.3.1原碼除法運(yùn)算原碼除法的法則應(yīng)包括:①除數(shù)≠0;定點(diǎn)純小數(shù)時,|被除數(shù)|<|除數(shù)|;定點(diǎn)純整數(shù)時,|被除數(shù)|>|除數(shù)|。②與原碼乘法類似的是原碼除法商的符號和商的值也是分別處理的,商的符號等于被除數(shù)的符號與除數(shù)的符號相異或。③商的值等于被除數(shù)的絕對值除以除數(shù)的絕對值。④將商的符號與商的值拼接在一起就得到原碼除法的商。4.3.2定點(diǎn)除法器的原理及實(shí)現(xiàn)恢復(fù)余數(shù)法:先減后判,如果減后發(fā)現(xiàn)不夠減,則上商0,并加上除數(shù),即恢復(fù)到減操作之前的余數(shù)(第一步的余數(shù)即被除數(shù))。其缺點(diǎn)是即增加了一些不必要的操作,又使操作步數(shù)隨著不夠減情況發(fā)生的次數(shù)而變。4.3.2定點(diǎn)除法器的原理及實(shí)現(xiàn)不恢復(fù)余數(shù)除法(加減交替除法)先減后判,如果發(fā)現(xiàn)不夠減,則上商0,并將下一步的減除數(shù)操作改為加除數(shù)操作。這樣可使操作步數(shù)固定,只與所需商的位數(shù)有關(guān),而與是否夠減無關(guān),因此能減少運(yùn)算時間。4.3.3原碼加減交替除法器原碼加減交替除法器的運(yùn)算法則:1.除法運(yùn)算前,應(yīng)滿足條件:X*<Y*,且Y*≠0,否則,按溢出或非法除數(shù)處理;2.符號位不參與運(yùn)算,單獨(dú)處理:qf=xf

yf;3.部分余數(shù)采用單符號位或雙符號位;4.每步部分余數(shù)運(yùn)算規(guī)則:

①若余數(shù)R≥0,則商上1,左移一次,減除數(shù);②若余數(shù)R<0,則商上0,左移一次,加除數(shù)。4.3.3原碼加減交替除法器例:若X=-0.10001011,Y=0.1110試?yán)迷a加減交替除法器求商及余數(shù)。解:寫出[X]原=1.10001011,[Y]原=0.1110。商符=1⊕0=1;4.3.3原碼加減交替除法器左移4.3.4補(bǔ)碼除法運(yùn)算①符號判斷。被除數(shù)和除數(shù)同號,被除數(shù)減除數(shù);若異號則加除數(shù)。②余數(shù)與除數(shù)同號,上商為1,余數(shù)左移1位,下次用余數(shù)減除數(shù)操作求商。若異號,上商為0,余數(shù)左移1位,下次用余數(shù)加除數(shù)操作求商。③重復(fù)②直至除盡或達(dá)到精度要求。④商修正。在除不盡時,最低位恒置1修正。4.3.4補(bǔ)碼除法運(yùn)算YNNY4.3.4補(bǔ)碼除法運(yùn)算例:若X=-0.10001011,Y=0.1110試?yán)醚a(bǔ)碼除法求商及余數(shù)。解:寫出[X]補(bǔ)=1.01110101,[Y]補(bǔ)=0.1110。[-Y]補(bǔ)=1.0010

〔商〕補(bǔ)﹦1.0111;余數(shù)為:〔余數(shù)〕補(bǔ)﹦1.0011×2-44.3.4補(bǔ)碼除法運(yùn)算補(bǔ)碼除法器框圖

4.3.4補(bǔ)碼除法設(shè)計(jì)端口定義port( oper_a,oper_b: instd_logic_vector(7downto0);--被除數(shù),除數(shù),最高位為符號位

done:outstd_logic;--完成除法操作標(biāo)志

clk,rst:instd_logic;--時鐘信號/復(fù)位信號 Q,R: outstd_logic_vector(7downto0)--商Q最高位為符號位,余數(shù)R );4.3.4補(bǔ)碼除法設(shè)計(jì)復(fù)位賦初值判斷余數(shù)與除數(shù)符號是否相同運(yùn)算結(jié)束4.3.5陣列除法器00y1

x1y2

x2y3

溫馨提示

  • 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

提交評論