用verilog語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第1頁(yè)
用verilog語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第2頁(yè)
用verilog語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第3頁(yè)
用verilog語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第4頁(yè)
用verilog語(yǔ)言設(shè)計(jì)簡(jiǎn)單計(jì)算器_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄第一章設(shè)計(jì)任務(wù)及要求11.1課程設(shè)計(jì)依據(jù)11.2課程設(shè)計(jì)內(nèi)容11.3課程設(shè)計(jì)要求1第二章 設(shè)計(jì)思路12.1設(shè)計(jì)原理1計(jì)算器原理1數(shù)碼管顯示原理22.1.3 8位掃描原理22.2設(shè)計(jì)總體框圖3第三章 設(shè)計(jì)源序及分析33.1計(jì)算器模塊3計(jì)算器源程序3模塊分析43.2數(shù)碼管顯示模塊4數(shù)碼管源程序4模塊分析53.3循環(huán)掃描模塊5循環(huán)掃描程序5模塊分析63.4總程序6總體源程序6程序分析8第四章 序仿真結(jié)果及分析94.1計(jì)算器設(shè)計(jì)仿真及分析94.2數(shù)碼管仿真圖及分析94.3總體仿真圖10第五章 結(jié)果驗(yàn)證115.1實(shí)驗(yàn)結(jié)果及分析11第六章心得體會(huì)11第七章 參考文獻(xiàn)12第一章設(shè)計(jì)任務(wù)及要求1.1課程設(shè)

2、計(jì)依據(jù)在掌握常用數(shù)字電路功能和原理的基礎(chǔ)上,根據(jù)EDA技術(shù)課程所學(xué)知識(shí),利用硬件描述語(yǔ)言Verilog HDL、EDA軟件Quartus II和硬件平臺(tái)Cyclone/Cyclone II FPGA進(jìn)行電路系統(tǒng)的設(shè)計(jì)。1.2課程設(shè)計(jì)內(nèi)容設(shè)計(jì)一個(gè)簡(jiǎn)單計(jì)算器,輸入為8位二進(jìn)制數(shù),分別用兩位數(shù)碼管顯示,輸出的計(jì)算結(jié)果為16位二進(jìn)制數(shù),并用四位數(shù)碼管顯示,能夠?qū)崿F(xiàn)+、-、 *、/ 四種運(yùn)算,其中除法的結(jié)果顯示分為商和余數(shù)兩部分,分別用兩位數(shù)碼管顯示。1.3課程設(shè)計(jì)要求1、 要求獨(dú)立完成設(shè)計(jì)任務(wù)。2、 課程設(shè)計(jì)說(shuō)明書封面格式要求見(jiàn)天津城市建設(shè)學(xué)院課程設(shè)計(jì)教學(xué)規(guī)范附表1。3、 課程設(shè)計(jì)的說(shuō)明書要求簡(jiǎn)潔、通

3、順,計(jì)算正確,圖紙表達(dá)內(nèi)容完整、清楚、規(guī)范。4、 測(cè)試要求:根據(jù)題目的特點(diǎn),采用相應(yīng)的時(shí)序仿真或者在實(shí)驗(yàn)系統(tǒng)上觀察結(jié)果。5、 課程設(shè)計(jì)說(shuō)明書要求:1) 說(shuō)明題目的設(shè)計(jì)原理和思路、采用方法及設(shè)計(jì)流程。2) 系統(tǒng)框圖、Verilog語(yǔ)言設(shè)計(jì)程序或原理圖。3) 對(duì)各子模塊的功能以及各子模塊之間的關(guān)系做較詳細(xì)的描述。4) 詳細(xì)說(shuō)明調(diào)試方法和調(diào)試過(guò)程。5) 說(shuō)明測(cè)試結(jié)果:仿真時(shí)序圖和結(jié)果顯示圖,并對(duì)其進(jìn)行說(shuō)明和分析。第二章 設(shè)計(jì)思路2.1設(shè)計(jì)原理2.1.1計(jì)算器原理 Verilog語(yǔ)言中可直接用運(yùn)算符+、-、*、/、%來(lái)實(shí)現(xiàn)四則運(yùn)算,系統(tǒng)會(huì)根據(jù)程序自動(dòng)綜合出相應(yīng)的計(jì)算器。2.1.2數(shù)碼管顯示原理7段數(shù)碼

4、是純組合電路,通常的小規(guī)模專用IC,如74或4000系列的器件只能作十進(jìn)制BCD碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運(yùn)算都是2進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用譯碼程序在FPGA/CPLD中來(lái)實(shí)現(xiàn)。設(shè)計(jì)7段譯碼器,輸出信號(hào)LED7S的7位分別接如圖一數(shù)碼管的7個(gè)段,高位在左,低位在右。例如當(dāng)LED7S輸出為“1101101”時(shí),數(shù)碼管的7個(gè)段:g、f、e、d、c、b、a分別接1、1、0、1、1、0、1;接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。注意,這里沒(méi)有考慮表示小數(shù)點(diǎn)的發(fā)光管,如果要考慮,需要增加段h。圖一 共陰數(shù)碼管及其電路2.1.3 8

5、位掃描原理圖二所示的是8位數(shù)碼掃描顯示電路,其中每個(gè)數(shù)碼管的7個(gè)段: g、f、e、d、c、b、a都分別連在一起,8個(gè)數(shù)碼管分別由8個(gè)選通信號(hào)k1、k2、k8來(lái)選擇。被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。如在某一時(shí)刻,k3為高電平,其余選通信號(hào)為低電平,這時(shí)僅k3對(duì)應(yīng)的數(shù)碼管顯示來(lái)自段信號(hào)端的數(shù)據(jù),而其它7個(gè)數(shù)碼管呈現(xiàn)關(guān)閉狀態(tài)。根據(jù)這種電路狀況,如果希望在8個(gè)數(shù)碼管顯示希望的數(shù)據(jù),就必須使得8個(gè)選通信號(hào)k1、k2、k8分別被單獨(dú)選通,并在此同時(shí),在段信號(hào)輸入口加上希望在該對(duì)應(yīng)數(shù)碼管上顯示的數(shù)據(jù),于是隨著選通信號(hào)的掃變,就能實(shí)現(xiàn)掃描顯示的目的。圖二 8位數(shù)碼驅(qū)動(dòng)顯示電路掃描電路通過(guò)可調(diào)時(shí)鐘輸出片選地址

6、SEL2.0。由SEL2.0 通過(guò)3-8譯碼器決定了8位中的哪一位顯示,SEL2.0變化的快慢決定了掃描頻率f掃描的快慢。掃描頻率大于人眼的分辨率時(shí),呈現(xiàn)出八個(gè)數(shù)碼管同時(shí)點(diǎn)亮。2.2設(shè)計(jì)總體框圖計(jì)算模塊輸出模塊輸入模塊掃描模塊顯示模塊圖三 設(shè)計(jì)總體框圖第三章 設(shè)計(jì)源序及分析3.1計(jì)算器模塊3.1.1計(jì)算器源程序mdule jsq(a,b,c,out);input7:0a,b;input1:0c;otput15:0out;reg 15:0outreg7:0out1,out2;always(a,b,c,out)case(c)2'b00:out=a+b;2'b01:out=a-b;2

7、'b10:out=a*b;2'b11:beginout1=a/b;out2=a%b;out=out1,out2;enddefault:;endcaseendmodule模塊分析該模塊是本次設(shè)計(jì)的核心部分,用于實(shí)現(xiàn)四則運(yùn)算,兩位八位二進(jìn)制數(shù)a、b作為待計(jì)算的輸入,并輸入兩位二進(jìn)制數(shù)c作為計(jì)算功能選擇,00代表加法運(yùn)算、01代表減法運(yùn)算、10代表乘法運(yùn)算、11代表除法運(yùn)算。輸出16位二進(jìn)制數(shù)out位運(yùn)算結(jié)果。并在總體設(shè)計(jì)中把輸入、輸出端接到數(shù)碼管上。3.2數(shù)碼管顯示模塊3.2.1數(shù)碼管源程序module DECL7S (A, LED7S);input 3:0 A;output 6:

8、0 LED7S;reg 6:0 LED7S;always (A) begin case(A) 4'b0000 : LED7S<=7'b0111111; 4'b0001: LED7S <= 7'b0000110 ; 4'b0010: LED7S <= 7'b1011011; 4'b0011: LED7S <= 7'b1001111; 4'b0100: LED7S <= 7'b1100110 ; 4'b0101: LED7S <= 7'b1101101; 4'

9、b0110: LED7S <= 7'b1111101 ; 4'b0111: LED7S <= 7'b0000111 ; 4'b1000: LED7S <= 7'b1111111 ; 4'b1001: LED7S <= 7'b1101111 ; 4'b1010: LED7S <= 7'b1110111 ; 4'b1011: LED7S <= 7'b1111100 ; 4'b1100: LED7S <= 7'b0111001 ; 4'b1101:

10、 LED7S <= 7'b1011110 ; 4'b1110: LED7S <= 7'b1111001 ; 4'b1111: LED7S <= 7'b1110001 ; endcase endendmodule3.2.2模塊分析該模塊是整個(gè)設(shè)計(jì)中的顯示部分,是一個(gè)編碼器組合邏輯設(shè)計(jì),每個(gè)數(shù)碼管可顯示十六進(jìn)制0至F,對(duì)應(yīng)4位二進(jìn)制數(shù),因此輸入端a、b分別用兩個(gè)數(shù)碼管顯示,輸出out用四個(gè)數(shù)碼管顯示,該設(shè)計(jì)中需要八個(gè)同樣的數(shù)碼管顯示器,即。此模塊將在總程序中被調(diào)用八次。3.3循環(huán)掃描模塊循環(huán)掃描程序modulexhsm(clk,rst,co

11、unt,Dout);inputclk,rst;output6:0Dout;output2:0count;reg6:0Dout;reg2:0count;always(posedge clk or negedge rst)beginif(!rst)count<=3'b000;else if(count=3'b111)count<=3'b000;elsecount<=count+3'b001;endalways(posedge clk)begincase(count)3'b000: Dout<=LED7S1;3'b001:Dou

12、t<=LED7S2;3'b010:Dout<=LED7S3;3'b011:Dout<=LED7S4;3'b100: Dout<=LED7S5;3'b101:Dout<=LED7S6;3'b110:Dout<=LED7S7;3'b111:Dout<=LED7S8;endcaseendendmodule模塊分析該模塊是一個(gè)循環(huán)計(jì)數(shù)器,在時(shí)鐘和復(fù)位信號(hào)的控制下,從000111循環(huán)計(jì)數(shù)分別控制八個(gè)數(shù)碼管循環(huán)點(diǎn)亮,由于時(shí)鐘的頻率比較快,大于人眼的分辨率,所以顯示出八個(gè)數(shù)碼管同時(shí)點(diǎn)亮,即同時(shí)顯示計(jì)算器的輸入、輸出。3

13、.4總程序總體源程序module jsq9(a,b,c,Dout,count,clk,rst);input7:0a,b;input clk,rst;input1:0c;output6:0Dout;output 2:0count;reg6:0Dout;reg2:0count;reg15:0out;reg6:0 LED7S1,LED7S2,LED7S3,LED7S4, LED7S5,LED7S6,LED7S7,LED7S8;DECL7S u1(.A(a7:4) , .LED7S(LED7S1);DECL7S u2(.A(a3:0) , .LED7S(LED7S2);DECL7S u3(.A(b7:

14、4) , .LED7S(LED7S3);DECL7S u4(.A(b3:0) , .LED7S(LED7S4);DECL7S u5(.A(out15:12) , .LED7S(LED7S5);DECL7S u6(.A(out11:8) , .LED7S(LED7S6);DECL7S u7(.A(out7:4) , .LED7S(LED7S7);DECL7S u8(.A(out3:0) , .LED7S(LED7S8);reg7:0out1,out2;always(a,b,c,Dout,count,clk,rst)case(c)2'b00:out=a+b;2'b01:out=a-

15、b;2'b10:out=a*b;2'b11:beginout1=a/b;out2=a%b;out=out1,out2;enddefault:;endcasealways(posedge clk or negedge rst)beginif(!rst)count<=3'b000;else if(count=3'b111)count<=3'b000;elsecount<=count+3'b001;endalways(posedge clk)begincase(count)3'b000: Dout<=LED7S1;3&#

16、39;b001:Dout<=LED7S2;3'b010:Dout<=LED7S3;3'b011:Dout<=LED7S4;3'b100: Dout<=LED7S5;3'b101:Dout<=LED7S6;3'b110:Dout<=LED7S7;3'b111:Dout<=LED7S8;endcaseendendmodulemodule DECL7S (A, LED7S);input 3:0 A;output 6:0 LED7S;reg 6:0 LED7S;always (A) begin case(A) 4

17、'b0000 : LED7S<=7'b0111111; 4'b0001: LED7S <= 7'b0000110 ; 4'b0010: LED7S <= 7'b1011011; 4'b0011: LED7S <= 7'b1001111; 4'b0100: LED7S <= 7'b1100110 ; 4'b0101: LED7S <= 7'b1101101; 4'b0110: LED7S <= 7'b1111101 ; 4'b0111:

18、 LED7S <= 7'b0000111 ; 4'b1000: LED7S <= 7'b1111111 ; 4'b1001: LED7S <= 7'b1101111 ; 4'b1010: LED7S <= 7'b1110111 ; 4'b1011: LED7S <= 7'b1111100 ; 4'b1100: LED7S <= 7'b0111001 ; 4'b1101: LED7S <= 7'b1011110 ; 4'b1110: LED7S

19、 <= 7'b1111001 ; 4'b1111: LED7S <= 7'b1110001 ; endcase endendmodule3.4.2程序分析該程序是本次設(shè)計(jì)的最終程序,主要是將以上三個(gè)模塊聯(lián)系起來(lái)。其中反復(fù)調(diào)用數(shù)碼管顯示模塊,將其與計(jì)算器模塊相連。其輸入A在u1中與計(jì)算器輸入a的高四位相連,輸出LED7S與LED7S1相連,在硬件上實(shí)現(xiàn)用一個(gè)數(shù)碼管顯示輸入a的高四位,以此類推u2模塊實(shí)現(xiàn)用數(shù)碼管顯示a的低四位,u3對(duì)應(yīng)b的高四位,u4對(duì)應(yīng)b的第四位,u5對(duì)應(yīng)out的高四位,u6對(duì)應(yīng)out次高四位,u7對(duì)應(yīng)out的次低四位,u8對(duì)應(yīng)out的低四位

20、。循環(huán)計(jì)數(shù)器模塊,與八個(gè)數(shù)碼管顯示模塊相連,當(dāng)輸出count為某一確定時(shí),將不同數(shù)碼管的輸出賦給程序的總輸出Dout點(diǎn)亮相應(yīng)的數(shù)碼管,例如當(dāng)count=3b000時(shí),LED7S1賦給Dout,此時(shí)試驗(yàn)箱是對(duì)應(yīng)輸入a的高四位的數(shù)碼管被點(diǎn)亮。通過(guò)以上連接該程序?qū)崿F(xiàn)了輸入為8位二進(jìn)制數(shù),分別用兩位數(shù)碼管顯示,輸出的計(jì)算結(jié)果為16位二進(jìn)制數(shù),并用四位數(shù)碼管顯示,能夠?qū)崿F(xiàn)+、-、 *、/ 四種運(yùn)算,其中除法的結(jié)果顯示分為商和余數(shù)兩部分,分別用兩位數(shù)碼管顯示的設(shè)計(jì)要求。第四章 序仿真結(jié)果及分析4.1計(jì)算器設(shè)計(jì)仿真及分析圖四 計(jì)算器仿真圖如圖四所示為計(jì)算器的實(shí)序仿真圖,當(dāng)輸入a為00000001、b為000

21、00001、c為01時(shí)輸出out為0000000000000000即1-1=0;當(dāng)輸入a=00000010,b=00000010,c=10時(shí)輸出out=0000000000000100.即2*2=4,當(dāng)輸入a=00000011,b=00000011,c=11時(shí)輸出out1=00000001,out2=00000000,即3/3=1余數(shù)為0當(dāng)輸入a=00000100,b=00000100,c=00時(shí)輸出out=00001000即4+4=8.經(jīng)此驗(yàn)證分析證明此計(jì)算器計(jì)算準(zhǔn)確無(wú)誤。模塊設(shè)計(jì)成功。4.2數(shù)碼管仿真圖及分析圖五 數(shù)碼管仿真圖如圖五所示為數(shù)碼管顯示器的時(shí)序仿真波形,當(dāng)輸入為0011時(shí)七段數(shù)碼管中abcdefg的高低電平分別為1111001即abcdg點(diǎn)亮顯示數(shù)字3,當(dāng)輸入為0000時(shí)七段數(shù)碼管對(duì)應(yīng)顯示1111110即abcdef被點(diǎn)亮顯示數(shù)字0.經(jīng)驗(yàn)證其他數(shù)字顯示均正確,七段數(shù)碼管顯示器模塊設(shè)計(jì)仿真成功。4.3總體仿真圖圖六 總體仿真圖圖六所示為整個(gè)設(shè)計(jì)的仿真波形圖,對(duì)其分析如下,首先分析最下邊三行的循環(huán)計(jì)數(shù)器部分,當(dāng)復(fù)位信號(hào)為0時(shí)count計(jì)為000當(dāng)復(fù)位為1每當(dāng)時(shí)鐘上升沿

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論