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

下載本文檔

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

文檔簡介

1、精選文檔沈陽航空航天高校 課課 程程 設(shè)設(shè) 計計 報報 告告課程設(shè)計名稱:計算機(jī)組成原理課程設(shè)計計算機(jī)組成原理課程設(shè)計課程設(shè)計題目:12 小時數(shù)字鐘電路設(shè)計與實現(xiàn)小時數(shù)字鐘電路設(shè)計與實現(xiàn)院(系):計算機(jī)學(xué)院專 業(yè):計算機(jī)科學(xué)與技術(shù)班 級:34010104學(xué) 號:2013040101164姓 名:指導(dǎo)老師:胡光元完成日期:2016 年 1月 13 日精選文檔目目 錄錄第第 1 章章 總體設(shè)計方案總體設(shè)計方案.21.1 設(shè)計原理.21.2 設(shè)計思路.21.3 設(shè)計環(huán)境.2第第 2 章章 具體設(shè)計方案具體設(shè)計方案.22.1 算法與程序的設(shè)計與實現(xiàn).32.2 流程圖的設(shè)計與實現(xiàn).4第第 3 章章 程序

2、調(diào)試與結(jié)果測試程序調(diào)試與結(jié)果測試.73.1 程序調(diào)試.7列舉出調(diào)試過程中存在的問題.73.2 程序測試及結(jié)果分析.7參考文獻(xiàn)參考文獻(xiàn).9附附 錄(源代碼)錄(源代碼).10精選文檔第 1 章 總體設(shè)計方案1.1設(shè)計原理設(shè)計原理 通過 Verilog 語言,編寫 12 小時數(shù)字鐘電路設(shè)計與實現(xiàn)的 Verilog 程序,一般的做法是底層文件用 verilog 寫代碼表示,頂層用寫的代碼生成的原理圖文件鏈接組成,最終在加上輸入輸出端口。接受自上而下的方法,頂層設(shè)計接受原理圖設(shè)計輸入的方式。1.2設(shè)計思設(shè)計思路路 1.實時數(shù)字鐘顯示功能,即時、分、秒的正常顯示模式,并且在此基礎(chǔ)上增加上,下午顯示。 2

3、.手動校準(zhǔn)。按動方式鍵,將電路置于校時狀態(tài),則計時電路可用手動方式校準(zhǔn),每按一下校時鍵,時計數(shù)器加 1;按動方式鍵,將電路置于校分狀態(tài),以同樣方式手動校分。1.3設(shè)計環(huán)境設(shè)計環(huán)境(1)硬件環(huán)境)硬件環(huán)境 偉福偉福 COP2000 型計算機(jī)組成原理試驗儀型計算機(jī)組成原理試驗儀COP2000 計算機(jī)組成原理試驗系統(tǒng)由 COP2000 集成調(diào)試軟件集成調(diào)試軟件COP2000 集成開發(fā)環(huán)境是為.(2)EDA 環(huán)境環(huán)境 Xilinx foundation f3.1 設(shè)計軟件設(shè)計軟件Xilinx foundation f3.1 是 Xilinx 公司的可編程期間.精選文檔第 2 章 具體設(shè)計方案2.1 算

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

5、)分鐘鐘計時器分鐘鐘計時器 分鐘計時器由于秒計數(shù)器為 12 進(jìn)制計數(shù)器,示例說明其編程思想。其中秒計數(shù)器模塊在程序中為 always (posedge mod )的程序段,由分析得小時計數(shù)器由一個二進(jìn)制計數(shù)器與一個三進(jìn)制計數(shù)器組成,程序中有 hour0 表示秒計數(shù)器低位即二進(jìn)制計數(shù)器,hour1 表示秒計數(shù)器的高位為一個三進(jìn)制計數(shù)器。Mod 為時鐘信號,來自分鐘計時模塊的 mod,時鐘周期 360(S),當(dāng)?shù)臀?hour0 滿 3 時,自動進(jìn)一位,即 hour1 自動進(jìn)位。hour1,hour1 位寬均為 4 位 reg 型變量。(3)小時計時器小時計時器 小時計時器同秒鐘計時器其中小時計數(shù)器

6、模塊在程序中為 always (posedge tun)的程序段,分鐘計時器的低位、高位分別由 minute0、minute1 表示,但分鐘計時器模塊的敏感信號為“posedge tun”時鐘信號,“tun”的產(chǎn)生自秒鐘計時器,可知其產(chǎn)生的時鐘信號為 1(S),每觸發(fā)一次則分鐘計數(shù)器計數(shù)加 1 一次,同時產(chǎn)生 mod 的時鐘信號,同時由于做的是 12 小時數(shù)字鐘電路,全部 zox 表示的是顯示上下午,當(dāng)小時計數(shù)器滿 12 時 zox 變化一次,其中 zox=0 表示的是上午,zox=1 表示的是下午。精選文檔(4)時間設(shè)置時間設(shè)置 時間設(shè)置模塊實現(xiàn)的功能為通過按鍵調(diào)整可以對當(dāng)前時間進(jìn)行手動把握

7、。其主要是在時間設(shè)置使能端有效地狀況下通過 SW1 和 i_SW2 兩個按鍵對數(shù)字鐘的小時和分鐘數(shù)進(jìn)行調(diào)整。Disp_drive 為設(shè)置中的顯示把握,即通過 SW1 對位的調(diào)整,Disp_drive 隨之變化。i_SW2 為對每一位上的數(shù)字在其范圍內(nèi)進(jìn)行加 1 調(diào)整。Disp_drive 取值 000、001、010 和 011 分別對應(yīng) hour1、hour0、minute1 和minute0 的設(shè)置,其中的加 1 設(shè)置在各個計時器模塊,這樣做的緣由是防止兩個“always”進(jìn)程對同一個變量賦值發(fā)生錯誤。(5)把握顯示模塊)把握顯示模塊 把握顯示模塊在整個數(shù)字鐘的設(shè)計中起著格外重要的作用。它

8、的作用是將時間等數(shù)據(jù)用數(shù)碼管顯示的把握和數(shù)據(jù)傳輸模塊,包括數(shù)據(jù)的傳輸以及 BCD 碼譯碼等。通過幾個把握使能端將其不同功能時的時間在數(shù)碼管上顯示出來。本模塊中端口定義比較多,下面是其所對應(yīng)的功能。clk:時間自動模式工作使能信號;Timeset_EN:時間設(shè)置使能信號;Time_disp_select:時間顯示位選信號;Disp_select:顯示位選信號輸出;程序設(shè)計中,各使能端信號為 1 表示執(zhí)行該功能,以時間自動工作模式使能信號有效為例說明,當(dāng) Time_EN 為 1 時,首先將時間顯示位選信號 isp_select的值賦給顯示位選信號 disp_select 輸出,定義 time_di

9、sp_select 的狀態(tài)一共有 6 個,分別為 100000、010000、001000、000100、000010 和 000001,其在各狀態(tài)下分別依次表示將、hour0、hour1、minute0、minute1、second0 和second1 的值賦給 data,用 case 語句來實現(xiàn),其實現(xiàn)語句如下:always(clk,TimeSet_EN,time_disp_select,disp_select,hour1,hour0,minute1,minute0,second1,second0) begin /時鐘,秒表顯示 if(clk | TimeSet_EN) = 1b1)精選文

10、檔 begin disp_select = time_disp_select; case(time_disp_select) 6b100000: Data = hour1; 6b010000: Data = hour0; 6b001000: Data = minute1; 6b000100: Data = minute0; 6b000010: Data = second1; 6b000001: Data = second0; default: Data = 4b0; endcase end顯示譯碼數(shù)據(jù)段主要程序如下: case(Data) 4b0000: disp_data=7b1111110

11、; 4b0001: disp_data=7b0110000; 4b0010: disp_data=7b1101101; 4b0011: disp_data=7b1111001; 4b0100: disp_data=7b0110011; 4b0101: disp_data=7b1011011; 4b0110: disp_data=7b1011111; 4b0111: disp_data=7b1110000; 4b1000: disp_data=7b1111111; 4b1001: disp_data=7b1111011; default: disp_data=7b0; endcase 顯示譯碼程

12、序說明白 0 到 9 十個數(shù)在 7 段數(shù)碼管中所對應(yīng)的值,在 case語句里面最重要的是肯定不能忘了 default,否則仿真會發(fā)生所不期望看到的精選文檔結(jié)果。下圖 13 為鬧鐘設(shè)置使能有效時仿真結(jié)果。 2.2 流程圖的設(shè)計與實現(xiàn)流程圖的設(shè)計與實現(xiàn) 1.數(shù)字鐘數(shù)字鐘2. 12 小時數(shù)字時鐘整體小時數(shù)字時鐘整體數(shù)字鐘主體小時計數(shù)器分計數(shù)器秒計數(shù)器24 進(jìn)制計數(shù)器60 進(jìn)制計數(shù)器6 進(jìn)制計數(shù)器10 進(jìn)制計數(shù)器Zox=0(上午)Zox=1(下午)12 小時數(shù)字鐘顯 示時鐘時間數(shù)值 時間的校驗精選文檔第 3 章 程序調(diào)試與結(jié)果測試3.1 程序調(diào)試程序調(diào)試1、Error (10170): Verilog

13、 HDL syntax error at a.v(65) near text always; expecting end 遺忘在 begin 之后加 end 結(jié)束語2、Error (10161): Verilog HDL error at a.v(165): object Dat is not declared 在程序開頭 Dat 遺忘標(biāo)記和定義3、Error (10170): Verilog HDL syntax error at Time.v(49) near text else; expecting endmodule 程序后面沒加endmodule4、Error (10170): Ve

14、rilog HDL syntax error at Time.v(56) near text =; expecting ., or an identifier 把“=”改為“=”3.2 程序測試及結(jié)果分析程序測試及結(jié)果分析1. 從圖中可以看出當(dāng) second0 滿 1010 即 10 時被置為 0000,而 second1 加1,滿足秒的低位滿十進(jìn)一位的設(shè)置。2.精選文檔從圖中可以看出,在第一個時鐘周期內(nèi),時間顯示位選信號time_disp_select 的值為 000000,此時應(yīng)執(zhí)行 case 語句的 default,Data 的值為 0;在其次個時鐘周期內(nèi),time_disp_selec

15、t 的值為 000001,此時對應(yīng)其最終一種狀態(tài),將 second0 的值賦給 Data,即 Data 的值為 0110,從圖中看,仿真結(jié)果正確,disp_data 表示的是將當(dāng)前數(shù)據(jù)譯碼顯示之后七段數(shù)碼管的顯示,所以在第一個周期內(nèi)值為 1111110,表示值為 0,與 Data 所表示的數(shù)對應(yīng)。依次類推,可將 Data 的值全部表示出來。3.從圖中可以看出,當(dāng)只有 Timeset_EN:時間設(shè)置使能信號有效時,其七段數(shù)碼管顯示結(jié)果,與數(shù)字鐘自動工作使能端的區(qū)分為鬧鐘設(shè)置使能端有效時只需對hour0、hour1、minute0 和 minute1 進(jìn)行設(shè)置,由于其同樣需要將值賦給disp_se

16、lect,為了統(tǒng)一期間,其值也設(shè)為 6 位,其 4 個狀態(tài)分別為100000、010000、001000 和 000100。其他與自動工作模式相同。精選文檔參考文獻(xiàn)參考文獻(xiàn)1張明張明.Verilog HDL 有用教程有用教程.成都:電子科技高校出版社,成都:電子科技高校出版社,1999 2齊洪喜,陸穎齊洪喜,陸穎.VHDL 電路設(shè)計電路設(shè)計M.北京:清華高校出版社,北京:清華高校出版社,2004 3江國強(qiáng),李哲英江國強(qiáng),李哲英.EDA 技術(shù)與應(yīng)用技術(shù)與應(yīng)用M.北京:電子工業(yè)出版社,北京:電子工業(yè)出版社,2004 4雷伏容雷伏容.VHDL 電路設(shè)計電路設(shè)計M.北京:清華高校出版社,北京:清華高校

17、出版社,2006 5曾繁泰,陳美金曾繁泰,陳美金.VHDL 程序設(shè)計程序設(shè)計M.北京:清華高校出版社,北京:清華高校出版社,2000 6潘松,王國棟潘松,王國棟.VHDL 有用教程有用教程.成都:電子科技高校出版社,成都:電子科技高校出版社,2000 7趙雅興趙雅興.FPGA 原理、設(shè)計與應(yīng)用原理、設(shè)計與應(yīng)用.天津:天津高校出版社,天津:天津高校出版社,1998 8陳俊碩陳俊碩,劉景林劉景林,張金萍張金萍.基于基于 FPGA 的直流電機(jī)的直流電機(jī) PWM 把握器設(shè)計把握器設(shè)計J.微電機(jī)微電機(jī) 2009(10) 9盧杰,賴毅盧杰,賴毅.VHDL 與數(shù)字電路設(shè)計與數(shù)字電路設(shè)計.北京:科學(xué)出版社,北

18、京:科學(xué)出版社,2001 10張昌凡,龍永紅,彭濤張昌凡,龍永紅,彭濤.可編程規(guī)律器件及可編程規(guī)律器件及 VHDL 設(shè)計技術(shù)設(shè)計技術(shù).廣州:華南工學(xué)院出版社,廣州:華南工學(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; outp

19、ut zox; /上下午指示模 output 5:0 disp_select; 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

20、 mt,nt; initial begin tun=0; mod=0; zox=0; hour=0; minute=0; second=0; disp_drive=3b000; end assign r_SW2=i_SW2;/ /秒鐘計時器 always (posedge clk) /上升沿觸發(fā)精選文檔 begin if(r_SW2=1b1) begin if(disp_drive=3b110) second=0; tun=0; end else if(second=8h59) begin second=0; tun=1; end else begin if(second3:0=9) begi

21、n 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=1b1) begin case(disp_drive) 3b010: begin /分的高位 if(minute7:45) minute7:4=minute7:4 + 1; else minute7:4=0; end 3b011: b

22、egin 精選文檔 if(minute3:0 9) minute3:0=minute3:0+1; else minute3:0=0; end default: begin end endcase mod=0; end else if(minute=8h59) begin minute=0; mod=1; end else begin if(minute3:0=9) begin minute3:0=0; minute7:4=minute7:4+1; end else begin minute3:0=minute3:0+1; end mod=0; end minute1=minute7:4; mi

23、nute0=minute3:0; end/ /時鐘計時器always (posedge mod ) /上升沿觸發(fā)begin if(r_SW2=1b1) begin case(disp_drive) 3b000: begin if(hour7:4=0)精選文檔 hour7:4= hour7:4+1; else begin hour7:4= 0; if(zox=0) zox=1; else zox=0; end end 3b001: begin /小時的低位 if(hour3:01) hour3:0= hour3:0 +1; else hour3:0=0; end default: begin e

24、nd endcase end else begin if(hour=8h11) begin hour=0; if(zox=0) zox=1; else zox=0; end else hour3:0=hour3:0+1; end hour1=hour7:4; hour0=hour3:0; end/ /時間設(shè)置always (posedge SW1) /手動設(shè)置使能begin if(TimeSet_EN = 1b1) begin if(disp_drive 3b101) disp_drive = disp_drive + 3b1;精選文檔 else disp_drive = 3b000; end

25、end/ /時鐘顯示 always (clk, TimeSet_EN,time_disp_select, disp_select,hour1,hour0,minute1,minute0,second1,second0) begin /時鐘,秒表顯示 if(clk | TimeSet_EN) = 1b1) begin /時鐘,秒表顯示 if(clk | TimeSet_EN = 1b1) begin disp_select = time_disp_select; case(time_disp_select) 6b100000: Data = hour1; 6b010000: Data = hour0; 6b001000: Data = minute1; 6b000100: Data = minute0; 6b000010: Data = second1; 6b000001: Data = second0; d

溫馨提示

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

最新文檔

評論

0/150

提交評論