![12小時數(shù)字鐘電路設計_第1頁](http://file4.renrendoc.com/view4/M02/2C/0B/wKhkGGaL0EqAMYxfAACtbwBEdEE857.jpg)
![12小時數(shù)字鐘電路設計_第2頁](http://file4.renrendoc.com/view4/M02/2C/0B/wKhkGGaL0EqAMYxfAACtbwBEdEE8572.jpg)
![12小時數(shù)字鐘電路設計_第3頁](http://file4.renrendoc.com/view4/M02/2C/0B/wKhkGGaL0EqAMYxfAACtbwBEdEE8573.jpg)
![12小時數(shù)字鐘電路設計_第4頁](http://file4.renrendoc.com/view4/M02/2C/0B/wKhkGGaL0EqAMYxfAACtbwBEdEE8574.jpg)
![12小時數(shù)字鐘電路設計_第5頁](http://file4.renrendoc.com/view4/M02/2C/0B/wKhkGGaL0EqAMYxfAACtbwBEdEE8575.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
沈陽航空航天大學課程設計報告課程設計名稱:計算機組成原理課程設計課程設計題目:12小時數(shù)字鐘電路設計與實現(xiàn)院(系):計算機學院專業(yè):計算機科學與技術班級:34010104學號:4姓名:指導教師:胡光元完畢日期:2023年1月13日目錄657第1章總體設計方案 2318701.1設計原理 2130351.2設計思緒 2300781.3設計環(huán)境 217636第2章具體設計方案 2305272.1算法與程序的設計與實現(xiàn) 332532.2流程圖的設計與實現(xiàn) 423599第3章程序調試與結果測試 7158373.1程序調試 726994列舉出調試過程中存在的問題 7291943.2程序測試及結果分析 732426參考文獻 919518附錄(源代碼) 10第1章總體設計方案設計原理通過Verilog語言,編寫12小時數(shù)字鐘電路設計與實現(xiàn)的Verilog程序,一般的做法是底層文獻用verilog寫代碼表達,頂層用寫的代碼生成的原理圖文獻鏈接組成,最后在加上輸入輸出端口。采用自上而下的方法,頂層設計采用原理圖設計輸入的方式。設計思緒1.實時數(shù)字鐘顯示功能,即時、分、秒的正常顯示模式,并且在此基礎上增長上,下午顯示。2.手動校準。按動方式鍵,將電路置于校時狀態(tài),則計時電路可用手動方式校準,每按一下校時鍵,時計數(shù)器加1;按動方式鍵,將電路置于校分狀態(tài),以同樣方式手動校分。設計環(huán)境(1)硬件環(huán)境?偉福COP2023型計算機組成原理實驗儀COP2023計算機組成原理實驗系統(tǒng)由………?COP2023集成調試軟件COP2023集成開發(fā)環(huán)境是為………….(2)EDA環(huán)境?Xilinxfoundationf3.1設計軟件Xilinxfoundationf3.1是Xilinx公司的可編程期間………….第2章具體設計方案2.1算法與程序的設計與實現(xiàn)(1)秒鐘計時器由于秒計數(shù)器為60進制計數(shù)器,所以以秒計數(shù)器作為示例說明其編程思想。其中秒計數(shù)器模塊在程序中為always@(posedgeclk)的程序段,由上面分析得秒計數(shù)器由一個十進制計數(shù)器與一個六進制計數(shù)器組成,程序中有second0表達秒計數(shù)器低位即10進制計數(shù)器,second1表達秒計數(shù)器的高位為一個六進制計數(shù)器。clk為時鐘信號,時鐘周期1/60(S),當?shù)臀籹econd0滿10時,自動進一位,即second1自動進位。Second0,second1位寬均為4位reg型變量。分鐘鐘計時器分鐘計時器由于秒計數(shù)器為12進制計數(shù)器,示例說明其編程思想。其中秒計數(shù)器模塊在程序中為always@(posedgemod)的程序段,由分析得小時計數(shù)器由一個二進制計數(shù)器與一個三進制計數(shù)器組成,程序中有hour0表達秒計數(shù)器低位即二進制計數(shù)器,hour1表達秒計數(shù)器的高位為一個三進制計數(shù)器。Mod為時鐘信號,來自分鐘計時模塊的mod,時鐘周期360(S),當?shù)臀籬our0滿3時,自動進一位,即hour1自動進位。hour1,hour1位寬均為4位reg型變量。小時計時器小時計時器同秒鐘計時器其中小時計數(shù)器模塊在程序中為always@(posedgetun)的程序段,分鐘計時器的低位、高位分別由minute0、minute1表達,但分鐘計時器模塊的敏感信號為“posedgetun”時鐘信號,“tun”的產(chǎn)生自秒鐘計時器,可知其產(chǎn)生的時鐘信號為1(S),每觸發(fā)一次則分鐘計數(shù)器計數(shù)加1一次,同時產(chǎn)生mod的時鐘信號,同時由于做的是12小時數(shù)字鐘電路,所有zox表達的是顯示上下午,當小時計數(shù)器滿12時zox變化一次,其中zox=0表達的是上午,zox=1表達的是下午。時間設立時間設立模塊實現(xiàn)的功能為通過按鍵調節(jié)可以對當前時間進行手動控制。其重要是在時間設立使能端有效地情況下通過SW1和i_SW2兩個按鍵對數(shù)字鐘的小時和分鐘數(shù)進行調節(jié)。Disp_drive為設立中的顯示控制,即通過SW1對位的調整,Disp_drive隨之變化。i_SW2為對每一位上的數(shù)字在其范圍內(nèi)進行加1調節(jié)。Disp_drive取值000、001、010和011分別相應hour1、hour0、minute1和minute0的設立,其中的加1設立在各個計時器模塊,這樣做的因素是防止兩個“always”進程對同一個變量賦值發(fā)生錯誤。(5)控制顯示模塊控制顯示模塊在整個數(shù)字鐘的設計中起著非常重要的作用。它的作用是將時間等數(shù)據(jù)用數(shù)碼管顯示的控制和數(shù)據(jù)傳輸模塊,涉及數(shù)據(jù)的傳輸以及BCD碼譯碼等。通過幾個控制使能端將其不同功能時的時間在數(shù)碼管上顯示出來。本模塊中端口定義比較多,下面是其所相應的功能。clk:時間自動模式工作使能信號;Timeset_EN:時間設立使能信號;Time_disp_select:時間顯示位選信號;Disp_select:顯示位選信號輸出;程序設計中,各使能端信號為1表達執(zhí)行該功能,以時間自動工作模式使能信號有效為例說明,當Time_EN為1時,一方面將時間顯示位選信號isp_select的值賦給顯示位選信號disp_select輸出,定義time_disp_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)==1'b1)begindisp_select<=time_disp_select;case(time_disp_select)6'b100000:Data<=hour1;6'b010000:Data<=hour0;6'b001000:Data<=minute1;6'b000100:Data<=minute0;6'b000010:Data<=second1;6'b000001:Data<=second0;default:Data<=4'b0;endcaseend顯示譯碼數(shù)據(jù)段重要程序如下:case(Data)4'b0000:disp_data<=7'b1111110;4'b0001:disp_data<=7'b0110000;4'b0010:disp_data<=7'b1101101;4'b0011:disp_data<=7'b1111001;4'b0100:disp_data<=7'b0110011;4'b0101:disp_data<=7'b1011011;4'b0110:disp_data<=7'b1011111;4'b0111:disp_data<=7'b1110000;4'b1000:disp_data<=7'b1111111;4'b1001:disp_data<=7'b1111011;default:disp_data<=7'b0;endcase顯示譯碼程序說明了0到9十個數(shù)在7段數(shù)碼管中所相應的值,在case語句里面最重要的是一定不能忘了default,否則仿真會發(fā)生所不希望看到的結果。下圖13為鬧鐘設立使能有效時仿真結果。2.2流程圖的設計與實現(xiàn)1.數(shù)字鐘數(shù)數(shù)字鐘主體小時計數(shù)器分計數(shù)器秒計數(shù)器24進制計數(shù)器60進制計數(shù)器6進制計數(shù)器10進制計數(shù)器Zox=0(上午)Zox=1(下午)12小時數(shù)字時鐘整體12小時數(shù)字鐘12小時數(shù)字鐘顯示時鐘時間數(shù)值時間的校驗第3章程序調試與結果測試3.1程序調試Error(10170):VerilogHDLsyntaxerrorata.v(65)neartext"always";expecting"end"忘掉在begin之后加end結束語Error(10161):VerilogHDLerrorata.v(165):object"Dat"isnotdeclared在程序開始Dat忘掉標記和定義Error(10170):VerilogHDLsyntaxerroratTime.v(49)neartext"else";expecting"endmodule"程序后面沒加"endmodule"Error(10170):VerilogHDLsyntaxerroratTime.v(56)neartext"<=";expecting".",oranidentifier把“<=”改為“=”3.2程序測試及結果分析1.從圖中可以看出當second0滿1010即10時被置為0000,而second1加1,滿足秒的低位滿十進一位的設立。2.從圖中可以看出,在第一個時鐘周期內(nèi),時間顯示位選信號time_disp_select的值為000000,此時應執(zhí)行case語句的default,Data的值為0;在第二個時鐘周期內(nèi),time_disp_select的值為000001,此時相應其最后一種狀態(tài),將second0的值賦給Data,即Data的值為0110,從圖中看,仿真結果對的,disp_data表達的是將當前數(shù)據(jù)譯碼顯示之后七段數(shù)碼管的顯示,所以在第一個周期內(nèi)值為1111110,表達值為0,與Data所表達的數(shù)相應。依次類推,可將Data的值所有表達出來。3.從圖中可以看出,當只有Timeset_EN:時間設立使能信號有效時,其七段數(shù)碼管顯示結果,與數(shù)字鐘自動工作使能端的區(qū)別為鬧鐘設立使能端有效時只需對hour0、hour1、minute0和minute1進行設立,由于其同樣需要將值賦給disp_select,為了統(tǒng)一期間,其值也設為6位,其4個狀態(tài)分別為100000、010000、001000和000100。其他與自動工作模式相同。參考文獻[1]張明.Verilog
HDL實用教程.成都:電子科技大學出版社,1999
[2]齊洪喜,陸穎.VHDL電路設計[M].北京:清華大學出版社,2023
[3]江國強,李哲英.EDA技術與應用[M].北京:電子工業(yè)出版社,2023
[4]雷伏容.VHDL電路設計[M].北京:清華大學出版社,2023
[5]曾繁泰,陳美金.VHDL程序設計[M].北京:清華大學出版社,2023
[6]潘松,王國棟.VHDL實用教程.成都:電子科技大學出版社,2023
[7]趙雅興.FPGA原理、設計與應用.天津:天津大學出版社,1998
[8]陳俊碩,劉景林,張金萍.基于FPGA的直流電機PWM控制器設計[J].微電機2023(10)
[9]盧杰,賴毅.VHDL與數(shù)字電路設計.北京:科學出版社,2023
[10]張昌凡,龍永紅,彭濤.可編程邏輯器件及VHDL設計技術.廣州:華南工學院出版社,2023
附錄(源代碼)源代碼:///////////////////////////`timescale1ns/1nsModuleaa(clk,TimeSet_EN,SW1,i_SW2,zox,disp_select,hour1,hour0,minute1,minute0,second1,second0);inputclk;inputTimeSet_EN;//時間設立使能信號inputSW1;inputi_SW2;outputzox;//上下午指示模output[5:0]disp_select;output[3:0]hour1,hour0,minute1,minute0,second1,second0;reg[7:0]second,minute,hour;regtun,mod,zox;wirer_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;regmt,nt;initialbegintun=0;mod=0;zox=0;hour=0;minute=0;second=0;disp_drive=3'b000;endassignr_SW2=i_SW2;////////////////////////////////////////////////////////////////秒鐘計時器always@(posedgeclk)//上升沿觸發(fā)beginif(r_SW2==1'b1)beginif(disp_drive==3'b110) second<=0; tun<=0;endelseif(second==8'h59)begin second<=0;tun<=1; endelsebeginif(second[3:0]==9)begin second[3:0]<=0; second[7:4]<=second[7:4]+1; endelsebeginsecond[3:0]<=second[3:0]+1; end tun<=0; end second1<=second[7:4];second0<=second[3:0];end////////////////////////////////////////////////////////////////分鐘計時器always@(posedgetun)//上升沿觸發(fā)beginif(r_SW2==1'b1)begincase(disp_drive)3'b010:begin//分的高位 if(minute[7:4]<5) minute[7:4]<=minute[7:4]+1; else minute[7:4]<=0; end 3'b011:begin if(minute[3:0]<9) minute[3:0]<=minute[3:0]+1; else minute[3:0]<=0; end default:beginendendcasemod<=0;endelseif(minute==8'h59)begin minute<=0;mod<=1; endelsebeginif(minute[3:0]==9)begin minute[3:0]<=0; minute[7:4]<=minute[7:4]+1; endelsebegin minute[3:0]<=minute[3:0]+1;endmod<=0; end minute1<=minute[7:4];minute0<=minute[3:0];end//////////////////////////////////////////////////////////////////////////////////////////時鐘計時器always@(posedgemod)//上升沿觸發(fā)beginif(r_SW2==1'b1)begincase(disp_drive)3'b000:begin if(hour[7:4]==0) hour[7:4]<=hour[7:4]+1; elsebegin hour[7:4]<=0; if(zox==0) zox<=1; else zox<=0; end end 3'b001:begin//小時的低位 if(hour[3:0]<1) hour[3:0]<=hour[3:0]+1; else hour[3:0]<=0; end default:beginendendcaseendelsebeginif(hour==8'h11)begin hour<=0;if(zox==0) zox<=1; elsezox<=0; endelse hour[3:0]<=hour[3:0]+1; end hour1<=hour[7:4]; hour0<=hour[3:0];end//////////////////////////////////////////////////////////////////////////////////////////時間設立always@(posedgeSW1)//手動設立使能 beginif(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,second0)begin//時鐘,秒表顯示if((clk||TimeSet_EN)==1'b1)begin//時鐘,秒表顯示if(clk||TimeSet_EN==1'b1)begindisp_select<=time_disp_select;case(time_disp_select)6'b100000:Data<=hour1;6'b010000:Data<=hour0;6'b001000:Data<=minute1;6'b000100:Data<=minute0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年銅材熱擠壓件項目投資可行性研究分析報告
- 2025年中國丙谷胺片行業(yè)市場全景評估及投資前景展望報告
- 培養(yǎng)復合型人才的政策支持與路徑
- 農(nóng)村耕地轉讓合同范例
- 2025年度集裝箱運輸合同環(huán)保責任履行規(guī)范
- 修建墳墓合同范本
- 農(nóng)村股權轉讓合同范例
- 倉儲物流顧問合同范例
- 公司勞動聘用合同范本
- 一般農(nóng)村房屋租賃合同范本
- 醫(yī)院感染及其危害
- 2025年三人合伙投資合作開店合同模板(三篇)
- 安徽省招生考試數(shù)學試卷
- 2024全國各省高考詩歌鑒賞真題及解析
- 高考日語閱讀理解練習2篇-高考日語復習
- 印刷基礎知識培訓資料
- NB/T 11536-2024煤礦帶壓開采底板井下注漿加固改造技術規(guī)范
- 2024-2025學年人教版五年級(上)英語寒假作業(yè)(一)
- 【課件】九年級化學下冊(人教版2024)-【新教材解讀】義務教育教材內(nèi)容解讀課件
- GA/T 761-2024停車庫(場)安全管理系統(tǒng)技術要求
- 2025屆貴州省六盤水市第二中學高三適應性調研考試數(shù)學試題含解析
評論
0/150
提交評論