EDA課程設(shè)計(jì)論文——乘法器_第1頁(yè)
EDA課程設(shè)計(jì)論文——乘法器_第2頁(yè)
EDA課程設(shè)計(jì)論文——乘法器_第3頁(yè)
EDA課程設(shè)計(jì)論文——乘法器_第4頁(yè)
EDA課程設(shè)計(jì)論文——乘法器_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄一、綜述2乘法器總體設(shè)計(jì)2二、設(shè)計(jì)內(nèi)容與仿真結(jié)果21.防抖存數(shù)部分2小結(jié)52.輸入模塊部分63.LED顯示部分64.乘法部分7小結(jié)95.選擇顯示部分106.數(shù)碼管顯示部分107.整體結(jié)果12小結(jié)128.附2進(jìn)制轉(zhuǎn)BCD碼13小結(jié)14三、總結(jié)15一 乘法器總體設(shè)計(jì)本設(shè)計(jì)由防抖存數(shù)模塊,輸入模塊,乘法模塊,LED顯示模塊,選擇顯示模塊以及數(shù)碼管顯示模塊組成。可實(shí)現(xiàn)兩個(gè)5位數(shù)相乘。用發(fā)光二極管顯示輸入數(shù)值,用7段顯示器顯示十進(jìn)制結(jié)果。乘數(shù)和被乘數(shù)分兩次由實(shí)驗(yàn)箱上的按鍵輸入,同時(shí)在數(shù)碼管顯示分別顯示乘數(shù)與被乘數(shù)。輸入顯示和計(jì)算結(jié)果顯示,采用分時(shí)顯示方式進(jìn)行,可參見(jiàn)計(jì)算器的顯示功能,顯示采用16進(jìn)制

2、。KEY1KEY5為數(shù)A、數(shù)B的輸入端,KEY6表示乘號(hào),KEY7表示等號(hào)。初始時(shí)刻數(shù)碼管顯示“00”,此時(shí)可直接輸入數(shù)A,數(shù)碼管顯示數(shù)A,此后按下KEY6,表示數(shù)A輸入完畢,此后輸入為數(shù)B,數(shù)碼管顯示數(shù)B,數(shù)B輸入完畢,按下KEY7,對(duì)輸入的兩數(shù)進(jìn)行乘法計(jì)算,并由數(shù)碼管顯示結(jié)果。各模塊均由VHDL語(yǔ)言編寫(xiě),例化成元件后采用原理圖法進(jìn)行連接??珊?jiǎn)單清晰地描述各模塊之間信號(hào)的傳遞。實(shí)驗(yàn)箱主要由EPM7128SLC84-15及其外圍電路組成,箱上LED及數(shù)碼管均為共陽(yáng)極接法,按鍵按下時(shí)輸出高電平。乘法器整體設(shè)計(jì)如下圖所示:一、 設(shè)計(jì)內(nèi)容與仿真結(jié)果1. 防抖存數(shù)部分 本設(shè)計(jì)采用按鍵輸入,所以需對(duì)按鍵

3、進(jìn)行防抖,同時(shí),由于按鍵按下后會(huì)彈起,不能保持輸出高電平,所以須對(duì)輸入處理,此處曾設(shè)計(jì)了兩種方案:方法一、 采用RS觸發(fā)器搭建而成,R端接地,在時(shí)鐘上升沿觸發(fā)下,S端輸入高電平(按下按鍵)時(shí)Q端輸出為高,此后S端輸入低電平(松開(kāi)按鍵),Q端保持輸出為高。 用RS觸發(fā)器搭建的實(shí)現(xiàn)方式如圖:但此方法在輸入A時(shí)置為高的位,輸入B時(shí)仍為1,此時(shí)需要清零。所以將清零端接到”乘法”(圖中為”CHENG”)控制端,按下此鍵,表示數(shù)A輸入完成,同時(shí)對(duì)前5位清零。按下“等號(hào)”(圖中為”DENGYU”)后,計(jì)算完成,需對(duì)各位清零。在試驗(yàn)箱上實(shí)驗(yàn)時(shí)發(fā)現(xiàn),用一位按鍵清零,干擾十分嚴(yán)重,只要有輸入就會(huì)對(duì)其他位清零。故采

4、用兩位同時(shí)控制清零。“CHENG”與“RES”同時(shí)按下清前5位,“DENGYU”與“RES”同時(shí)按下清各位零。注意按“CHENG”的時(shí)間前后都要長(zhǎng)于按“RES”的時(shí)間,按“DENGYU”的時(shí)間前后要短于按“RES”的時(shí)間,才能達(dá)到正確的效果。仿真結(jié)果如圖:方法二、 采用程序方法控制,當(dāng)檢測(cè)到輸入的上升沿時(shí)輸出取反。此時(shí)需要按鍵的輸入穩(wěn)定,故需防抖模塊,可用兩個(gè)D觸發(fā)器搭建,也可用程序描述,防抖時(shí)需要的時(shí)間延遲可計(jì)數(shù)實(shí)現(xiàn),也可對(duì)實(shí)驗(yàn)箱的時(shí)鐘分頻,得到穩(wěn)定的時(shí)鐘脈沖防抖。此處采用分頻方式實(shí)現(xiàn)。分出8HZ的頻率。整體電路如圖所示:防抖模塊主要程序:ARCHITECTURE behave OF fan

5、gdou ISSIGNAL QA,QB:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF(CLKEVENT AND CLK=1) THENQA=KEY;QB=QA;END IF;KOUT=QA AND (NOT QB);END PROCESS;END behave;程序所描述的原理圖為:仿真結(jié)果如下:KEY(保持輸入)模塊主要程序:ARCHITECTURE behave OF KEY ISBEGINPROCESS(SHURU)VARIABLE QA:STD_LOGIC;BEGINIF(SHURUEVENT AND SHURU=1) THENQA:=NOT QA;END IF

6、;SHUCHU=QA;END PROCESS;END behave;仿真結(jié)果如下:可以看出,與二分頻效果相同。分頻模塊主要程序:ARCHITECTURE behave OF fenpin ISSIGNAL QA:STD_LOGIC;SIGNAL QB:STD_LOGIC;BEGINPROCESS(clk)VARIABLE I:INTEGER RANGE 0 TO 99 ;BEGINIF(clkevent and clk=1) THENIF(i99) THENI:=I+1;ELSIF(i=99) THENi:=0;QA=NOT QA;END IF;END IF;-HZ8=QA;END PROCE

7、SS;PROCESS(QA)VARIABLE J:INTEGER RANGE 0 TO 99;BEGINIF(QAevent and QA=1) THENIF(J99) THENJ:=J+1;ELSIF(J=99) THENJ:=0;QB=NOT QB;END IF;END IF;-HZ8=QB;END PROCESS;PROCESS(QB)VARIABLE K:INTEGER RANGE 0 TO 49;VARIABLE QC:STD_LOGIC;BEGINIF(QBevent and QB=1) THENIF(K49) THENK:=K+1;ELSIF(K=49) THENK:=0;QC:

8、=NOT QC;END IF;END IF;HZ8=QC;END PROCESS; END behave;5分頻仿真結(jié)果如下:小結(jié):方法 一 在試驗(yàn)箱上進(jìn)行測(cè)試時(shí),干擾仍然較大,實(shí)現(xiàn)較為困難,且控制麻煩。方法二不需單獨(dú)清零,控制方便。但整體會(huì)占用較大資源,本 設(shè) 計(jì)在資源充裕的情況下采用方法二。當(dāng)然也可用撥動(dòng)開(kāi)關(guān)控制,控制容易,資源占用也較少,但是為了更好的模擬計(jì)算器輸入,最終并未采用此方法。在寫(xiě)分頻程序時(shí),開(kāi)始采用一次分頻至8HZ,此方式會(huì)占用較大資源,故分三次進(jìn)行分頻,資源占用有明顯減少,但仍然很多。此時(shí)并未對(duì)變量I,J,K設(shè)定范圍,當(dāng)對(duì)I,J,K設(shè)定范圍后,如“VARIABLE I:IN

9、TEGER RANGE 0 TO 99 ;”,資源占用大大減少。采用這兩種方法可省下很多資源。2. 輸入模塊部分本部分主要實(shí)現(xiàn)輸入數(shù)的處理,將符號(hào)為單獨(dú)取出存入1寄存器,將4為數(shù)字位存入1寄存器。當(dāng)“CHENG”為低電平時(shí),將輸入存為shuA及FA。當(dāng)“CHENG”為高電平時(shí),將輸入存為shuB及FB。主要程序如下:ARCHITECTURE behave OF shuru ISBEGINPROCESS(CLK,FU,KEY1,KEY2,KEY3,KEY4,CHENG)BEGINIF(CLKEVENT AND CLK=1) THENIF CHENG=0 THENshuA=KEY1&KEY2&KE

10、Y3&KEY4;fuA=FU; ELSIF CHENG=1 THENshuB=KEY1&KEY2&KEY3&KEY4;fuB=FU; END IF;END IF;END PROCESS;END behave;仿真結(jié)果如下:3. LED顯示部分本部分將輸入的乘數(shù)、被乘數(shù)及控制計(jì)算的乘以、等于信號(hào)用發(fā)光二極管顯示。LED一端已經(jīng)接高電平,故輸入低電平可使其發(fā)光。有輸入模塊輸出的有效信號(hào)均為高電平,此模塊只需將輸入取反,輸出接到個(gè)二級(jí)管一端即可。主要程序如下:ARCHITECTURE behave OF led ISBEGINPROCESS(fa,fb,SA,SB)VARIABLE i:intege

11、r:=0;BEGINlA=not fa;lB=not fb;CC=NOT RC;CD=NOT RD;for i in 0 to 3 loopledA(i)=not SA(i);ledB(i)QC:=QA+QB;QB:=QC;WHEN 0=QC:=QB;WHEN OTHERS=NULL;END CASE;FOR J IN 6 DOWNTO 0 LOOPQB(J+1):=QB(J);- QB(0):=0;-注意要在其他各位移完后再給B(0)位置0。END LOOP;QB(0):=0; END LOOP;AXB=QC;fuhaoXS=0000&shuA; fuhaoXS=0000&shuB; fuh

12、aoXS=shu; fuhaoXS=0000&shuA; fuhaoZSHU:=00000011;WHEN0001=ZSHU:=10011111;WHEN0010=ZSHU:=00100101; WHEN0011=ZSHU:=00001101;WHEN0100=ZSHU:=10011001;WHEN0101=ZSHU:=01001001;WHEN0110=ZSHU:=01000001;WHEN0111=ZSHU:=00011111;WHEN1000=ZSHU:=00000001;WHEN1001=ZSHU:=00011001;WHEN1010=ZSHU:=00010001;WHEN1011=Z

13、SHU:=11000001;WHEN1100=ZSHU:=01100011;WHEN1101=ZSHU:=10000101;WHEN1110=ZSHU:=01100001;WHEN1111=ZSHU:=01110001;WHEN OTHERS=ZSHU:=00000011;END CASE;RETURN ZSHU;END zhuanhuan;BEGINPROCESS (clk)BEGINIF(CLKEVENT AND CLK=1) THENXGE=zhuanhuan(XS(3 DOWNTO 0);XSHI=zhuanhuan(XS(7 DOWNTO 4);-XBAIXFUXFU=1111111

14、1;END CASE;-XFU=100) THEN QA:=QA-100;sum_b:=sum_b+1;-END IF;ELSIF(QA=10)THENQA:=QA-10;sum_s:=sum_s+1;-END IF;ELSIF QA10 THENsum_g:=QA(3 DOWNTO 0);I:=2;END IF;-END IF;ELSIF I=2 THEN GE=sum_g;SHI=sum_s;BAI=sum_b;I:=0;END IF;END IF;END PROCESS;END behave;仿真結(jié)果如下:小結(jié):第一次寫(xiě)的時(shí)候并未采用IFELSIF語(yǔ)句,而是直接用IF END IF,IF

15、 END IF。如此寫(xiě)完之后,不但會(huì)出現(xiàn)很多警告,而且還會(huì)占用較大資源。改正之后,查看RPT,可以發(fā)現(xiàn)LCs占用從56%降為46%。結(jié)合之前分頻模塊發(fā)現(xiàn)的對(duì)于整數(shù)變量要在初始化時(shí)給定范圍,可發(fā)現(xiàn),采用規(guī)范的編程語(yǔ)句可以有效減少資源占用。二、 總結(jié)初步掌握了電子設(shè)計(jì)自動(dòng)化的方法,對(duì)Altera公司提供的FPGA/CPLD開(kāi)發(fā)集成環(huán)境Max+plus及VHDL語(yǔ)言也有了一定的了解。同時(shí)也感受到了FPGA/CPLD的強(qiáng)大(當(dāng)然,不是本實(shí)驗(yàn)所采用的型號(hào))。要對(duì)其深入了解,還需進(jìn)一步的學(xué)習(xí)。才能從分發(fā)揮其作用。乘法器設(shè)計(jì)過(guò)程中遇到的主要問(wèn)題及解決方法已在各小結(jié)中給出。整個(gè)課程設(shè)計(jì)中也有很多體會(huì)。首先就是不能心急,總想著一步完成是不可能的。要思路清晰,先從整體入手,有了整體想法之后,再將其細(xì)化分成個(gè)小模塊,完成個(gè)小模塊的設(shè)計(jì)最后將各模塊進(jìn)行連線(xiàn)。也就是對(duì)應(yīng)于由底向上的設(shè)計(jì)方法。對(duì)于小規(guī)模設(shè)計(jì),此方法簡(jiǎn)單易于接受。當(dāng)我們對(duì)于自己的設(shè)計(jì)尚沒(méi)有清晰地思路時(shí),最好不要參考其他已

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論