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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、4位二進制乘法器課程設計報告目錄 1 設計任務31.1 設計的目的31.2 設計要求32硬件描述語言VHDL32.1 VHDL簡介33 設計規(guī)劃過程63.1四位二進制乘法器的組成原理63.2乘法器的設計74 心得體會105 參考文獻101 設計任務1.1 設計的目的 本次設計的目的就是在掌握EDA實驗開發(fā)系統(tǒng)的初步使用基礎上,了解EDA技術,了解并掌握VHDL硬件描述語言的設計方法和思想,通過學習的VHDL語言結合電子電路的設計知識理論聯系實際,掌握所學的課程知識,學習VHDL基本單元電路的綜合設計應用。通過對四位二進制乘法器的設計,鞏固和綜合運用所學課程,加深對數字電路和VHDL基本單元的理

2、解,理論聯系實際,提高設計能力,提高分析、解決計算機技術實際問題的獨立工作能力。通過課程設計深入理解VHDL語言的精髓,達到課程設計的目標,乘法器的設計可以使對計算機怎樣工作有了更深了解,其實當初想到設計這個課題。1.2 設計要求1)構造一個4位二進制乘法器;2)受按鍵控制由4bit輸入端口先后輸入四位乘數和被乘數(乘數,被乘數均由HDB3碼表示);3)用兩個七段數碼管顯示積,以十進制顯示;2硬件描述語言VHDL2.1 VHDL簡介VHDL語言是一種用于電路設計的高級語言。它在80年代的后期出現。最初是由美國國防部開發(fā)出來供美軍用來提高設計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設計語言 。

3、但是,由于它在一定程度上滿足了當時的設計需求,于是他在1987年成為A I/IEEE的標準(IEEE STD 1076-1987)。1993年更進一步修訂,變得更加完備,成為A I/IEEE的A I/IEEE STD 1076-1993標準。目前,大多數的CAD廠商出品的EDA軟件都兼容了這種標準。 VHDL的英文全寫是:VHSIC(Very High eed Integrated Circuit)Hardware Descriptiong Language.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應用主要是應用在數字電路的設計中。目前,它在中國的應用多數是用在FPGA/CPLD/E

4、PLD的設計中。當然在一些實力較為雄厚的單位,它也被用來設計ASIC。VHDL主要用于描述數字系統(tǒng)的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內部(或稱不可視部分),既涉及實體的內部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內部開發(fā)完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統(tǒng)設計的基本點。VHDL比其它硬件描述語言相比有以下

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

6、把VHDL描述設計轉變成門級網表。(5)VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必管理最終設計實現的目標器件是什么,而進行獨立的設計。2.2 VHDL語言特點應用VHDL進行系統(tǒng)設計,有以下幾方面的特點。(一)功能強大VHDL具有功能強大的語言結構。它可以用明確的代碼描述復雜的控制邏輯設計。并且具有多層次的設計描述功能,支持設計庫和可重復使用的元件生成。VHDL是一種設計、仿真和綜合的標準硬件描述語言。(二)可移植性VHDL語言是一個標準語言,其設計描述可以為不同的EDA工具支持。它可以從一個仿真工具移植到另一個仿真工具,從一個綜合工具移植到另一個綜合工具,從一個工作

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

8、仿真模擬。所以,即使在遠離門級的高層次(即使設計尚未完成時),設計者就能夠對整個工程設計的結構和功能的可行性進行查驗,并做出決策。3 設計規(guī)劃過程3.1四位二進制乘法器的組成原理 本實驗學習VHDL中乘法的使用。在VHDL語言中,一般有c(7 downto 0)=a(3 downto 0)*b(3 downto 0)。所以4位二進制數的乘積是8位二進制數,為了更符合習慣,我們把結果轉化成了十進制。所以結果范圍是0225,即015*15。 本實驗采用的三位數在數碼管上顯示的方法是:分別確定百位、十位和個位。送數碼管動態(tài)顯示。采用與各個數逐一比較的方法確定。如百位的確定可以將結果與200和100比

9、較,若比200大則百位為2,在100到200之間則百位為1,小于100則百位為0,不顯示。十位的確定可以將結果去掉百位,然后與10,20,.90比較而得。本文設計的四位二進制乘法器系統(tǒng)框圖如圖3.2所示。 clk led_data7.0a3.0 seg_sel2.0b3.0 multiply 圖3.2 乘法器系統(tǒng)框圖3.2乘法器的設計 四位二進制加法器和乘法器由VHDL實現后,利用EDA工具對各模塊進行了時序仿真(Timing Simulation),其目的是通過時序可以更清楚的了解程序的工作過程。VHDL語言設計如下:library ieee;use ieee.std_logic_1164.

10、all;use ieee.std_logic_unsigned.all; entity multiply is -構造體描述4位乘法器 port( clk:in std_logic; a,b:in std_logic_vector(3 downto 0); led_data:out std_logic_vector(7 downto 0); seg_sel:out std_logic_vector(2 downto 0) );end multiply; architecture rtl of multiply is signal led_data2,led_data1,led_data0: s

11、td_logic_vector(7 downto 0);-LED顯示代碼,寄存十位個位的數 signal displayclk: std_logic; beginprocess(a,b) variable s: std_logic_vector(7 downto 0);-乘積 variable bai,shiwei,gewei: std_logic_vector(3 downto 0);-乘積的十位個位 begin s(7 downto 0):=a(3 downto 0)*b(3 downto 0); if s=11001000 then bai:=0010;s:=s-11001000; -2

12、00以上 elsif s=01100100 then bai:=0001;s:=s-01100100; -100以上 else bai:=0000; end if; if s=01011010 then shiwei:=1001;s:=s-01011010;gewei:=s(3 downto 0);-90以上 elsif s=01010000 then shiwei:=1000;s:=s-01010000;gewei:=s(3 downto 0);-80以上 elsif s=01000110 then shiwei:=0111;s:=s-01000110;gewei:=s(3 downto 0

13、); -70以上 elsif s=00111100 then shiwei:=0110;s:=s-00111100;gewei:=s(3 downto 0);-60以上 elsif s=00110010 then shiwei:=0101;s:=s-00110010;gewei:=s(3 downto 0);-50以上 elsif s=00101000 then shiwei:=0100;s:=s-00101000;gewei:=s(3 downto 0);-40以上 elsif s=00011110 then shiwei:=0011;s:=s-00011110;gewei:=s(3 dow

14、nto 0);-30以上 elsif s=00010100 then shiwei:=0010;s:=s-00010100;gewei:=s(3 downto 0);-20以上 elsif s=00001010 then shiwei:=0001;s:=s-00001010;gewei:=s(3 downto 0);-10以上 else gewei:=s(3 downto 0);shiwei:=0000; end if; case bai is when 0001 = led_data2 led_data2 led_data2 led_data1 led_data1 led_data1 led

15、_data1 led_data1 led_data1 led_data1 led_data1 led_data1 led_data1 led_data1 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0 led_data0=11111111; end case;end process;process(clk) variable cnt:integer range 0 to 20000; -1KHZ掃描顯示時鐘begin if clkevent a

16、nd clk=1 then cnt:=cnt+1; if cnt10000 then displayclk=1; elsif cnt20000 then displayclk=0; else cnt:=0;displayclk=0; end if; end if;end process; process (displayclk) -顯示兩位 variable cnt2: std_logic_vector(1 downto 0);begin if displayclkevent and displayclk=1 then cnt2:=cnt2+1; if cnt2=01 then seg_sel

17、=001; led_data=led_data0; elsif cnt2=010 then seg_sel=010; led_data=led_data1; elsif cnt2=11 then cnt2:=00; seg_sel=100; led_data=led_data2; end if; end if;end process; end rtl;實驗引腳分配如下:四位二進制乘法器仿真圖如下所示: 仿真分析:clk為時鐘脈沖輸入信號,a,b是輸出信號表示要參與運算的兩個數,Led_data,seg_set為輸出信號,表示計算的結果。144 心得體會通過這一段時間的緊張學習,最后完成了我的設

18、計任務四位二進制乘法器的設計。通過本次課程設計的學習,我深深的體會到設計課的重要性和目的性所在。本次設計課不僅僅培養(yǎng)了我們實際操作能力,也培養(yǎng)了我們靈活運用課本知識完成工作的能力。加法器和乘法器雖然是比較簡單的設計課程,但它給了我一個鍛煉的機會和檢驗的機會,也給我復習計算機組成原理這門課提供了方便。希望學校以后多安排一些類似的實踐環(huán)節(jié),讓同學們學以致用。加法器和乘法器的設計讓我對門電路更有清楚了解,對VHDL語言也有了一定的了解。加法器是計算機運算中的重要組成部分,而且是其他運算實現的基礎。在設計中要求我要有耐心和毅力,還要細心,稍有不慎,一個小小的錯誤就會導致結果的不正確,感謝肖曉麗老師耐心

19、的給我指出了錯誤,讓我面對錯誤的檢查有足夠的耐心,通過這次設計和設計中遇到的問題,也積累了一定的經驗,對以后從事設計工作會有一定的幫助。在應用VHDL的過程中讓我真正領會到了其并行運行與其他軟件順序執(zhí)行的差別及其在電路設計上的優(yōu)越性。VHDL語言具有多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)的數學模型直到門級電路,用來進行數字系統(tǒng)的設計方便靈活。5 參考文獻1David A.Patterson.計算機組成和設計M.清華大學出版社,2003年12月2William Stallings.計算機組織與結構M.高等教育出版社,2001年8月3 曾繁泰,陳美金.VHDL程序設計M.清華大學出版社,2001

20、4 計算機畢業(yè)設計網.VHDL實用教程M.20125王愛英.計算機組成與結構M.清華大學出版社.2001年2月附件:加法器的VHDL語言設計:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity add1 is - 1位全加器 port( a,b:in std_logic; cin:in std_logic; cout:out std_logic; s:out std_logic );end add1;architecture rt

21、l of add1 is begin process(a,b,cin) -列舉所有情況對應的輸出variable temp,temp1:std_logic; begin temp:=a xor b; temp1:= temp xor cin; cout=(temp and cin)or (a and b); s=temp1;end process;end rtl; -以上是對add1的定義library ieee; -整體組裝use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.

22、all;entity adder4 is - 4位全加器 port( a0,a1,a2,a3:in std_logic; -四位二進制輸出 b0,b1,b2,b3:in std_logic;-四位二進制輸出 cin:in std_logic;-進位輸入,本實驗設為0 cout:out std_logic;-進位輸出 s0,s1,s2,s3:out std_logic -和 );end adder4; architecture rtl of adder4 issignal cingnd:std_logic; -由于撥瑪開關只有8個,故進位輸入不接signal cout1,cout2,cout3:

23、std_logic;-第一位第二為第三位向高位進位輸出component add1 is -元件例化語句,1位全加器 port( a,b:in std_logic; cin:in std_logic; cout:out std_logic; s:out std_logic );end component;begin cingnda0, -模塊的名稱映射 b=b0, cin=cingnd, cout=cout1, s=s0 );u2: add1 port map( a=a1, b=b1, cin=cout1, cout=cout2, s=s1 );u3: add1 port map( a=a2,

24、 b=b2, cin=cout2, cout=cout3, s=s2 );u4: add1 port map( a=a3, b=b3, cin=cout3, cout=cout, s=s3 );end rtl;乘法器的VHDL語言設計:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity multiply is -構造體描述4位乘法器 port( clk:in std_logic; a,b:in std_logic_vector(3 downto 0); led_data:out std

25、_logic_vector(7 downto 0); seg_sel:out std_logic_vector(2 downto 0) );end multiply; architecture rtl of multiply is signal led_data2,led_data1,led_data0: std_logic_vector(7 downto 0);-LED顯示代碼,寄存十位個位的數 signal displayclk: std_logic; beginprocess(a,b) variable s: std_logic_vector(7 downto 0);-乘積 variab

26、le bai,shiwei,gewei: std_logic_vector(3 downto 0);-乘積的十位個位 begin s(7 downto 0):=a(3 downto 0)*b(3 downto 0); if s=11001000 then bai:=0010;s:=s-11001000; -200以上 elsif s=01100100 then bai:=0001;s:=s-01100100; -100以上 else bai:=0000; end if; if s=01011010 then shiwei:=1001;s:=s-01011010;gewei:=s(3 downt

27、o 0);-90以上 elsif s=01010000 then shiwei:=1000;s:=s-01010000;gewei:=s(3 downto 0);-80以上 elsif s=01000110 then shiwei:=0111;s:=s-01000110;gewei:=s(3 downto 0); -70以上 elsif s=00111100 then shiwei:=0110;s:=s-00111100;gewei:=s(3 downto 0);-60以上 elsif s=00110010 then shiwei:=0101;s:=s-00110010;gewei:=s(3 downto 0);-50以上 elsif s=00101000 then shiwei:=0100;s:=s-00101000;gewei:=s(3 downto 0);-40以上 elsif s=00011110 then shiwei:=0011;s:=s-00011110;gewei:=s(3 downto 0);-30以上 elsif s=00010100 then shiwei:=0010;s:=s-00010100;gewei:=s(3 downto 0);-20以上 elsif s=00001010 then shiwei:=0001;s:=s-00001010;gewei:

溫馨提示

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

評論

0/150

提交評論