簡(jiǎn)單計(jì)算器eda設(shè)計(jì)最終打印版_第1頁
簡(jiǎn)單計(jì)算器eda設(shè)計(jì)最終打印版_第2頁
簡(jiǎn)單計(jì)算器eda設(shè)計(jì)最終打印版_第3頁
簡(jiǎn)單計(jì)算器eda設(shè)計(jì)最終打印版_第4頁
簡(jiǎn)單計(jì)算器eda設(shè)計(jì)最終打印版_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄第一章 設(shè)計(jì)原理11.1 課程設(shè)計(jì)依據(jù)11.2 課程設(shè)計(jì)內(nèi)容及原理11.3 課程設(shè)計(jì)要求1第二章 設(shè)計(jì)流程22.1設(shè)計(jì)流程圖22.2 LED燈接線部分顯示3第三章 模塊連接43.1 四選一多路器4多路器程序設(shè)計(jì)4四選一多路器仿真圖5四選一多路器仿真波形分析53.2 7段數(shù)碼管顯示5數(shù)碼管程序設(shè)計(jì)5數(shù)碼管仿真圖6數(shù)碼管仿真圖分析63.3 循環(huán)掃描模塊7循環(huán)掃描程序7循環(huán)掃描仿真圖83.3.3 循環(huán)掃描模塊分析83.4 簡(jiǎn)易計(jì)算器總體程序設(shè)計(jì)8簡(jiǎn)單計(jì)算器程序設(shè)計(jì)8簡(jiǎn)單計(jì)算器總體仿真圖11簡(jiǎn)單計(jì)算器仿真圖設(shè)計(jì)分析11第四章 設(shè)計(jì)體會(huì)12參考文獻(xiàn)13第一章 設(shè)計(jì)原理1.1 課程設(shè)計(jì)依據(jù)在掌握常用

2、數(shù)字電路功能和原理的基礎(chǔ)上,根據(jù)EDA技術(shù)課程所學(xué)知識(shí),利用硬件描述語言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ì)算器,采用簡(jiǎn)單4*4計(jì)算器鍵盤,輸入2位十進(jìn)制數(shù)進(jìn)行+、-、 *、/ 四種運(yùn)算,輸入數(shù)據(jù)分別用兩位數(shù)碼管顯示,輸出用四位數(shù)碼管顯示4位10進(jìn)制數(shù),其中除法的結(jié)果顯示分為商和余數(shù)兩部分,要求采用時(shí)序邏輯設(shè)計(jì)實(shí)現(xiàn)計(jì)算器功能。為了完成要求的效果顯示,我先設(shè)計(jì)了一個(gè)簡(jiǎn)單的四則運(yùn)算器,為了使其結(jié)果能清楚的看到,所以計(jì)算器模塊和一個(gè)7段數(shù)碼管模塊連接。實(shí)驗(yàn)要求,輸入分

3、別用兩位數(shù)碼管顯示,輸出用四位數(shù)碼管顯示,所以用一個(gè)38譯碼器和數(shù)碼管連接,通過開關(guān)控制,形成動(dòng)態(tài)顯示。從左向右,依次是第一位數(shù)碼管顯示a的高四位,第二位數(shù)碼管顯示a的低四位;第三位數(shù)碼管顯示b的高四位,第四位數(shù)碼管顯示b的低四位;第五位數(shù)碼管到第八位數(shù)碼管顯示輸出的結(jié)果。通過改變時(shí)鐘,使其看起來像同時(shí)顯示在數(shù)碼管上。1.3 課程設(shè)計(jì)要求1、 要求每個(gè)同學(xué)獨(dú)立完成設(shè)計(jì)任務(wù)。2、 課程設(shè)計(jì)說明書封面格式要求見天津城市建設(shè)學(xué)院課程設(shè)計(jì)教學(xué)規(guī)范附表1。3、 課程設(shè)計(jì)的說明書要求簡(jiǎn)潔、通順,計(jì)算正確,圖紙表達(dá)內(nèi)容完整、清楚、規(guī)范。4、 測(cè)試要求:根據(jù)題目的特點(diǎn),采用相應(yīng)的時(shí)序仿真或者在實(shí)驗(yàn)系統(tǒng)上觀察結(jié)

4、果。5、 課程設(shè)計(jì)說明書要求:l 說明題目的設(shè)計(jì)原理和思路、采用方法及設(shè)計(jì)流程。l 系統(tǒng)框圖、Verilog語言設(shè)計(jì)程序或原理圖。l 對(duì)各子模塊的功能以及各子模塊之間的關(guān)系做較詳細(xì)的描述。l 詳細(xì)說明調(diào)試方法和調(diào)試過程。l 說明測(cè)試結(jié)果:仿真時(shí)序圖和結(jié)果顯示圖,并對(duì)其進(jìn)行說明和分析第二章 設(shè)計(jì)流程2.1設(shè)計(jì)流程圖設(shè)計(jì)流程如下圖,分別用兩個(gè)數(shù)碼管表示二位十進(jìn)制數(shù),用一個(gè)case語句表示輸入數(shù)值采用哪種運(yùn)算方式,分別用00,01,10,11表示加、減、乘、除。首先對(duì)運(yùn)算符號(hào)進(jìn)行選擇,然后再在各自模塊進(jìn)行計(jì)算,用38譯碼器選擇從哪個(gè)數(shù)碼管輸出。圖1 硬件設(shè)計(jì)流程圖圖2 輸出結(jié)果A. B的軟件流程圖2

5、.2 LED燈接線部分顯示7段數(shù)碼是純組合電路,通常的小規(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中來實(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”。注意,這里沒有考慮表示小數(shù)點(diǎn)的發(fā)光管,如果要考慮,需要增加段dp。L

6、ED數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。A、靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O埠進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)位*器*進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O埠多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×840根I/O埠來驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O埠才32個(gè)呢。故實(shí)際應(yīng)用時(shí)必須增加*驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬體電路的復(fù)雜性。B、動(dòng)態(tài)顯示驅(qū)動(dòng):  數(shù)碼管動(dòng)態(tài)顯示介面是單片

7、機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp "的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。透過分時(shí)輪流控制各個(gè)LED數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人

8、的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O埠,而且功耗更低。第三章 模塊連接3.1 四選一多路器3.1.1多路器程序設(shè)計(jì)通過對(duì)四選一多路器設(shè)計(jì),對(duì)計(jì)算器的運(yùn)算符“+”,“-”,“*”,“/”進(jìn)行選擇程序如下:module jsq(a,b,c,out,out1,out2);input7:0a,b;input1:0c;output15:0out;output7:0out1,out2;reg 15:0out;reg7:0out1,out2;alw

9、ays(a,b,c,out)case(c)2'b00:beginout1=0;out2=0;out=a+b;end2'b01:beginout1=0;out2=0;out=a-b;end2'b10:beginout1=0;out2=0;out=a*b;end2'b11:beginout1=a/b;out2=a%b;out=out1,out2;enddefault:;endcaseendmodule四選一多路器仿真圖在軟件Quartus II中輸入程序,進(jìn)行仿真四選一多路器仿真圖如下:圖3 四選一多路器仿真圖3.1.3四選一多路器仿真波形分析如圖3所示為計(jì)四選一多

10、路器的實(shí)序仿真圖,當(dāng)輸入a為1、b為1、c為00時(shí)輸出out為2即1+1=2;當(dāng)輸入a=5,b=4,c=01時(shí)輸出out=1.即5-4=1,當(dāng)輸入a=9,b=6,c=10時(shí)輸出out=54,即9*6=54,當(dāng)輸入a=12,b=8,c=11時(shí)輸出out1=1,out2=4,即商為12/8=1,余數(shù)為12%8=4.經(jīng)此驗(yàn)證分析證明此計(jì)算器計(jì)算準(zhǔn)確無誤。模塊設(shè)計(jì)成功。3.2 7段數(shù)碼管顯示3.2.1數(shù)碼管程序設(shè)計(jì)程序如下:module DECS7S (A, LED7S);input 3:0 A;output 6:0 LED7S;reg 6:0 LED7S;always (A)begin case(A

11、)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'b0110: LED7S <= 7'b1111101 ;4'b0111:

12、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 <

13、;= 7'b1111001 ;4'b1111: LED7S <= 7'b1110001 ;endcase endendmodule3.2.2數(shù)碼管仿真圖在Quartus II中輸入程序,進(jìn)行波形仿真。數(shù)碼管仿真圖如下圖所示:圖4 數(shù)碼管仿真圖3.2.2數(shù)碼管仿真圖分析如圖4所示為數(shù)碼管顯示器的時(shí)序仿真波形,當(dāng)輸入為2時(shí)七段數(shù)碼管中abcdefg的高低電平分別為1011011即abcdg點(diǎn)亮顯示數(shù)字2,當(dāng)輸入為4時(shí)七段數(shù)碼管對(duì)應(yīng)顯示1100110即abcdef被點(diǎn)亮顯示數(shù)字4.經(jīng)驗(yàn)證其他數(shù)字顯示均正確,七段數(shù)碼管顯示器模塊設(shè)計(jì)仿真成功3.3 循環(huán)掃描模塊3.3.1循

14、環(huán)掃描程序程序如下:module xhsm(clk,rst,count,Dout);input clk,rst;output6:0Dout;output2:0count;reg6:0Dout;reg2:0count;reg6:0LED7S1,LED7S2,LED7S3,LED7S4,LED7S5,LED7S6,LED7S7,LED7S8;always(posedge clk or negedge rst)beginif(!rst)count<=3'b000;else if(count=3'b111)count<=3'b000;elsecount<=co

15、unt+3'b001;endalways(posedge clk)begincase(count)3'b000: Dout<=LED7S1;3'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;endcaseendendmodule3.3.

16、2循環(huán)掃描仿真圖在軟件Quartus II中輸入程序,對(duì)程序進(jìn)行仿真。循環(huán)掃描仿真圖如下圖所示:圖5 循環(huán)掃描仿真圖3.3.3 循環(huán)掃描模塊分析如圖5所示為循環(huán)掃描時(shí)序仿真波形,該模塊是一個(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.4 簡(jiǎn)易計(jì)算器總體程序設(shè)計(jì)3.4.1簡(jiǎn)單計(jì)算器程序設(shè)計(jì)程序如下:module jsq9(a,b,c,Dout,count,clk,rst);input7:0a,b;input clk,rst;input1:0c;o

17、utput6: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:4),.LED7S(LED7S3);DECL7S u4(.A(b3:0),.LED7S(LED7S4);DECL7S u5(.A(out15:12),.LED7S(LED7S5);

18、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-b;2'b10:out=a*b;2'b11:beginout1=a/b;out2=a%b;out=out1,out2;enddefault:;endcasealways(posedge c

19、lk 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:Dout<=LED7S2;3'b010:Dout<=LED7S3;3'b011:Dout<=LED7S4;3'b100:Dout<=LED7S

20、5;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'b0000: LED7S <= 7'b0111111; 4'b0001: LED7S <= 7'b0000110; 4'b0010: LED7S <

21、= 7'b1011011; 4'b0011: LED7S <= 7'b1001111; 4'b0100: LED7S <= 7'b1100110; 4'b0101: LED7S <= 7'b1101101; 4'b0110: LED7S <= 7'b1111101; 4'b0111: LED7S <= 7'b0000111; 4'b1000: LED7S <= 7'b1111111; 4'b1001: LED7S <= 7'b1101

22、111; 4'b1010: LED7S <= 7'b1110111; 4'b1011: LED7S <= 7'b1111100; 4'b1100: LED7S <= 7'b0111001; 4'b1101: LED7S <= 7'b1011110; 4'b1110: LED7S <= 7'b1111001; 4'b1111: LED7S <= 7'b1110001; endcase endendmodule3.4.2簡(jiǎn)單計(jì)算器總體仿真圖在軟件Quartus II中輸入程序,進(jìn)行仿真。計(jì)算器總體設(shè)計(jì)仿真圖如下:圖6 總體設(shè)計(jì)仿真圖3.4.3簡(jiǎn)單計(jì)算器仿真圖設(shè)計(jì)分析如圖6所示為簡(jiǎn)易計(jì)算器總體設(shè)計(jì)仿真波形,設(shè)計(jì)一個(gè)四選一多路器,當(dāng)c為00時(shí),為加法,c為01時(shí),為減法;c為10時(shí),為乘法;c為11時(shí),為除法。如圖,在rst為低電平時(shí),輸出延遲,當(dāng)rst為高電平后,在clk上升沿時(shí),a為00000000,b為00000000,c為00,數(shù)碼管1表示a的高四位,數(shù)碼管2表示a的低四位,數(shù)碼管3表示b的高四位,數(shù)碼管4表示b的低四位,數(shù)碼管5到數(shù)碼管8表示輸出Dout。依次類推,可以看出,仿真出來的時(shí)序圖是正確的。第四章 設(shè)計(jì)體會(huì)通過本次課程設(shè)計(jì)讓我對(duì)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論