2014EDA課程設計報告模板(共20頁)_第1頁
2014EDA課程設計報告模板(共20頁)_第2頁
2014EDA課程設計報告模板(共20頁)_第3頁
2014EDA課程設計報告模板(共20頁)_第4頁
2014EDA課程設計報告模板(共20頁)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上湖北大學物電學院EDA課程設計報告(論文) 題目:多功能數(shù)字鐘設計專業(yè)班級: 14微電子科學與工程姓 名: 黃山 時 間: 2016年12月20日 指導教師: 萬美琳 盧仕 完成日期: 2015年 12月 20日 專心-專注-專業(yè)多功能數(shù)字鐘設計任務書1 設計目的與要求了解多功能數(shù)字鐘的工作原理,加深利用EDA技術實現(xiàn)數(shù)字系統(tǒng)的理解2設計內容1,能正常走時,時分秒各占2個數(shù)碼管,時分秒之間用小時個位和分鐘個位所在數(shù)碼管的小數(shù)點隔開;2,能用按鍵調時調分;3,能整點報時,到達整點時,蜂鳴器響一秒;4,拓展功能:秒表,鬧鐘,鬧鐘可調3編寫設計報告寫出設計的全過程,附上有關

2、資料和圖紙,有心得體會。4答辯在規(guī)定時間內,完成敘述并回答問題。 目錄 (四號仿宋_GB2312加粗居中)(空一行)1 引言 12 總體設計方案 12.1 設計思路 12.2總體設計框圖 23設計原理分析 33.1分頻器 43.2計時器和時間調節(jié).43.3秒表模塊53.4狀態(tài)機模塊63.5數(shù)碼管顯示模塊73.6頂層模塊83.7管腳綁定和頂層原理圖94 總結與體會 11 多功能電子表 摘要: 本EDA課程主要利用QuartusII軟件Verilog語言的基本運用設計一個多功能數(shù)字鐘,進行試驗設計和軟件仿真調試,分別實現(xiàn)時分秒計時,鬧鐘鬧鈴,時分手動較時,時分秒清零,時間保持和整點報時等多種基本功

3、能關鍵詞: Verilog語言, 多功能數(shù)字鐘,數(shù)碼管顯示;1 引言 QuartusII是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程,解決了傳統(tǒng)硬件電路連線麻煩,出錯率高且不易修改,很難控制成本的缺點。利用軟件電路設計連線方便,修改容易;電路結構清楚,功能一目了然2 總體設計方案2.1 設計思路 根據(jù)系統(tǒng)設計的要求,系統(tǒng)設計采用自頂層向下的設計方法,由時鐘分頻部分

4、,計時部分,按鍵調時部分,數(shù)碼管顯示部分,蜂鳴器四部分組成。這些模塊在頂層原理圖中相互連接作用蜂鳴器計時器2.2 總體設計框圖 分頻器數(shù)碼管狀態(tài)機晶振秒表3 設計原理分析3.1 分頻器 分頻模塊:將20Mhz晶振分頻為1hz,100hz,1000hz分別用于計數(shù)模塊,秒表模塊,狀態(tài)機模塊 module oclk(CLK,oclk,rst,clk_10,clk_100); input CLK,rst; output oclk,clk_10,clk_100; reg 32:0cnt,cnt1,cnt2; reg oclk,clk_10,clk_100; always(posedge CLK or

5、negedge rst)beginif(!rst)begincnt<=0;oclk<=0;endelse if(cnt<10000-1)cnt<=cnt+1;else begincnt<=0;oclk=oclk;endendalways(posedge CLK or negedge rst)beginif(!rst)begincnt1<=0;clk_10<=0;endelseif(cnt1<=-1)cnt1<=cnt1+1;elsebegincnt1<=0; clk_10<=clk_10;endendalways(posedge

6、 CLK or negedge rst)beginif(!rst)begincnt2<=0;clk_100<=0;endelse if(cnt2<-1)cnt2<=cnt2+1;else begincnt2<=0;clk_100=clk_100;endendendmodule3.2計時器和時間調節(jié) 計時模塊:檢測posedge clk_10 并進行計數(shù),同時能調時調分,最后是整點報時部分 module cni(clk_10,rst,tiaoshi,tiaofen,ge,shi,bai,qian,wan,shiwan,bee); input clk_10,rst,t

7、iaoshi,tiaofen; output reg3:0ge,shi,bai,qian,wan,shiwan,bee; always(posedge clk_10 or negedge rst) beginif(!rst)beginge<=0;shi<=0;bai<=0;qian<=0;wan<=0;shiwan<=0; end elsebeginif(!tiaofen)&&(bai<9)bai<=bai+1;else begin if(!tiaofen)&&(qian<5)begin bai<=0;

8、qian<=qian+1;end if(!tiaoshi)&&(wan<9) wan<=wan+1;else begin if(!tiaoshi)&&(shiwan<2)begin wan<=0;shiwan<=shiwan+1;end else begin if(shiwan=2)&&(wan=4) begin ge<=0;shi<=0;bai<=0;qian<=0;wan<=0;shiwan<=0;endif(ge<9)ge<=ge+1;else beging

9、e<=0;if(shi<5)shi<=shi+1;elsebegin shi<=0; if(bai<9)bai<=bai+1; else begin bai<=0; if(qian<5)qian<=qian+1;elsebeginqian<=0; if(wan<3) wan<=wan+1; else begin wan<=0; if(shiwan<2) shiwan<=shiwan+1; else shiwan<=0; end end endend endendend endendendalways

10、(posedge clk_10)beginif(ge=0)&&(shi=0)&&(bai=0)&&(qian=0) bee=0; else bee=1;end endmodule3.3秒表模塊 與計時部分類似,總體思想是調整進制和提高信號頻率,如下module miaobiao(clk_100,tm,m6,m5,m4,m3,m2,m1);input tm,clk_100;output m6,m5,m4,m3,m2,m1;reg 3:0 m6,m5,m4,m3,m2,m1;always(posedge clk_100 )begin if (tm)

11、begin m6<=0; m5<=0; m4<=0; m3<=0; m2<=0; m1<=0; endelsebegin if(m1<9) m1<=m1+1; else begin m1<=0; if(m2<9) m2<=m2+1; else begin m2<=0;if(m3<9) m3<=m3+1;else begin m3<=0; if(m4<9) m4<=m4+1; else begin m4<=0;if(m5<9)m5<=m5+1;else begin m5<

12、=0; if(m6<9) m6<=m6+1; else m6<=0; end end end endendendendendmodule3.4狀態(tài)機模塊一般通過邏輯抽象,得出狀態(tài)轉換圖,狀態(tài)化簡,狀態(tài)分配,用三段式寫法入下module state(clk1k,rst,tm,num,wela,ge,shi,bai,qian,wan,shiwan,m6,m5,m4,m3,m2,m1); input clk1k,rst,tm,ge,shi,bai,qian,wan,shiwan,m6,m5,m4,m3,m2,m1; output num,wela;wire 3:0ge,shi,ba

13、i,qian,wan,shiwan,m6,m5,m4,m3,m2,m1;reg 3:0num;reg 5:0wela;reg 3:0current_state,next_state; parameter3:0D1=1;parameter3:0D2=2;parameter3:0D3=3;parameter3:0D4=4;parameter3:0D5=5;parameter3:0D6=6;parameter3:0D01=7;parameter3:0D02=8;parameter3:0D03=9;parameter3:0D04=10;parameter3:0D05=11;parameter3:0D0

14、6=12;always(posedge clk1k or negedge rst) begin if(!rst) current_state<=D1; else current_state<=next_state; end always(current_state ) begin if(tm=0) begin case(current_state) D1: begin num=m1; wela=6'b; if(clk1k) next_state=D01; else next_state=D1;end D01: begin num=12; wela=6'b; if(c

15、lk1k) next_state=D2; else next_state=D01;end D2: begin num=m2; wela=6'b; if(clk1k) next_state=D02; else next_state=D2;endD02: begin num=12; wela=6'b; if(clk1k) next_state=D3; else next_state=D02;endD3: begin num=m3; wela=6'b; if(clk1k) next_state=D03; else next_state=D3;endD03: begin num

16、=12; wela=6'b; if(clk1k) next_state=D4; else next_state=D03;endD4: begin num=m4; wela=6'b; if(clk1k) next_state=D04; else next_state=D4;endD04: begin num=12; wela=6'b; if(clk1k) next_state=D5; else next_state=D04;endD5: begin num=m5; wela=6'b; if(clk1k) next_state=D6; else next_state

17、=D05;endD05: begin num=12; wela=6'b; if(clk1k) next_state=D6; else next_state=D05;endD6: begin num=m6; wela=6'b; if(clk1k) next_state=D06; else next_state=D6;endD06: begin num=12; wela=6'b; if(clk1k) next_state=D1; else next_state=D06;endendcase endelse begin case(current_state) D1:begin

18、 num=ge;wela=6'b; if(clk1k) next_state=D01; else next_state=D1; end D01:begin num=15;wela=6'b; if(clk1k) next_state=D2; else next_state=D01; end D2:begin num=shi;wela=6'b; if(clk1k) next_state=D02; elsenext_state=D2; endD02:begin num=15;wela=6'b; if(clk1k) next_state=D3; else next_st

19、ate=D02; endD3:begin num=bai;wela=6'b; if(clk1k) next_state=D03; else next_state=D3; end D03:begin num=15;wela=6'b; if(clk1k) next_state=D4; else next_state=D03;endD4:begin num=qian;wela=6'b; if(clk1k) next_state=D04; else next_state=D4; end D04:begin num=15;wela=6'b; if(clk1k) next_

20、state=D5; else next_state=D04; endD5:begin num=wan;wela=6'b; if(clk1k) next_state=D05; else next_state=D5; end D05:begin num=15;wela=6'b; if(clk1k) next_state=D6; else next_state=D05; endD6:begin num=shiwan;wela=6'b; if(clk1k) next_state=D06; else next_state=D6; endD06:begin num=15;wela=

21、6'b; if(clk1k) next_state=D1; else next_state=D06; end default: next_state=D1; endcase end endendmodule3.5數(shù)碼管顯示模塊 module SEG7(num,wela,SEG); input 3:0num; input 5:0wela; output SEG; reg 7:0SEG; always(num) begin if(wela=6'b)|(wela=6'b) begin case(num) 0:SEG=8'b; 1:SEG=8'b; 2:SEG=

22、8'b; 3:SEG=8'b; 4:SEG=8'b; 5:SEG=8'b; 6:SEG=8'b; 7:SEG=8'b; 8:SEG=8'b; 9:SEG=8'b; default:SEG =8'b; endcase end else begin case(num) 0:SEG=8'b; 1:SEG=8'b; 2:SEG=8'b; 3:SEG=8'b; 4:SEG=8'b; 5:SEG=8'b; 6:SEG=8'b; 7:SEG=8'b; 8:SEG=8'

23、;b; 9:SEG=8'b; default:SEG =8'b; endcase end end endmodule3.6頂層模塊所有模塊通過元件例化進頂層模塊 module clock(tm,clk,rst,tiaoshi,tiaofen,wela,SEG,bee); input clk,rst,tiaoshi,tiaofen,tm; output 5:0wela; output 7:0SEG; output bee; wire net1; wire net9; wire net10; wire 3:0net2; wire 3:0net3; wire 3:0net4; wire 3:0net5; wire 3:0net6; wire 3:0net7;

溫馨提示

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

評論

0/150

提交評論