1、 计算机与信息工程系 脉冲与数字电路 课程设计报告 专业 通信工程 班级 学号 姓名 报告完成日期 2011/06/24 指导教师 评语: 成绩: 批阅教师签名: 批阅时间: 1. 任务和设计要求 设计具有时、分、秒计数显示,以 24 小时循环计时的时钟电路,带有清零和校准功能; 2. 设计原理 采用硬件描述语言 Verilog 进行编程,实现 20MHZ 晶振到 1HZ 的分频;采用 verilog 语言实现数字表功能实现的各个模块; 通过各个模块的代码生成相应的模块原理图; 再 将各个模块生成的原理图进行叠加组成一个数字表系统; 3. 系统设计 设计的数字表有 6 个输入,16 个输出;
2、6 个输入中,有一个是时钟信号,开发板上的 28 号引脚输入的 50MHZ 的时钟信号;一 个清零端,当数字表正常显示时,按下清零端可以实现 数字钟整体电路图: 4. 各个模块设计 基于 EP1C6Q240C8 的数字钟设计,有 6 个模块组成: Fdiv 分频模块 Control 模式选择模块 Tune 校正模块 Zoushi 时间正常运行模块 Saomiao 数码管动态扫描模块; Decoder BCD 译码模块; Fdiv 模块:模块: 功能:实现 20MHZ 的时钟信号分成 10KHZ 的信号和 1HZ 的信号; 输入:clk 为 20MHZ 的时钟信号; 输出:f10000HZ 为
3、10KH 的时钟信号; F1HZ 为 1HZ 的时钟信号; Fdiv 模块代码: module fdiv(clk,f10000Hz,f1Hz); output f10000Hz,f1Hz; input clk; reg f10000Hz,f1Hz; integer CNT1=0,CNT2=0; always(posedge clk) begin if(CNT11999) begin CNT1=CNT1+1; f10000Hz=1b0; end else begin CNT1=0; f10000Hz=1b1; end end always(posedge f10000Hz) begin if(C
4、NT29999) begin CNT2=CNT2+1; f1Hz=1b0; end else begin CNT2=0; f1Hz=1b1; end end endmodule fdiv 模块波形仿真: 由于实际的分频波形仿真中,由于要将 20MHZ 的分成 1HZ 的,需要将信号缩小 20 000 000 倍,因此,此处采用将 20HZ 的先分成 10HZ,然后再将 10HZ 的分成 1HZ 的时钟信号;在 仿真中这样整,在实际演示中再改下代码,实现真正的 20MHZ 到 1HZ 的分频;它们只是 一个倍数关系而已; Control 模块:模块: 功能:实现电子表的正常显示及时间校正模式的转换; 输入:key 模式修改键,每来一个高电平,mode 加一次。如果 mode 的值为 2,则 mode 被 赋值为 1; Reset 复位键,如果 reset 为 1,则 mode 被赋值为 0; 输出:mode 用于输出到下一级模块,进行模式判断; C