12小時數(shù)字鐘電路設(shè)計(共16頁)_第1頁
12小時數(shù)字鐘電路設(shè)計(共16頁)_第2頁
12小時數(shù)字鐘電路設(shè)計(共16頁)_第3頁
12小時數(shù)字鐘電路設(shè)計(共16頁)_第4頁
12小時數(shù)字鐘電路設(shè)計(共16頁)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上沈陽航空航天大學(xué) 課 程 設(shè) 計 報 告課程設(shè)計名稱:計算機組成原理課程設(shè)計課程設(shè)計題目:12小時數(shù)字鐘電路設(shè)計與實現(xiàn)院(系):計算機學(xué)院專 業(yè):計算機科學(xué)與技術(shù)班 級:學(xué) 號:64姓 名:指導(dǎo)教師:胡光元完成日期:2016 年 1月 13 日專心-專注-專業(yè)目 錄第1章 總體設(shè)計方案1.1 設(shè)計原理 通過Verilog語言,編寫12小時數(shù)字鐘電路設(shè)計與實現(xiàn)的Verilog程序,一般的做法是底層文件用verilog寫代碼表示,頂層用寫的代碼生成的原理圖文件鏈接組成,最后在加上輸入輸出端口。采用自上而下的方法,頂層設(shè)計采用原理圖設(shè)計輸入的方式。1.2 設(shè)計思路 1.實時

2、數(shù)字鐘顯示功能,即時、分、秒的正常顯示模式,并且在此基礎(chǔ)上增加上,下午顯示。 2.手動校準。按動方式鍵,將電路置于校時狀態(tài),則計時電路可用手動方式校準,每按一下校時鍵,時計數(shù)器加1;按動方式鍵,將電路置于校分狀態(tài),以同樣方式手動校分。1.3 設(shè)計環(huán)境(1)硬件環(huán)境偉福COP2000型計算機組成原理實驗儀COP2000計算機組成原理實驗系統(tǒng)由COP2000集成調(diào)試軟件COP2000 集成開發(fā)環(huán)境是為.(2)EDA環(huán)境Xilinx foundation f3.1設(shè)計軟件Xilinx foundation f3.1是Xilinx公司的可編程期間.第2章 詳細設(shè)計方案2.1 算法與程序的設(shè)計與實現(xiàn) (

3、1)秒鐘計時器 由于秒計數(shù)器為60進制計數(shù)器,所以以秒計數(shù)器作為示例說明其編程思想。其中秒計數(shù)器模塊在程序中為always (posedge clk)的程序段,由上面分析得秒計數(shù)器由一個十進制計數(shù)器與一個六進制計數(shù)器組成,程序中有second0表示秒計數(shù)器低位即10進制計數(shù)器,second1表示秒計數(shù)器的高位為一個六進制計數(shù)器。clk為時鐘信號,時鐘周期1/60(S),當?shù)臀籹econd0滿10時,自動進一位,即second1自動進位。Second0,second1位寬均為4位reg型變量。(2) 分鐘鐘計時器 分鐘計時器由于秒計數(shù)器為12 進制計數(shù)器,示例說明其編程思想。其中秒計數(shù)器模塊在程

4、序中為always (posedge mod )的程序段,由分析得小時計數(shù)器由一個二進制計數(shù)器與一個三進制計數(shù)器組成,程序中有hour0表示秒計數(shù)器低位即二進制計數(shù)器,hour1表示秒計數(shù)器的高位為一個三進制計數(shù)器。Mod為時鐘信號,來自分鐘計時模塊的mod,時鐘周期360(S),當?shù)臀籬our0滿3時,自動進一位,即hour1自動進位。hour1,hour1位寬均為4位reg型變量。(3) 小時計時器 小時計時器同秒鐘計時器其中小時計數(shù)器模塊在程序中為always (posedge tun)的程序段,分鐘計時器的低位、高位分別由minute0、minute1表示,但分鐘計時器模塊的敏感信號為

5、“posedge tun”時鐘信號,“tun”的產(chǎn)生自秒鐘計時器,可知其產(chǎn)生的時鐘信號為1(S),每觸發(fā)一次則分鐘計數(shù)器計數(shù)加1一次,同時產(chǎn)生mod的時鐘信號,同時由于做的是12小時數(shù)字鐘電路,所有zox表示的是顯示上下午,當小時計數(shù)器滿12時zox變化一次,其中zox=0表示的是上午,zox=1表示的是下午。(4) 時間設(shè)置 時間設(shè)置模塊實現(xiàn)的功能為通過按鍵調(diào)節(jié)可以對當前時間進行手動控制。其主要是在時間設(shè)置使能端有效地情況下通過SW1和i_SW2兩個按鍵對數(shù)字鐘的小時和分鐘數(shù)進行調(diào)節(jié)。Disp_drive為設(shè)置中的顯示控制,即通過SW1對位的調(diào)整,Disp_drive隨之變化。i_SW2為對

6、每一位上的數(shù)字在其范圍內(nèi)進行加1調(diào)節(jié)。Disp_drive取值000、001、010和011分別對應(yīng)hour1、hour0、minute1和minute0的設(shè)置,其中的加1設(shè)置在各個計時器模塊,這樣做的原因是防止兩個“always”進程對同一個變量賦值發(fā)生錯誤。(5)控制顯示模塊 控制顯示模塊在整個數(shù)字鐘的設(shè)計中起著非常重要的作用。它的作用是將時間等數(shù)據(jù)用數(shù)碼管顯示的控制和數(shù)據(jù)傳輸模塊,包括數(shù)據(jù)的傳輸以及BCD碼譯碼等。通過幾個控制使能端將其不同功能時的時間在數(shù)碼管上顯示出來。本模塊中端口定義比較多,下面是其所對應(yīng)的功能。clk:時間自動模式工作使能信號;Timeset_EN:時間設(shè)置使能信號

7、;Time_disp_select:時間顯示位選信號;Disp_select:顯示位選信號輸出;程序設(shè)計中,各使能端信號為1表示執(zhí)行該功能,以時間自動工作模式使能信號有效為例說明,當Time_EN為1時,首先將時間顯示位選信號isp_select的值賦給顯示位選信號disp_select輸出,定義time_disp_select的狀態(tài)一共有6個,分別為、和,其在各狀態(tài)下分別依次表示將、hour0、hour1、minute0、minute1、second0和second1的值賦給data,用case語句來實現(xiàn),其實現(xiàn)語句如下:always(clk,TimeSet_EN,time_disp_sel

8、ect,disp_select,hour1,hour0,minute1,minute0,second1,second0) begin /時鐘,秒表顯示 if(clk | TimeSet_EN) = 1'b1) begin disp_select <= time_disp_select; case(time_disp_select) 6'b: Data <= hour1; 6'b: Data <= hour0; 6'b: Data <= minute1; 6'b: Data <= minute0; 6'b: Data

9、<= second1; 6'b: Data <= second0; default: Data <= 4'b0; endcase end顯示譯碼數(shù)據(jù)段主要程序如下: case(Data) 4'b0000: disp_data<=7'b; 4'b0001: disp_data<=7'b; 4'b0010: disp_data<=7'b; 4'b0011: disp_data<=7'b; 4'b0100: disp_data<=7'b; 4'b01

10、01: disp_data<=7'b; 4'b0110: disp_data<=7'b; 4'b0111: disp_data<=7'b; 4'b1000: disp_data<=7'b; 4'b1001: disp_data<=7'b; default: disp_data<=7'b0; endcase 顯示譯碼程序說明了0到9十個數(shù)在7段數(shù)碼管中所對應(yīng)的值,在case語句里面最重要的是一定不能忘了default,否則仿真會發(fā)生所不希望看到的結(jié)果。下圖13為鬧鐘設(shè)置使能有效時仿

11、真結(jié)果。 2.2 流程圖的設(shè)計與實現(xiàn) 1.數(shù)字鐘數(shù)字鐘主體小時計數(shù)器分計數(shù)器秒計數(shù)器24進制計數(shù)器60進制計數(shù)器6進制計數(shù)器10進制計數(shù)器Zox=0(上午)Zox=1(下午)2. 12小時數(shù)字時鐘整體12小時數(shù)字鐘顯 示時鐘時間數(shù)值 時間的校驗第3章 程序調(diào)試與結(jié)果測試3.1 程序調(diào)試1、 Error (10170): Verilog HDL syntax error at a.v(65) near text "always" expecting "end" 忘記在begin之后加end結(jié)束語2、 Error (10161): Verilog HDL e

12、rror at a.v(165): object "Dat" is not declared 在程序開始Dat忘記標記和定義3、 Error (10170): Verilog HDL syntax error at Time.v(49) near text "else" expecting "endmodule" 程序后面沒加"endmodule"4、 Error (10170): Verilog HDL syntax error at Time.v(56) near text "<="

13、expecting ".", or an identifier 把“<=”改為“=”3.2 程序測試及結(jié)果分析1. 從圖中可以看出當second0滿1010即10時被置為0000,而second1加1,滿足秒的低位滿十進一位的設(shè)置。2.從圖中可以看出,在第一個時鐘周期內(nèi),時間顯示位選信號time_disp_select的值為,此時應(yīng)執(zhí)行case語句的default,Data的值為0;在第二個時鐘周期內(nèi),time_disp_select的值為,此時對應(yīng)其最后一種狀態(tài),將second0的值賦給Data,即Data的值為0110,從圖中看,仿真結(jié)果正確,disp_data表

14、示的是將當前數(shù)據(jù)譯碼顯示之后七段數(shù)碼管的顯示,所以在第一個周期內(nèi)值為,表示值為0,與Data所表示的數(shù)對應(yīng)。依次類推,可將Data的值全部表示出來。3.從圖中可以看出,當只有Timeset_EN:時間設(shè)置使能信號有效時,其七段數(shù)碼管顯示結(jié)果,與數(shù)字鐘自動工作使能端的區(qū)別為鬧鐘設(shè)置使能端有效時只需對hour0、hour1、minute0和minute1進行設(shè)置,由于其同樣需要將值賦給disp_select,為了統(tǒng)一期間,其值也設(shè)為6位,其4個狀態(tài)分別為、和。其他與自動工作模式相同。參考文獻1張明.Verilog HDL實用教程.成都:電子科技大學(xué)出版社,1999 2齊洪喜,陸

15、穎.VHDL電路設(shè)計M.北京:清華大學(xué)出版社,2004 3江國強,李哲英.EDA技術(shù)與應(yīng)用M.北京:電子工業(yè)出版社,2004 4雷伏容.VHDL電路設(shè)計M.北京:清華大學(xué)出版社,2006 5曾繁泰,陳美金.VHDL程序設(shè)計M.北京:清華大學(xué)出版社,2000 6潘松,王國棟.VHDL實用教程.成都:電子科技大學(xué)出版社,2000 7趙雅興.FPGA原理、設(shè)計與應(yīng)用.天津:天津大學(xué)出版社,1998  8陳俊碩,劉景林,張金萍.基于FPGA的直流電機PWM控制器設(shè)計J.微電機2009(10) 9盧杰,賴毅.VHDL與數(shù)字電

16、路設(shè)計.北京:科學(xué)出版社,2001 10張昌凡,龍永紅,彭濤.可編程邏輯器件及VHDL設(shè)計技術(shù).廣州:華南工學(xué)院出版社,2001附 錄(源代碼) 源代碼: /timescale 1ns/1nsModule aa(clk,TimeSet_EN, SW1,i_SW2,zox,disp_select,hour1,hour0,minute1,minute0,second1,second0); input clk; input TimeSet_EN; /時間設(shè)置使能信號 input SW1; input i_SW2; output zox; /上下午指示模 output 5:0 disp_se

17、lect; output 3:0 hour1,hour0,minute1,minute0,second1,second0; reg 7:0 second,minute,hour; reg tun,mod,zox; wire r_SW2; reg 2:0 disp_drive; reg 6:0 time_disp_select; reg 6:0 disp_select; reg 3:0 Data,hour1,hour0,minute1,minute0,second1,second0; reg 6:0 disp_data; reg mt,nt; initial begin tun=0; mod=0

18、; zox=0; hour=0; minute=0; second=0; disp_drive=3'b000; end assign r_SW2=i_SW2;/ /秒鐘計時器 always (posedge clk) /上升沿觸發(fā) begin if(r_SW2=1'b1) begin if(disp_drive=3'b110) second<=0; tun<=0; end else if(second=8'h59) begin second<=0; tun<=1; end else begin if(second3:0=9) begin

19、second3:0<=0; second7:4<=second7:4+1; end else begin second3:0<=second3:0+1; end tun<=0; end second1<=second7:4; second0<=second3:0; end/ /分鐘計時器always (posedge tun) /上升沿觸發(fā) begin if(r_SW2=1'b1) begin case(disp_drive) 3'b010: begin /分的高位 if(minute7:4<5) minute7:4<=minut

20、e7:4 + 1; else minute7:4<=0; end 3'b011: begin if(minute3:0< 9) minute3:0<=minute3:0+1; else minute3:0<=0; end default: begin end endcase mod<=0; end else if(minute=8'h59) begin minute<=0; mod<=1; end else begin if(minute3:0=9) begin minute3:0<=0; minute7:4<=minute

21、7:4+1; end else begin minute3:0<=minute3:0+1; end mod<=0; end minute1<=minute7:4; minute0<=minute3:0; end/ /時鐘計時器always (posedge mod ) /上升沿觸發(fā)begin if(r_SW2=1'b1) begin case(disp_drive) 3'b000: begin if(hour7:4=0) hour7:4<= hour7:4+1; else begin hour7:4<= 0; if(zox=0) zox<

22、;=1; else zox<=0; end end 3'b001: begin /小時的低位 if(hour3:0<1) hour3:0<= hour3:0 +1; else hour3:0<=0; end default: begin end endcase end else begin if(hour=8'h11) begin hour<=0; if(zox=0) zox<=1; else zox<=0; end else hour3:0<=hour3:0+1; end hour1<=hour7:4; hour0<

23、=hour3:0; end/ /時間設(shè)置always (posedge SW1) /手動設(shè)置使能begin if(TimeSet_EN = 1'b1) begin if(disp_drive <3'b101) disp_drive <= disp_drive + 3'b1; else disp_drive <= 3'b000; endend/ /時鐘顯示 always (clk, TimeSet_EN,time_disp_select, disp_select,hour1,hour0,minute1,minute0,second1,second

24、0) begin /時鐘,秒表顯示 if(clk | TimeSet_EN) = 1'b1) begin /時鐘,秒表顯示 if(clk | TimeSet_EN = 1'b1) begin disp_select <= time_disp_select; case(time_disp_select) 6'b: Data <= hour1; 6'b: Data <= hour0; 6'b: Data <= minute1; 6'b: Data <= minute0; 6'b: Data <= second1; 6'b: Data <= second0; default: Data <= 4'b0; endcase end case(Data) /顯示數(shù)據(jù)譯碼 4'b0000: disp_data <= 7'b; 4'b00

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論