原碼一位乘法器的設(shè)計課件_第1頁
原碼一位乘法器的設(shè)計課件_第2頁
原碼一位乘法器的設(shè)計課件_第3頁
原碼一位乘法器的設(shè)計課件_第4頁
原碼一位乘法器的設(shè)計課件_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1章 總體設(shè)計方案1.1 設(shè)計原理原碼一位乘乘法器中用三個寄存器X,Y和BFJ分別存放被乘數(shù),乘數(shù)和部分積。乘法運算開始時, BFJ寄存器被清零,作為初始部分積。被乘數(shù)放在X寄存器中,乘數(shù)放在Y寄存器中。實現(xiàn)部分積和被乘數(shù)相加是通過X送加法器和Y送加法器,在加法器中完成的。加法器的輸出經(jīng)過移位電路向右移一位送入BFJ寄存器中。Y寄存器是用移位寄存器實現(xiàn)的,其最低位用作Y送加法器的控制命令。因為原碼一位乘是通過乘數(shù)的最低位是1還是0來確定加數(shù)的,當(dāng)乘數(shù)的最后一位為1的時候,部分積加上被乘數(shù),當(dāng)乘數(shù)的最后一位為0的時候,部分積加上0。加法器最低一位的值,在右移的過程中將被移入Y寄存器的最高數(shù)值位

2、,這樣就使積的低位部分被保存在Y寄存器中,最開始的乘數(shù)在逐位右移的過程中不斷丟失,直到移位結(jié)束。乘法運算完成以后BFJ寄存器中保存的數(shù)值是乘積的高位部分, Y寄存器即乘數(shù)寄存器中保存乘積的低位部分。1.2設(shè)計思路實現(xiàn)原碼一位乘乘法的邏輯框圖如圖1.2所示, BFJ存放部分積, X存放被乘數(shù),Y存放乘數(shù)。一個實現(xiàn)一位原碼乘法運算的運算器可以由一個被乘數(shù)寄存器,一個乘數(shù)寄存器,一個部分積寄存器,一個加法器,一個計數(shù)器,二選一選擇電路以及移位電路七個模塊構(gòu)成。頂層的乘法器模塊采用原理圖設(shè)計輸入方式。被乘數(shù)寄存器模塊中X為被乘數(shù)輸入端,LOAD為數(shù)據(jù)打入電平,CLK為輸入脈沖,XOUT為數(shù)據(jù)輸出端口。

3、乘數(shù)寄存器模塊中Y為乘數(shù)輸入端,LOAD為數(shù)據(jù)打入電平,CLK位輸入脈沖,INPUT為部分積最低位輸入端,YOUT為數(shù)據(jù)輸出端口,LOWBIT為數(shù)乘數(shù)最低位輸出端。 部分積寄存器中IN為部分積右移一位以后的數(shù)據(jù)輸入端,CLR為清零電平,CLK為輸入脈沖,HIGH為加法器的進(jìn)位輸入端,OUT為部分積右移一位后數(shù)據(jù)輸出端。 ALU/2BFJCdY/2>YX>ALUBFJ>ALU移位電路ALU 加法器Y 乘數(shù)BFJ 部分積計數(shù)器X 被乘數(shù) 圖1.2實現(xiàn)原碼一位乘法的邏輯電路框圖計數(shù)器模塊中CLR為清零端,CLKI為輸入脈沖,CLKO為脈沖輸出。二選一選擇電路中IN為被乘數(shù)輸入端口,

4、CTR為控制信號輸入。OUT為數(shù)據(jù)輸出。 二選一選擇電路模塊用原理圖輸入方式,被乘數(shù)寄存器,乘數(shù)寄存器,部分積極寄存器和計數(shù)器模塊采用verilog HDL語言設(shè)計輸入方式。首先,單獨調(diào)試仿真每個模塊,確定在沒有錯誤以后,再對整個運算器模塊進(jìn)行仿真。在沒有錯誤的前提下,生成furui.bit文件下載到XCV200可編程邏輯芯片中經(jīng)硬件測試驗證運算結(jié)果。1.3 設(shè)計環(huán)境·硬件環(huán)境:偉福COP2000型計算機(jī)組成原理實驗儀、XCV200實驗板、微機(jī)。·EDA環(huán)境:Foundation 3.1設(shè)計軟件。第二章詳細(xì)設(shè)計方案2.1 頂層方案圖的設(shè)計與實現(xiàn)頂層方案圖實現(xiàn)原碼一位乘法運算

5、的邏輯功能,采用原理圖設(shè)計輸入方式完成,電路實現(xiàn)基于XCV200可編程邏輯芯片。完成原理圖的功能設(shè)計后,把輸入/輸出信號安排到XCV200指定的引腳上去,實現(xiàn)芯片的引腳鎖定。2.1.1創(chuàng)建頂層圖形設(shè)計文件頂層圖形文件主要由兩個數(shù)據(jù)輸入端,一個脈沖輸入端,一個啟停控制端,一個數(shù)據(jù)輸出端組成。定點原碼一位乘乘法器的頂層原理圖見圖2.1。2.1.2器件的選擇與引腳鎖定(1)器件的選擇硬件設(shè)計環(huán)境基于偉福COP2000型計算機(jī)組成原理實驗儀和XCV200實驗板,采用目標(biāo)芯片為Xlinx XCV200可編程邏輯芯片。(2)引腳鎖定把頂層圖形文件中的輸入/輸出信號安排到Xlinx XCV200芯片指定的引

6、腳上去,實現(xiàn)芯片的引腳鎖定,原理圖中各信號及Xlinx XCV200芯片引腳對應(yīng)關(guān)系如下表:原理圖信號芯片管腳原理圖信號芯片管腳X7P94OUTHIGH7P236X6P95OUTHIGH6P237X5P96OUTHIGH5P238X4P97OUTHIGH4P3X3P100OUTHIGH3P4X2P101OUTHIGH2P5X1P102OUTHIGH1P6X0P103OUTHIGH0P7Y7P79OUTLOW7P215Y6P80OUTLOW6P216Y5P81OUTLOW5P217Y4P82OUTLOW4P218Y3P84OUTLOW3P220Y2P85OUTLOW2P221Y1P86OUTLO

7、W1P222Y0P87OUTLOW0P223CLRP73CLKP2132.2第二層方案圖的設(shè)計與實現(xiàn)第二層圖形文件主要由兩個數(shù)據(jù)輸入端,一個脈沖輸入端,一個啟??刂贫?,一個數(shù)據(jù)輸出端以及相對應(yīng)的被乘數(shù)寄存器模塊,乘數(shù)寄存器模塊,部分積寄存器模塊,加法器模塊,計數(shù)器模塊,數(shù)據(jù)選擇電路模塊以及移位電路模塊組成。第二層原理圖見圖2.2。計數(shù)器模塊起控制整個運算過程的作用。實現(xiàn)控制器的功能,其它所有需要脈沖的模塊均受計數(shù)器即控制器的控制。當(dāng)控制器的輸入端(清零端)為低電平的時候,控制器才啟動整個運算過程,只有當(dāng)控制器的輸出出現(xiàn)脈沖的時候,其它需要脈沖的模塊才開始工作,當(dāng)達(dá)到需要運算次數(shù)后,控制器封鎖脈

8、沖。各寄存器保持值不變。被乘數(shù)寄存器模塊的功能是實現(xiàn)被乘數(shù)寄存,接收來自外部輸入數(shù)據(jù),提供選擇器模塊的輸入。乘數(shù)寄存器模塊的功能是實現(xiàn)乘數(shù)的寄存,接收來自外部輸入數(shù)據(jù),還具有向右移位的功能,將從部分積寄存器傳來的數(shù)據(jù)保存在最高位,同時將乘數(shù)的最低位輸出作為數(shù)據(jù)選擇器的控制端。也作為最后乘積的低位部分寄存器。數(shù)據(jù)選擇器模塊的功能是實現(xiàn)數(shù)據(jù)的選擇,當(dāng)從乘數(shù)寄存器傳來的控制信號為高電平時,輸出為被乘數(shù),作為加法器的一個輸入,當(dāng)從乘數(shù)寄存器傳來的控制信號位低電平時,輸出為零,作為加法器的輸入。部分積寄存器模塊的功能是寄存從移位電路傳過來的數(shù)據(jù),作為加法器的輸入。移位電路模塊起將部分積移位的作用,同時達(dá)

9、到了讓所有模塊在同一個脈沖下工作脈沖同步的作用,由于用組合邏輯電路形成的移位電路不需要脈沖的打入就能工作,當(dāng)加法器的輸出改變時,移位電路就將移位后的部分積送給了部分積寄存器,而不需要讓部分積先將未移位的部分積打如寄存器,再移位的過程。 圖2.1 定點原碼一位乘乘法器的頂層原理圖圖2.2 定點原碼一位乘乘法器的第二層原理圖2.3功能模塊的設(shè)計與實現(xiàn)被乘數(shù)寄存器模塊,乘數(shù)寄存器模塊,計數(shù)器模塊,部分積寄存器模塊用verilog HDL語言設(shè)計輸入方式實現(xiàn)。數(shù)據(jù)選擇器模塊用原理圖設(shè)計輸入方式實現(xiàn)。2.3.1被乘數(shù)寄存器模塊的設(shè)計與實現(xiàn)此模塊用Verilog HDL語言輸入方式設(shè)計,運算位數(shù)為8位,實

10、現(xiàn)被乘數(shù)的接收及寄存,提供選擇器模塊的輸入。用X總線輸入,XOUT總線輸出。當(dāng)輸入端LOAD為高電平的時候,被乘數(shù)寄存器把總線X的數(shù)據(jù)打入,當(dāng)LOAD為低電平的時候,被乘數(shù)寄存器保持?jǐn)?shù)據(jù)不變。該模塊的符號如圖2.31。 圖2.311 被乘數(shù)寄存器的符號Verilog代碼如下:module JICUNQIX (CLK, X, LOAD, XOUT) ;input CLK ;input 7:0 X ;input LOAD ;output 7:0 XOUT ;reg 7:0XOUT;/ add your declarations herealways (posedge CLK) begin if(L

11、OAD)XOUT=X; end / add your code hereendmodule被乘數(shù)寄存器模塊功能仿真見圖2.312圖2.312被乘數(shù)寄存器模塊功能仿真當(dāng)脈沖的上升沿到來的時,數(shù)據(jù)被打入寄存器,符合要求。2.3.2乘數(shù)寄存器模塊的設(shè)計與實現(xiàn) 此模塊用Verilog HDL語言輸入方式設(shè)計,運算位數(shù)為8位,實現(xiàn)乘數(shù)的接收及寄存,還具有向右移位的功能。Y總線做為輸入,YOUT總線作為輸出。當(dāng)LOAD為高電平的時候,總線Y上的數(shù)據(jù)被打入乘數(shù)寄存器中。當(dāng)LOAD為低電平的時候,每到來一個脈沖,乘數(shù)寄存器向右移動一位,并將從INPUT進(jìn)入的數(shù)據(jù)打入最高位,同時將最低位的值賦給輸出端LOWBI

12、T。實現(xiàn)乘數(shù)寄存和移位。該模塊的符號如圖2.321。 圖2.321乘數(shù)寄存器的符號Verilog代碼如下:module JICUNQIY (LOAD, INPUT, Y, CLK, LOWBIT, YOUT) ;input LOAD ;input INPUT ;input 7:0 Y ;input CLK ;output LOWBIT ;output 7:0 YOUT ;reg LOWBIT;reg 7:0YOUT;/ add your declarations herealways (posedge CLK)begin if(LOAD) begin YOUT=Y; LOWBIT=YOUT0;

13、 end else begin YOUT =YOUT>>1; YOUT7=INPUT; LOWBIT=YOUT0; end end / add your code hereendmodule乘數(shù)寄存器模塊功能仿真見圖2.322圖2.322乘數(shù)寄存器模塊功能仿真LOAD為高電平的時候,數(shù)據(jù)被打入。以后每個脈沖的上升沿到來是INPUT被打入最高位。2.3.3部分積寄存器模塊的設(shè)計與實現(xiàn) 此模塊用Verilog HDL語言輸入方式設(shè)計,運算位數(shù)為8位,功能是寄存從移位電路傳過來的數(shù)據(jù),作為加法器的輸入??偩€IN作為輸入,總線OUT作為輸出。當(dāng)CLR為高電平的時候,部分積寄存器的輸出被清零

14、。當(dāng)CLR為低電平的時候,每到來一個脈沖,就將通過移位電路送過來的值賦給輸出端OUT。該模塊的符號如圖2.331。 圖2.331部分積寄存器的符號Verilog代碼如下:module JCQBFJ (CLK, CLR, IN, HIGH, OUT) ;input CLK ;input CLR ;input 7:0 IN ;input HIGH ;output 7:0 OUT ;reg7:0OUT;/ add your declarations herealways (posedge CLK) begin OUT7:0=IN7:0; OUT7=HIGH; end / add your code

15、hereendmodule部分積寄存器模塊功能仿真見圖2.332圖2.332部分積寄存器模塊功能仿真輸出數(shù)據(jù)即為輸入數(shù)據(jù),符合設(shè)計要求。2.3.4計數(shù)器模塊的設(shè)計與實現(xiàn) 此模塊用Verilog HDL語言輸入方式設(shè)計,起控制整個運算過程的作用。當(dāng)CLR為高電平的時候,計數(shù)器被清零,同時CLKO為高電平。以后每進(jìn)來一個脈沖,計數(shù)器加1,直到加到7,也就是乘數(shù)移位次數(shù)達(dá)到8次的時候,CLKO輸出為低電平。該模塊的符號如圖2.341。 圖2.341計數(shù)器模塊的符號 Verilog代碼如下: module JiShuQi (CLKI, CLR, CLKO) ;input CLKI ;input CLR

16、 ;output CLKO ;reg CLKO;reg 3:0temp;/ add your declarations herealways (posedge CLKI or posedge CLR)begin if(CLR) begin; temp=0; CLKO=1; end else begin if(temp=7) CLKO=0; else temp=temp+1; endend / add your code hereendmodule計數(shù)器模塊功能仿真見圖2.342圖2.342 計數(shù)器模塊功能仿真當(dāng)計數(shù)脈沖達(dá)到8的時候,脈沖輸出恒為低電平脈沖,符合設(shè)計要求,能達(dá)到控制作用。2.3.

17、5二選一選擇器模塊此模塊用原理圖輸入方式設(shè)計,運算位數(shù)為8位,功能是實現(xiàn)數(shù)據(jù)的選擇。總線IN作為輸入,總線OUT作為輸出。當(dāng)輸入端CTR為高電平的時候,輸出OUT為乘數(shù)寄存器傳進(jìn)值,當(dāng)CTR為低電平的時候,輸出OUT為0。電路原理圖見圖2.351。二選一選擇器模塊功能仿真見圖2.352和圖2.353圖2.352 二選一選擇器模塊功能仿真當(dāng)CTR為高電平時,輸出為乘數(shù) ,符合要求。圖2.352 二選一選擇器模塊功能仿真當(dāng)CTR為低電平時,輸出為0,符合要求。圖2.351 二選一選擇電路的原理圖2.4 仿真調(diào)試仿真調(diào)試主要驗證設(shè)計電路邏輯功能、時序的正確性,本設(shè)計中主要采用功能仿真方法對設(shè)計的電路

18、進(jìn)行仿真。(1)建立仿真波形文件及仿真信號選擇功能仿真時,首先選定需要仿真的模塊,建立仿真波形文件,選擇仿真信號,對選定的輸入信號設(shè)置參數(shù),實驗中為了讓運算沒有錯誤,需要對每一個非元件庫中提供的模塊進(jìn)行功能仿真。選定的仿真信號和設(shè)置的參數(shù)圖所示。(2)功能仿真結(jié)果與分析定點原碼一位乘乘法器的整體功能仿真見圖2.41和2.42。 圖2.41輸入被乘數(shù)3H,乘數(shù)4H,輸出為0C,結(jié)果正確。 圖2.42輸入被乘數(shù)5H,乘數(shù)4H,輸出為14(16進(jìn)制數(shù)),結(jié)果正確。第3章編程下載與硬件測試3.1 編程下載利用XilinxFoudation3.1的編程下載功能,將得到的furui.bit文件下載到XCV200實驗板的XCV200可編程邏輯芯片中。3.2 硬件測試及結(jié)果分析 由于本人能力有限,該步驟未能完成。 參考文獻(xiàn)1 曹昕燕. EDA技術(shù)實驗與課程設(shè)計M.北京:清華大學(xué)出版社,20062 范延濱.微型計算

溫馨提示

  • 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

提交評論