鐘表系統(tǒng)控制器設計_第1頁
鐘表系統(tǒng)控制器設計_第2頁
鐘表系統(tǒng)控制器設計_第3頁
鐘表系統(tǒng)控制器設計_第4頁
鐘表系統(tǒng)控制器設計_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

HUBEINORMALUNIVERSITYVerilog課程設計verilogCurriculumDesign所在院系教育信息與技術學院專業(yè)名稱電子信息工程班級1005題目鐘表系統(tǒng)控制器設計指導教師梁赫西成員宋凡完成時間2012.6.12一、 設計任務及要求:設計任務:鐘表系統(tǒng)控制器設計。要求:設計一個24小時計數(shù)系統(tǒng)的控制器.計時功能:每隔一分鐘計時一次,并在顯示屏上顯示當前時間?設置新的計時時間:通過數(shù)字鍵“0”~“9”輸入新的時間,然后按“time”鍵確認.利用modelsim、quartusii仿真綜合.指導教師簽名: 2012年6月12日二、 指導教師評語:指導教師簽名: 2012年6月12日三、成績驗收蓋章2012年6月12日鐘表系統(tǒng)控制器設計摘要:本系統(tǒng)由分頻器、計數(shù)器、譯碼器、譯碼器和校分電路組成,采用了中小規(guī)模集成芯片??傮w方案設計由主體電路和擴展電路兩大部分組成。其中主體電路完成數(shù)字鐘的基本功能,擴展電路完成數(shù)字計時器的擴展功能,進行了各單元設計,總體調(diào)試。多功能數(shù)字計時器可以完成0分00秒-9分59秒的計時功能,并在控制電路的作用下具有清零,調(diào)時,快進的功能。數(shù)字鐘的主體是計數(shù)器,它記錄并顯示接收到的秒脈沖個數(shù),其中秒和分為模60計數(shù)器小時是模24計數(shù)器分別產(chǎn)生3位BCD碼.BCD碼經(jīng)譯碼驅(qū)動后接數(shù)碼管現(xiàn)實電路.關鍵詞:FPGA;VerilogHDL;QuartusII;Verilog;modelsim設計要求與思路1.1設計要求設計一個24小時計數(shù)系統(tǒng)的控制器.計時功能:每隔一分鐘計時一次,并在顯示屏上顯示當前時間.設置新的計時時間:通過數(shù)字鍵“0”~“9”輸入新的時間,然后按“time”鍵確認.利用modelsim、quartusii仿真綜合.1.2設計思路繪制設計思路表格,及轉(zhuǎn)換狀態(tài)圖,如表一、圖1所示。表一鐘表系統(tǒng)控制器轉(zhuǎn)換表類別轉(zhuǎn)換所需時間顯示時間秒1s1s分鐘60s1m小時60m1h鐘表系統(tǒng)的控制以時間的轉(zhuǎn)化,與積累的過程設計而成!60s轉(zhuǎn)換成lm,60m轉(zhuǎn)換成1h。圖1全部狀態(tài)轉(zhuǎn)移示意圖1.3系統(tǒng)設計框圖系統(tǒng)主要分三個模塊實現(xiàn),分別是分頻模塊、計數(shù)模塊、譯碼顯示模塊。分頻模塊用來提供計時電路工作時鐘(1HZ)和數(shù)碼管動態(tài)顯示的掃描頻率(200HZ—500HZ),計數(shù)模塊是對1s信號源進行秒、段選來實現(xiàn)對譯碼后的計時信號進行動態(tài)顯示圖2系統(tǒng)設計圖詳細模塊設計2.1分頻模塊設計分頻模塊用于為系統(tǒng)的實現(xiàn)提供穩(wěn)定的工作頻率和計時信號源,要求產(chǎn)生兩路不同頻率的信號,分頻為1HZ頻率的信號作為計時模塊的信號源,200HZ的信號用于數(shù)碼管動態(tài)顯示的掃描頻率。定義變量并根據(jù)需要得到的分頻信號設定計數(shù)值,對該變量進行加或減計數(shù),每到達一次計數(shù)值點,將該變量清零或重置,并且對輸出信號取一次反,即可以得到所需的分頻信號。moduleclkgen(clock,clkdiv,clk500);inputclock;outputclkdiv;outputclk500;reg[31:0]counter1;regclkdiv;regclk500;reg[31:0]counter0;parameterC_COUNT0=25'd500_00_000;〃變量0用于產(chǎn)生1HZ的信號parameterC_C0UNT1=25'd100_000;〃變量1用于產(chǎn)生500HZ的信號/********產(chǎn)生1HZ頻率的信號always@(posedgeclock)beginif(counter0==0)begincounter0<=C_COUNT0;clkdiv<=~clkdiv;endelsecounte0<=counter0-1;end/********產(chǎn)生500HZ頻率的信號always@(posedgeclock)beginif(counter1==0)begincounter1<=C_COUNT1;clk500<=~clk500;endelsecounter1<=counter1-1;endendmodule仿真波形以4,分頻8分頻為例圖3分頻仿真圖2.2計時模塊設計

???二模塊功能為正常計時,即每秒鐘讀一次數(shù),秒表加1,秒計時滿60進1給分計時,分計時滿60進1給小時計時,小時計時滿24清零。從功能上講分別為模60計數(shù)器,模60計數(shù)器和模24???二一電路功能分析有三個計時器電路組成秒針進行60進制計數(shù)分針進行60進制計數(shù)小時進行24進制計數(shù)是是否復位否是否秒計數(shù)s是否達到最秒計數(shù)器s置0想分計數(shù)器輸出高脈沖是是否復位否是否秒計數(shù)s是否達到最秒計數(shù)器s置0想分計數(shù)器輸出高脈沖S_carry復位信號rst或輸入信號上升沿觸發(fā)clk秒計數(shù)器s加1圖4秒計數(shù)流程圖⑵ 復位信號clkdiv或進位信號s_carry上升沿觸發(fā)At為1正常計時控制信號atat為0否是否復位否分計數(shù)m

是否達到校時啟動是想分計數(shù)器輸出高脈沖m_carryAt為1正常計時控制信號atat為0否是否復位否分計數(shù)m

是否達到校時啟動是想分計數(shù)器輸出高脈沖m_carry制時分m為0m置0是秒計數(shù)器把change信號賦給minute分計數(shù)器分計數(shù)器m加1⑶時計數(shù)圖5⑶時計數(shù)圖5分計數(shù)流程圖圖6時計數(shù)流程圖仿真圖形如下modulejishu24(clk,clear,second,s_carry,minute,m_carry,hour,sL,sH,mL,mH,hL,hH);inputclk,clear;output[5:0]second,minute;output[4:0]hour;outputs_carry,m_carry;outputsL,sH,mL,mH,hL,hH;regs_carry,m_carry;reg[5:0]second,minute;reg[4:0]hour;regsL,sH,mL,mH,hL,hH;always@(posedgeclkorclear)if(clear)second<=0;elseif(second!=6'b111011)beginsecond<=second+1;s_carry<=0;endelsebeginsecond<=0;s_carry<=1;endalways@(posedges_carryorclear)if(clear)minute<=0;elseif(minute!=6'b111011)beginminute<=minute+1;m_carry<=0;endelsebeginminute<=0;m_carry<=1;endalways@(posedgem_carryorclear)if(clear)hour<=0;elseif(hour!=5'b10111)beginhour<=hour+1;endelsebeginhour<=0;endalways@(posedgesecond)beginsL<=second%10;sH<=second/10;endalways@(posedgeminute)beginmL<=minute%10;mH<=minute/10;endalways@(posedgehour)beginhL<=hour%10;hH<=hour/10;endendmodule圖7計時仿真圖2.3數(shù)碼管顯示模塊設計譯碼顯示模塊采用的是數(shù)碼管的動態(tài)掃描方式,定義變量COM來控制數(shù)碼管顯示的位選信號(通過變量Uweixuan來給數(shù)碼管的各個位選位送出低電平信號)。由于試驗箱上的八個數(shù)碼管是每四個的位選端連接在一起,分為兩組數(shù)碼管,所以定義兩個變量show_temp_H和show_temp_L來分別控制兩組數(shù)碼管,該變量決

定了哪個數(shù)碼管顯示哪個信號,再根據(jù)這兩個變量判斷顯示的是哪一組數(shù)碼管,確定之后通過送入的數(shù)據(jù)利用變量HIGH和LOW控制數(shù)碼管的段選信號完成譯碼顯示工作。圖8數(shù)碼管顯示設計流程圖moduledecode(clk500,reset,hH,hL,mH,mL,sH,sL,HIGH,LOW,COM);inputclk500;inputreset;inputhH,hL;〃小時的高、低位信號inputmH,mL;//分鐘的高、低位信號inputsH,sL;〃秒的高、低位信號output[6:0]HIGH,LOW;〃分別控制兩組數(shù)碼管的段選信號output[7:0]COM;//控制數(shù)碼管的位選信號reg[7:0]show_temp_H,show_temp_L;〃定義的內(nèi)部變量,決定數(shù)碼管上顯示的信號reg[7:0]COM;reg[7:0]Uweixuan;〃通過控制COM變量給數(shù)碼管的位選位送出高低電平reg[2:0]sm;//掃描變量reg[6:0]HIGH;//控制高四位數(shù)碼管的段選信號reg[6:0]LOW;//控制低四位數(shù)碼管的段選信號always@(posedgeclk500)beginif(sm==3'b111)sm<=3'b000;elsesm<=sm+3'b001;Uweixuan<=Uweixuan<<1;//通過對變量的左移操作依次給數(shù)碼管的位選位送高電平if(Uweixuan==8'b0000_0000)Uweixuan<=8'b0000_0001;//給Uweixuan變量設定的初值COM=~Uweixuan;//共陰極數(shù)碼管顯示的位選信號應為低電平,故對Uweixuan變量進行取反操作endalways@(clk500)begincase(COM)8'b1111_1110:show_temp_H=sL;//最低位的數(shù)碼管用于顯示秒信號的低位8'b1111_1101:show_temp_H=sH;8'b1111_1011:show_temp_H=4'b1010;8'b1111_0111:show_temp_H=mL;8'b1110_1111:show_temp_L=mH;8'b1101_1111:show_temp_L=4'b1010;8'b1011_1111:show_temp_L=hL;8'b0111_1111:show_temp_L=hH;//最高位的數(shù)碼管用于顯示小時信號的高位endcaseendalways@(show_temp_H)〃高四位的數(shù)碼管顯示begincase(show_temp_H)4'b0000:HIGH=7'b011_1111;4'b0001:HIGH=7'b000_0110;4'b0010:HIGH=7'b101_1011;4'b0011:HIGH=7'b100_1111;4'b0100:HIGH=7'b110_0110;4'b0101:HIGH=7'b110_1101;4'b0110:HIGH=7'b111_1101;4'b0111:HIGH=7'b000_0111;4'b1000:HIGH=7'b111_1111;4'b1001:HIGH=7'b110_1111;4'b1010:HIGH=7'b100_0000;defaultHIGH=7'b000_0000;endcaseendalways@(show_temp_L)〃低四位的數(shù)碼管顯示begincase(show_temp_L)4'b0000:LOW=7'b011_1111;4'b0001:LOW=7'b000_0110;4'b0010:LOW=7'b101_1011;4'b0011:LOW=7'b100_1111;4'b0100:LOW=7'b110_0110;4'b0101:LOW=7'b110_1101;4'b0110:LOW=7'b111_1101;4'b0111:LOW=7'b000_0111;4'b1000:LOW=7'b111_1111;4'b1001:LOW=7'b110_1111;4'b1010:LOW=7'b100_0000;defaultLOW=7'b000_0000;endcaseendendmodule仿真圖伽酬IGH1111001111...IhiiiiooiIIKilnooint工"Imupoi伽2/L0訓11110011111001IIpiuooi|DOOEHlooELUL/Vm2/C0M11111111ooqIIIpI11II屮!Monof工□ncjrz/Vm2/show_tEmp_H00000001000...IhjOOOOOOOlIIMoooooi1工-foOOOffiOOlFt/ni2/shQW_tEEp_L000000010000000JI1.itoooooool■UULMooooiLUL/Vm2/Uweixuan00000001■■■■■■■■圖9顯示仿真圖2.4.頂層文件設計本實驗設計最終是要顯示小時,而小時需要秒、分的積累而成,首先是以秒顯示,進行到60秒時跳變?yōu)?分,進行到60分時跳變?yōu)?時,進而進行到24時頂層文件原理圖如圖所示

圖10始終控制系統(tǒng)的頂層文件原理圖功能仿真與測試圖11是總程序的仿真圖圖11QUARTUSII仿真結果示意圖4.結論Verilog是硬件描述語言的一種,用于數(shù)字電子系統(tǒng)設計。本課程實驗設計運用綜合的相關知識來設計最終的程序來得以仿真成功。實驗運用了四個模塊,經(jīng)過多次仿真才得到所需要的仿真圖。通過本實驗的學習,對Verilog有了確切的認識,達到能夠設計簡單程序的水平。為以后相關的知識學習打下了良好的基礎。參考文獻【1】夏宇聞.《verilog數(shù)字系統(tǒng)設計教程》第二版.北京航空航天大學出版社.2006.01【2】康華光《電子技術基礎》第五版高等教育出版社【3】馬淑華高原《電子設計自動化》北京郵電大學出版社附錄:程序源代碼1.源程序moduleclkgen(clock,clkdiv,clk500);inputclock;outputclkdiv;outputclk500;reg[31:0]counter1;regclkdiv;regclk500;reg[31:0]counter0;parameterC_COUNT0=25'd500_00_000;parameterC_COUNT1=25'd100_000;//always@(posedgeclock)beginif(counter0==0)begincounter0<=C_COUNT0;clkdiv<=~clkdiv;endelsecounte0<=counter0-1;endalways@(posedgeclock)beginif(counter1==0)begincounter1<=C_COUNT1;clk500<=~clk500;endelsecounter1<=counter1-1;endendmodulemodulejishu24(clk,clear,second,s_carry,minute,m_carry,hour,sL,sH,mL,mH,hL,hH);inputclk,clear;output[5:0]second,minute;output[4:0]hour;outputs_carry,m_carry;outputsL,sH,mL,mH,hL,hH;regs_carry,m_carry;reg[5:0]second,minute;reg[4:0]hour;regsL,sH,mL,mH,hL,hH;always@(posedgeclkorclear)if(clear)second<=0;elseif(second!=6'b111011)beginsecond<=second+1;s_carry<=0;endelsebeginsecond<=0;s_carry<=1;endalways@(posedges_carryorclear)if(clear)minute<=0;elseif(minute!=6'b111011)beginminute<=minute+1;m_carry<=0;endelsebeginminute<=0;m_carry<=1;endalways@(posedgem_carryorclear)if(clear)hour<=0;elseif(hour!=5'b10111)beginhour<=hour+1;endelsebeginhour<=0;endalways@(posedgesecond)beginsL<=second%10;sH<=second/10;endalways@(posedgeminute)beginmL<=minute%10;mH<=minute/10;endalways@(posedgehour)beginhL<=hour%10;hH<=hour/10;endendmodulemoduledecode(clk500,reset,hH,hL,mH,mL,sH,sL,HIGH,LOW,COM);inputclk500;inputreset;inputhH,hL;inputmH,mL;inputsH,sL;output[6:0]HIGH,LOW;output[7:0]COM;reg[7:0]show_temp_H,show_temp_L;reg[7:0]COM;reg[7:0]Uweixuan;reg[2:0]sm;reg[6:0]HIGH;reg[6:0]LOW;always@(posedgeclk200)beginif(sm==3'b111)sm<=3'b000;elsesm<=sm+3'b001;Uweixuan<=Uweixuan<<1;if(Uweixuan==8'b0000_0000)Uweixuan<=8'b0000_0001;/COM=~Uweixuan;endalways@(clk500)begincase(COM)8'b1111_1110:show_temp_H=sL;8'b1111_1101:show_temp_H=sH;8'b1111_1011:show_temp_H=4'b1010;8'b1111_0111:show_temp_H=mL;8'b1110_1111:show_temp_L=mH;8'b1101_1111:show_temp_L=4'b1010;8'b1011_1111:show_temp_L=hL;8'b0111_1111:show_temp_L=hH;endcaseendalways@(show_temp_H)begincase(show_temp_H)4'b0000:HIGH=7'b011_1111;4'b0001:HIGH=7'b000_0110;4'b0010:HIGH=7'b101_1011;4'b0011:HIGH=7'b100_1111;4'b0100:HIGH=7'b110_0110;4'b0101:HIGH=7'b110_1101;4'b0110:HIGH=7'b111_1101;4'b0111:HIGH=7'b000_0111;4'b1000:HIGH=7'b111_1111;4'b1001:HIGH=7'b110_1111;4'b1010:HIGH=7'b100_0000;defaultHIGH=7'b000_0000;endcaseendalways@(show_temp_L)begincase(show_temp_L)4'b0000:LOW=7'b011_1111;4'b0001:LOW=7'

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論