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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

9、sp_select 的狀態(tài)一共有 6 個(gè),分別為 100000、010000、001000、000100、000010 和 000001,其在各狀態(tài)下分別依次表示將、hour0、hour1、minute0、minute1、second0 和second1 的值賦給 data,用 case 語句來實(shí)現(xiàn),其實(shí)現(xiàn)語句如下:always(clk,TimeSet_EN,time_disp_select,disp_select,hour1,hour0,minute1,minute0,second1,second0) begin /時(shí)鐘,秒表顯示 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 十個(gè)數(shù)在 7 段數(shù)碼管中所對(duì)應(yīng)的值,在 case語句里面最重要的是肯定不能忘了 default,否則仿真會(huì)發(fā)生所不期望看到的精選文檔結(jié)果。下圖 13 為鬧鐘設(shè)置使能有效時(shí)仿真結(jié)果。 2.2 流程圖的設(shè)計(jì)與實(shí)現(xiàn)流程圖的設(shè)計(jì)與實(shí)現(xiàn) 1.數(shù)字鐘數(shù)字鐘2. 12 小時(shí)數(shù)字時(shí)鐘整體小時(shí)數(shù)字時(shí)鐘整體數(shù)字鐘主體小時(shí)計(jì)數(shù)器分計(jì)數(shù)器秒計(jì)數(shù)器24 進(jìn)制計(jì)數(shù)器60 進(jìn)制計(jì)數(shù)器6 進(jìn)制計(jì)數(shù)器10 進(jìn)制計(jì)數(shù)器Zox=0(上午)Zox=1(下午)12 小時(shí)數(shù)字鐘顯 示時(shí)鐘時(shí)間數(shù)值 時(shí)間的校驗(yàn)精選文檔第 3 章 程序調(diào)試與結(jié)果測(cè)試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 程序測(cè)試及結(jié)果分析程序測(cè)試及結(jié)果分析1. 從圖中可以看出當(dāng) second0 滿 1010 即 10 時(shí)被置為 0000,而 second1 加1,滿足秒的低位滿十進(jìn)一位的設(shè)置。2.精選文檔從圖中可以看出,在第一個(gè)時(shí)鐘周期內(nèi),時(shí)間顯示位選信號(hào)time_disp_select 的值為 000000,此時(shí)應(yīng)執(zhí)行 case 語句的 default,Data 的值為 0;在其次個(gè)時(shí)鐘周期內(nèi),time_disp_selec

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

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

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

18、京:科學(xué)出版社,2001 10張昌凡,龍永紅,彭濤張昌凡,龍永紅,彭濤.可編程規(guī)律器件及可編程規(guī)律器件及 VHDL 設(shè)計(jì)技術(shù)設(shè)計(jì)技術(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í)間設(shè)置使能信號(hào) 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;/ /秒鐘計(jì)時(shí)器 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/ /分鐘計(jì)時(shí)器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/ /時(shí)鐘計(jì)時(shí)器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 /小時(shí)的低位 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í)間設(shè)置always (posedge SW1) /手動(dòng)設(shè)置使能begin if(TimeSet_EN = 1b1) begin if(disp_drive 3b101) disp_drive = disp_drive + 3b1;精選文檔 else disp_drive = 3b000; end

25、end/ /時(shí)鐘顯示 always (clk, TimeSet_EN,time_disp_select, disp_select,hour1,hour0,minute1,minute0,second1,second0) begin /時(shí)鐘,秒表顯示 if(clk | TimeSet_EN) = 1b1) begin /時(shí)鐘,秒表顯示 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等.壓縮文件請(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)論