多功能数字钟设计仿真与实现

上传人:f*** 文档编号:156965548 上传时间:2020-12-20 格式:DOCX 页数:9 大小:146.77KB
返回 下载 相关 举报
多功能数字钟设计仿真与实现_第1页
第1页 / 共9页
多功能数字钟设计仿真与实现_第2页
第2页 / 共9页
多功能数字钟设计仿真与实现_第3页
第3页 / 共9页
多功能数字钟设计仿真与实现_第4页
第4页 / 共9页
多功能数字钟设计仿真与实现_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《多功能数字钟设计仿真与实现》由会员分享,可在线阅读,更多相关《多功能数字钟设计仿真与实现(9页珍藏版)》请在金锄头文库上搜索。

1、电子电路测试与设计实验实验报告实验名称:多功能数字钟设计仿真与实现 一 实验目的1. 掌握数字电路系统层次化、模块化的设计方法。2. 熟悉用Verilog HDL描述时序逻辑电路的方法,以及EDA仿真技术。3. 掌握计数,分频,译码,显示电路的一般Verilog HDL描述方法。4. 复习QuartusII软件的使用。二 实验条件计算机、QuartusII9.1软件,可编程逻辑器件实验板及专用的在系统编程电缆。三 实验要求及内容使用Verilog HDL设计多功能数字钟,并使用DE0实验板下载验证。要求实现以下功能:(1)准确计时,以数字形式显示时分秒时间,小时计时为24小时制;(2)实现时间

2、校正功能。四 分析与设计多功能数字钟的基本工作原理为由振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,再由分频电路输出秒计时脉冲信号。秒计时满60后向分计数器进位,分计时满60后向时计时进位,时计时满24置零。以十进制数字显示时间的基本原理为,计数器对时分秒的十位和个位分别以8421BCD码计时,再通过译码器送至显示器。通过以上分析可知,使用Veriog HDL 模拟多功能数字钟须有以下模块:顶层模块,分频模块,六十进制计数器,二十四进制计数器,译码模块,显示切换模块。1. 顶层模块module clock(clk_50M,MODE,AMin,AHour,SHOW_MODE,nCR,EN,

3、SEG0,SEG1,SEG2,SEG3,LED_STA,clk_1);/顶层模块,通过调用其他底层模块实现数字钟的功能input nCR,EN,clk_50M,MODE,SHOW_MODE,AMin,AHour;/nCR为清零信号,低电平有效;EN为使能信号高电平有效;clk_50M为DE0实验板提供的50MHz时钟信号;MODE表示数字钟工作状态0为计时,1为调时;Amin为分调时信号,AHour为时调时信号 output 7:0SEG3,SEG2,SEG1,SEG0; /四个显示器的输入信号 output 4:0LED_STA;/用LED灯表示工作状态 output clk_1;/1Hz秒

4、脉冲信号 wire 7:0Hour,Minute,Second;/用于计时分秒的量,前四位为十位,后四位为各位 wire clk_1; wire 3:0 LED_STA; wire SET_SELECT; wire 7:0SHOW1,SHOW2; wire Min_En,Hour_En; clk_div U0(clk_50M,clk_1); LED_STATION U1(MODE,SHOW_MODE,LED_STA3:0); counter60 U2(EN,clk_1,nCR,Second7:4,Second3:0); /assign Min_EN =( MODE=1&AMin)|(Secon

5、d=8b01011001); assign Min_EN =MODE?AMin:(Second=8h59); counter60 U3(Min_EN,clk_1,nCR,Minute7:4,Minute3:0); assign Hour_EN = MODE?AHour:(Minute=8h59)&(Second=8h59); counter24 U4(nCR,Hour_EN,clk_1,Hour7:4,Hour3:0); SHOW_CTRL U5(MODE,SHOW_MODE,clk_1,Hour,Minute,Second,SHOW1,SHOW2); HEX2LED U6(SHOW17:4,

6、SEG3); HEX2LED U7(SHOW13:0,SEG2); HEX2LED U8(SHOW27:4,SEG1); HEX2LED U9(SHOW23:0,SEG0); Endmodule2. 分频模块由50MHz基础时钟脉冲分频,获得秒脉冲时钟信号。也可通过该模块获得其他频率信号以获取其他拓展功能要求的脉冲信号。module clk_div(clk_50M,clk_1);input clk_50M;output clk_1;reg clk_1;reg 120:0count;initial begin clk_1=1b0; count=1; endalways (posedge clk_

7、50M) begin if(count=25000000)/计数至25000000次时翻转一次获得秒脉冲 begin clk_1=clk_1; count=1; end else begin count=count+d1; end endendmodule3.六十进制计数六十进制计数器,对分秒计时。module counter60(EN,CP,nCR,QoH,QoL);/QoH为十位,QoH为个位input EN,CP,nCR;output 3:0QoH,QoL;reg 3:0QoH,QoL;always(posedge CP)beginif (nCR) begin QoH=4b0000;Qo

8、L=4b0000;end/nCR=0时清零else if (EN) begin QoH=QoH;QoL=QoL;end/EN为低电平时停止计数else if(QoH=4b0101&QoL=4b1001) /计数至59时归零begin QoH=4b0000;QoL=4b0000;endelse if(QoH4b0110&QoL4b1001)QoH,QoL=QoH,QoL+4b0001;/十位小于5,个位小于9时个位加1else if(QoH4b0110&QoL=4b1001)QoH,QoL=QoH+4b0001,4b0000;/个位为9,十位小于5时,个位归零,十位加1。endendmodule

9、4.二十四进制计数用于时计数器,与六十进制计数器原理相同。module counter24(nCR,EN,CP,CntH,CntL); input CP,nCR,EN; output3:0 CntH,CntL; reg 3:0 CntH,CntL; reg CO; always (posedge CP or negedge nCR) begin if (nCR) CntH,CntL=8h00; else if (EN) CntH,CntL2)|(CntL9)|(CntH=2)&(CntL=3)CntH,CntL=8h00; else if (CntH=2)&(CntL3) begin CntH

10、=CntH; CntL=CntL+1b1;end else if (CntL=9) begin CntH=CntH+1b1;CntL=4b0000;end else begin CntH=CntH; CntL=CntL+1b1;end end endmodule5.译码模块把时分秒的十位个位8421BCD码译码,用于驱动七段显示器。module HEX2LED (HEX, SEG);input 3:0 HEX;output 7:0 SEG;wire 3:0 HEX;reg 7:0 SEG;always (HEX)begincase (HEX) 4b0000:SEG=8b01000000; 4b

11、0001:SEG=8b01111001; 4b0010:SEG=8b00100100; 4b0011:SEG=8b00110000; 4b0100:SEG=8b00011001; 4b0101:SEG=8b00010010; 4b0110:SEG=8b00000010; 4b0111:SEG=8b01111000; 4b1000:SEG=8b00000000; 4b1001:SEG=8b00010000;endcaseendendmodule6.其他module LED_STATION(MODE,SHOW_MODE,LED_STA);/用LED灯表示数字钟工作状态,主要标示计时状态,显示状态和

12、秒脉冲信号input MODE,SHOW_MODE;output 3:0LED_STA;/3位为0显示时分,2位为零显示分秒,1位为零表示为校时状态,0位为0表示为计时状态。reg 3:0LED_STA;always(MODE,SHOW_MODE)beginif(MODE=0)begin if(SHOW_MODE=0)LED_STA=4b0101;elseLED_STA=4b0110;endelsebeginif(SHOW_MODE=0)LED_STA=4b1001;elseLED_STA=4b1010;endendendmodulemodule SHOW_CTRL(MODE,SHOW_MOD

13、E,CP,Hour,Minute,Second,SHOW1,SHOW2);/显示切换模块,根据显示状态不同,给显示参数设时分等灯不同的值。input CP,MODE,SHOW_MODE;input 7:0Hour,Minute,Second;output 7:0SHOW1,SHOW2;reg 7:0SHOW1,SHOW2;always(MODE,SHOW_MODE)beginif(MODE=0&SHOW_MODE=0)beginSHOW2=Minute7:0;SHOW1=Hour7:0;endelse if(MODE=0&SHOW_MODE=1)beginSHOW2=Second7:0;SHOW1=Minute7:0;endelse if(MODE=1&SHOW_MODE=0)beginSHOW2=Minute7:0;SHOW1=Hour7:0;endelse if(MODE=1&SHOW_MODE=1)beginSHOW2=Second7:0;SHOW1=Minute7:0;endendendmodule五 实验内容

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程监理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号