四位二進(jìn)制乘法器課程設(shè)計報告剖析_第1頁
四位二進(jìn)制乘法器課程設(shè)計報告剖析_第2頁
四位二進(jìn)制乘法器課程設(shè)計報告剖析_第3頁
四位二進(jìn)制乘法器課程設(shè)計報告剖析_第4頁
四位二進(jìn)制乘法器課程設(shè)計報告剖析_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 4位二進(jìn)制乘法器課程設(shè)計報吿目錄TOC o 1-5 h z HYPERLINK l bookmark4 o Current Document 1設(shè)計任務(wù)2 HYPERLINK l bookmark6 o Current Document 1.1設(shè)計的目的21.2設(shè)計要求32硬件描述語言VHDL3 HYPERLINK l bookmark8 o Current Document 2.1VHDL簡介3 HYPERLINK l bookmark12 o Current Document 3設(shè)計規(guī)劃過程5 HYPERLINK l bookmark14 o Current Document 3.1四位

2、二進(jìn)制乘法器的組成原理6 HYPERLINK l bookmark16 o Current Document 3.2乘法器的設(shè)計6 HYPERLINK l bookmark20 o Current Document 4心得體會9 HYPERLINK l bookmark22 o Current Document 5參考文獻(xiàn)101設(shè)計任務(wù)1.1設(shè)計的目的本次設(shè)計的目的就是在掌握EDA實驗開發(fā)系統(tǒng)的初步使用基礎(chǔ)上,了解EDA技術(shù),了解并掌握VHDL硬件描述語言的設(shè)計方法和思想,通過學(xué)習(xí)的VHDL語言結(jié)合電子電路的設(shè)計知識理論聯(lián)系實際,掌握所學(xué)的課程知識,學(xué)習(xí)VHDL基本單元電路的綜合設(shè)計應(yīng)用。通過

3、對四位二進(jìn)制乘法器的設(shè)計,鞏固和綜合運用所學(xué)課程,加深對數(shù)字電路和VHDL基本單元的理解,理論聯(lián)系實際,提高設(shè)計能力,提高分析、解決計算機技術(shù)實際問題的獨立工作能力。通過課程設(shè)計深入理解VHDL語言的精髓,達(dá)到課程設(shè)計的目標(biāo),乘法器的設(shè)計可以使對計算機怎樣工作有了更深了解,其實當(dāng)初想到設(shè)計這個課題。1.2設(shè)計要求1)構(gòu)造一個4位二進(jìn)制乘法器;2)受按鍵控制由4bit輸入端口先后輸入四位乘數(shù)和被乘數(shù)(乘數(shù),被乘數(shù)均由HDB3碼表示);3)用兩個七段數(shù)碼管顯示積,以十進(jìn)制顯示;2硬件描述語言VHDL2.1VHDL簡介VHDL語言是一種用于電路設(shè)計的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防

4、部開發(fā)出來供美軍用來提高設(shè)計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計語言。但是,由于它在一定程度上滿足了當(dāng)時的設(shè)計需求,于是他在1987年成為AI/IEEE的標(biāo)準(zhǔn)(IEEESTD1076T987)。1993年更進(jìn)一步修訂,變得更加完備,成為AI/IEEE的AI/IEEESTD1076-1993標(biāo)準(zhǔn)。目前,大多數(shù)的CAD廠商出品的EDA軟件都兼容了這種標(biāo)準(zhǔn)。VHDL的英文全寫是:VHSIC(VeryHigheedIntegratedCircuit)HardwareDescriptiongLanguage.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計中。目

5、前,它在中國的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計中。當(dāng)然在一些實力較為雄厚的單位,它也被用來設(shè)計ASIC。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)

6、設(shè)計的基本點。VHDL比其它硬件描述語言相比有以下優(yōu)點:(1)與其他的硬件描述語言相比,VHDL具有更強的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。(2)VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行仿真模擬。(3)VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現(xiàn)。(4)對于用VHDL完成的一個確定的設(shè)計

7、,可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把VHDL描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。(5)VHDL對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨立的設(shè)計。2.2VHDL語言特點應(yīng)用VHDL進(jìn)行系統(tǒng)設(shè)計,有以下幾方面的特點。(一)功能強大VHDL具有功能強大的語言結(jié)構(gòu)。它可以用明確的代碼描述復(fù)雜的控制邏輯設(shè)計。并且具有多層次的設(shè)計描述功能,支持設(shè)計庫和可重復(fù)使用的元件生成。VHDL是一種設(shè)計、仿真和綜合的標(biāo)準(zhǔn)硬件描述語言。(二)可移植性VHDL語言是一個標(biāo)準(zhǔn)語言,其設(shè)計描述可以為不同的EDA工具支持。它可以從一個仿真工具移植到另一個仿真工具,

8、從一個綜合工具移植到另一個綜合工具,從一個工作平臺移植到另一個工作平臺。此外,通過更換庫再重新綜合很容易移植為ASIC設(shè)計。(三)獨立性VHDL的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān)。設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨立的設(shè)計。程序設(shè)計的硬件目標(biāo)器件有廣闊的選擇范圍,可以是各系列的CPLD、FPGA及各種門陣列器件。(四)可操作性由于VHDL具有類屬描述語句和子程序調(diào)用等功能,對于已完成的設(shè)計,在不改變源程序的條件下,只需改變端口類屬參量或函數(shù),就能輕易地改變設(shè)計的規(guī)模和結(jié)構(gòu)。(五)靈活性VHDL最初是作為一種仿真標(biāo)準(zhǔn)格式出現(xiàn)的,有著豐富的仿真語句和庫函

9、數(shù)。使其在任何大系統(tǒng)的設(shè)計中,隨時可對設(shè)計進(jìn)行仿真模擬。所以,即使在遠(yuǎn)離門級的高層次(即使設(shè)計尚未完成時),設(shè)計者就能夠?qū)φ麄€工程設(shè)計的結(jié)構(gòu)和功能的可行性進(jìn)行查驗,并做出決策。3設(shè)計規(guī)劃過程3.1四位二進(jìn)制乘法器的組成原理本實驗學(xué)習(xí)VHDL中乘法的使用。在VHDL語言中,一般有c(7downto0)=a(3downto0)*b(3downto0)。所以4位二進(jìn)制數(shù)的乘積是8位二進(jìn)制數(shù),為了更符合習(xí)慣,我們把結(jié)果轉(zhuǎn)化成了十進(jìn)制。所以結(jié)果范圍是0225,即015*15。本實驗采用的三位數(shù)在數(shù)碼管上顯示的方法是:分別確定百位、十位和個位。送數(shù)碼管動態(tài)顯示。采用與各個數(shù)逐一比較的方法確定。如百位的確定

10、可以將結(jié)果與200和100比較,若比200大則百位為2,在100到200之間則百位為1,小于100則百位為0,不顯示。十位的確定可以將結(jié)果去掉百位,然后與10,20,.90比較而得。本文設(shè)計的四位二進(jìn)制乘法器系統(tǒng)框圖如圖3.2所示。multiplyclkled_data7.Oa3.Oseg_sel2.Ob3.O圖3.2乘法器系統(tǒng)框圖3.2乘法器的設(shè)計四位二進(jìn)制加法器和乘法器由VHDL實現(xiàn)后,利用EDA工具對各模塊進(jìn)行了時序仿真(TimingSimulation),其目的是通過時序可以更清楚的了解程序的工作過程。VHDL語言設(shè)計如下:libraryieee;useieee.std_logic_1

11、164.all;useieee.std_logic_unsigned.all;entitymultiplyis-構(gòu)造體描述4位乘法器port(clk:instd_logic;a,b:instd_logic_vector(3downto0);led_data:outstd_logic_vector(7downto0);seg_sel:outstd_logic_vector(2downto0);endmultiply;architecturertlofmultiplyissignalled_data2,led_datal,led_data0:std_logic_vector(7downtoO);-

12、LED顯示代碼,寄存十位個位的數(shù)signaldisplayclk:std_logic;beginprocess(a,b)variables:std_logic_vector(7downto0);-乘積variablebai,shiwei,gewei:std_logic_vector(3downto0);-乘積的十位個位begins(7downto0):=a(3downto0)*b(3downto0);ifs=11001000thenbai:=0010;s:=s-11001000;-200以上elsifs=01100100thenbai:=0001;s:=s-01100100;-100以上els

13、ebai:=0000;endif;ifs=01011010thenshiwei:=1001;s:=s-01011010;gewei:=s(3downto0);-90以上elsifs=01010000thenshiwei:=1000;s:=s-01010000;gewei:=s(3downto0);-80以上elsifs=01000110thenshiwei:=0111;s:=s-01000110;gewei:=s(3downto0);-70以上elsifs=00111100thenshiwei:=0110;s:=s-00111100;gewei:=s(3downto0);-60以上elsifs

14、=00110010thenshiwei:=0101;s:=s-00110010;gewei:=s(3downto0);-50以上elsifs=00101000thenshiwei:=0100;s:=s-00101000;gewei:=s(3downto0);-40以上elsifs=00011110thenshiwei:=0011;s:=s-00011110;gewei:=s(3downto0);-30以上elsifs=00010100thenshiwei:=0010;s:=s-00010100;gewei:=s(3downto0);-20以上elsifs=00001010thenshiwei:

15、=0001;s:=s-00001010;gewei:=s(3downto0);-10以上elsegewei:=s(3downto0);shiwei:=0000;endif;casebaiiswhen0001=led_data2led_data2led_data2led_data1led_data1led_data1led_data1led_data1led_data1led_datalv=10000010;when0111=led_data1v=11111000;when1000=led_data1led_data1led_data1led_data0led_data0led_data0led

16、_data0led_data0led_data0led_data0led_data0led_data0led_data0led_data0=11111111;endcase;endprocess;process(clk)variablecnt:integerrange0to20000;-1KHZ掃描顯示時鐘beginifclkeventandclk=Tthencnt:=cnt+1;ifcnt10000thendisplayclkv=T;elsifcnt20000thendisplayclkv=0;elsecnt:=0;displayclkv=0;endif;endif;endprocess;p

17、rocess(displayclk)-顯示兩位variablecnt2:stdogic_vector(1downto0);beginifdisplayclkeventanddisplayclk=Tthencnt2:=cnt2+1;ifcnt2=01thenseg_sel=001;led_data=led_data0;elsifcnt2=010thenseg_sel=010;led_data=led_data1;elsifcnt2=11thencnt2:=00;seg_sel=100;Ied_datav=led_data2;endif;endif;endprocess;endrtl;NodeNa

18、meDirectionLocationI/OBank3J日InputPIN1033斗a3InputPIN35一b0Input36JblInput37b2InputPIN38b3Input39一dkInput110妙leddata7Output211妙leddata6OutputPIN10212妙leddata5OutputPIN11213妙leddata4OutputPIN1221斗妙leddata3OutputPIN132四位二進(jìn)制乘法器仿真冬如下所示:PIN1斗216妙leddatalOutputPIN192Interval:-931.0ns100.Ona200.0ns300.0ns400

19、.Ona500.0ns600.0ns700.0ns800.0ns900.OnEETime:山帖Ref:931.0nsName:Value:_zelkA1_盧aDO_盧bDO=yl&d_dataD164y3&g_s&lD1-_/displayclk112.實驗引腳分配如下:164a,elk為時鐘脈沖輸入信號,a,b是輸出信號表示要參與運算的兩個數(shù),仿真分析:Led_data,seg_set為輸出信號,表示計算的結(jié)果。4心得體會通過這一段時間的緊張學(xué)習(xí),最后完成了我的設(shè)計任務(wù)一一四位二進(jìn)制乘法器的設(shè)計。通過本次課程設(shè)計的學(xué)習(xí),我深深的體會到設(shè)計課的重要性和目的性所在。本次設(shè)計課不僅僅培養(yǎng)了我們實際

20、操作能力,也培養(yǎng)了我們靈活運用課本知識完成工作的能力。加法器和乘法器雖然是比較簡單的設(shè)計課程,但它給了我一個鍛煉的機會和檢驗的機會,也給我復(fù)習(xí)計算機組成原理這門課提供了方便。希望學(xué)校以后多安排一些類似的實踐環(huán)節(jié),讓同學(xué)們學(xué)以致用。加法器和乘法器的設(shè)計讓我對門電路更有清楚了解,對VHDL語言也有了一定的了解。加法器是計算機運算中的重要組成部分,而且是其他運算實現(xiàn)的基礎(chǔ)。在設(shè)計中要求我要有耐心和毅力,還要細(xì)心,稍有不慎,一個小小的錯誤就會導(dǎo)致結(jié)果的不正確,感謝肖曉麗老師耐心的給我指出了錯誤,讓我面對錯誤的檢查有足夠的耐心,通過這次設(shè)計和設(shè)計中遇到的問題,也積累了一定的經(jīng)驗,對以后從事設(shè)計工作會有一

21、定的幫助。在應(yīng)用VHDL的過程中讓我真正領(lǐng)會到了其并行運行與其他軟件順序執(zhí)行的差別及其在電路設(shè)計上的優(yōu)越性。VHDL語言具有多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)的數(shù)學(xué)模型直到門級電路,用來進(jìn)行數(shù)字系統(tǒng)的設(shè)計方便靈活。5參考文獻(xiàn)DavidA.Patterson.計算機組成和設(shè)計M.清華大學(xué)出版社,2003年12月WilliamStallings計算機組織與結(jié)構(gòu)M.高等教育出版社,2001年8月曾繁泰,陳美金.VHDL程序設(shè)計M.清華大學(xué)出版社,2001計算機畢業(yè)設(shè)計網(wǎng).VHDL實用教程M.2012王愛英計算機組成與結(jié)構(gòu)M清華大學(xué)出版社.2001年2月附件:加法器的VHDL語言設(shè)計:libra

22、ryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityadd1is-1位全加器port(a,b:instd_logic;cin:instd_logic;cout:outstd_logic;s:outstd_logic);endadd1;architecturertlofadd1isbeginprocess(a,b,cin)-列舉所有情況對應(yīng)的輸出variabletemp,temp1:std_logic;begintemp:=axorb;temp1:=t

23、empxorcin;couta0,-模塊的名稱映射b=bO,cin=cingnd,cout=cout1,s=sO);u2:addlportmap(a=a1,b=b1,cin=cout1,cout=cout2,s=s1);u3:add1portmap(a=a2,b=b2,cin=cout2,cout=cout3,s=s2);u4:add1portmap(a=a3,b=b3,cin=cout3,cout=cout,s=s3);endrtl;乘法器的VHDL語言設(shè)計:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.a

24、ll;entitymultiplyis-構(gòu)造體描述4位乘法器port(clk:instd_logic;a,b:instd_logic_vector(3downto0);led_data:outstd_logic_vector(7downto0);seg_sel:outstd_logic_vector(2downto0);endmultiply;architecturertlofmultiplyissignalled_data2,led_data1,led_data0:std_logic_vector(7downtoO);-LED顯示代碼,寄存十位個位的數(shù)signaldisplayclk:std

25、ogic;beginprocess(a,b)variables:stdogic_vector(7downto0);-乘積variablebai,shiwei,gewei:stdogic_vector(3downto0);-乘積的十位個位begins(7downto0):=a(3downto0)*b(3downto0);ifs=11001000thenbai:=0010;s:=s-11001000;-200以上elsifs=01100100thenbai:=0001;s:=s-01100100;-100以上elsebai:=0000;endif;ifs=01011010thenshiwei:=1

26、001;s:=s-01011010;gewei:=s(3downto0);-90以上elsifs=01010000thenshiwei:=1000;s:=s-01010000;gewei:=s(3downto0);-80以上elsifs=01000110thenshiwei:=0111;s:=s-01000110;gewei:=s(3downto0);-70以上elsifs=00111100thenshiwei:=0110;s:=s-00111100;gewei:=s(3downto0);-60以上elsifs=00110010thenshiwei:=0101;s:=s-00110010;gewei:=s(3downto0);-50以上elsifs=00101000thenshiwei:=0100;s:=s-00101000;gewei:=s(3downto0);-40以上elsifs=00011110thenshiwei:=0011;s:=s-00011110;gewei:=s(3downto0);-30以上elsifs=00010100thenshiwei:=0010;s:=s-00010100;gewei:=s(3downto0);-20以上elsifs=00001010thenshiwe

溫馨提示

  • 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

提交評論