基于verilog数字时钟设计

上传人:第*** 文档编号:61593253 上传时间:2018-12-05 格式:DOCX 页数:19 大小:559.63KB
返回 下载 相关 举报
基于verilog数字时钟设计_第1页
第1页 / 共19页
基于verilog数字时钟设计_第2页
第2页 / 共19页
基于verilog数字时钟设计_第3页
第3页 / 共19页
基于verilog数字时钟设计_第4页
第4页 / 共19页
基于verilog数字时钟设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《基于verilog数字时钟设计》由会员分享,可在线阅读,更多相关《基于verilog数字时钟设计(19页珍藏版)》请在金锄头文库上搜索。

1、课程设计基于Verilog HDL的数字秒表设计系别:物理与电气工程学院专业:微电子学班级:班成员:目录一、前言3二、实验目的.3三、功能设计3四、用Verilog描述电路.4 4.1时钟调校及计时模块4 4.2整数分频模块.8 4.3时钟信号选择模块8 4.4七段显示设置11 4.4.1 BCD码显示模块11 4.4.2 二位七段显示模块12 4.4.3一位七段显示模块12 4.5顶层模块实现14五、模拟与仿真.15六、逻辑综合.16七、下载到硬件电路16八、总结.18九、心得体会.18十、参考文献.19一、前言随着微电子技术的的飞速发展,大规模可编程器件的密度和性能不断提高,数字系统的设计

2、方法、设计过程也发生了重大改变,传统的设计方法已经逐渐被电子设计自动化EDA(Electronic Design Automation)工具所取代。可编程器件可以通过硬件描述语言(如Verilog HDL)的形式根据实际设计的需要灵活地嵌入规模化的数字单元,大大地缩短了产品的设计周期。以可编程逻辑器件为核心的设计在数字系统设计领域将占据越来越重要的作用,因此,作为硬件设计者掌握EDA设计方法和工具是必须的。二、实验目的(1)通过本次课程设计加深对Verilog语言课程的全面认识、复习和掌握。(2)掌握定时器、外部中断的设置和编程原理。(3)通过此次课程设计能够将软硬件结合起来,对程序进行编辑、

3、调试。使其能够通过电脑下载到芯片,正常工作。(4)实际操作QuartusII软件,复习巩固以前所学知识。三、功能设计 数字钟是一个常用的数字系统,其主要功能是计时和显示时间。这里通过一个数字钟表的模块化设计方法,说明自顶向下的模块化设计方法和实现一个项目的设计步骤。这里实现的电子表具有显示和调时的基本功能,可以显示时、分 秒和毫秒,并通过按键进行工作模式选择,工作模式有4种,分别是正常计时模式、调时模式、调分模式、调秒模式。 构成电子表的基本基本模块有四个,分别是时钟调校及计时模块myclock、整数分频模块int_div、时钟信号选择模块clkgen和七段显示模块disp_dec。四、用Ve

4、rilog实现电路4.1时钟调校及计时模块时钟调校及计时模块myclock实现的功能是根据当前的工作状态进行时、分、秒的调整或正常的计时。代码端口说明如下: 输入信号: RSTn复位信号 CLK100Hz时钟信号 FLAG1:0工作模式控制信号,模式定义为:00表示正常显示,01表示调时,10表示调分,11表示调秒; UP调校模式时以加1方式调节信号; DN调校模式时以减1方式调节信号。 输出信号: H7:0“时”数据(十六进制); M7:0“分”数据(十六进制); S7:0“秒”数据(十六进制); MS7:0“百分秒”数据(十六进制)。 该模块的设计思路是,当复位信号RSTn有效时,时、分、

5、秒信号清零,否则工作模式控制信号FLAG的值决定当前的工作状态。当FLAG=2b00时,电子表工作在正常计时状态,对输入的100Hz的时钟信号clk进行计数,修改当前的百分秒(MS)、秒(S)、分(M)和时(H)的计数值;当FLAG信号=2b01时,电子表工作在“时”校正状态,若此时UP信号有效则H加1,若此时DN信号有效则H减1,;当FLAG信号=1b10时,电子表工作在“分” 校正状态,若此时UP信号有效则M加1,若此时DN信号有效则M减1;当FLAG=2b11时,电子表工作在“秒”校正状态,其UP和DN的控制过程与“时”、“分”类似代码: module myclock(RSTn,CLK,

6、FLAG,UP,DN,H,M,S,MS); input RSTn,CLK,UP,DN; output 7:0 H,M,S; output 7:0 MS; input1:0 FLAG; reg 5:0 m_H,m_M,m_S; reg 6:0 m_MS; assign H=m_H; assign M=m_M; assign S=m_S; assign MS=m_MS; always (posedge CLK) if(RSTn) /复位状态 begin m_H=8d23; m_M=8d52; m_S=8b0; m_MS=8b0; end else if(FLAG=2b01) /调时状态 begin

7、 if(UP) begin if(m_H=8d23) m_H=8d0; else m_H=m_H+1b1; end else if(DN) begin if(m_H=8h00) m_H=8d23; else m_H=m_H-1b1; end end else if(FLAG=2b10) /调分状态 begin if(UP) if(m_M=8d59) m_M=8d0; else m_M=m_M+1b1; else if(DN) if(m_M=8h00) m_M=8d59; else m_M=m_M-1b1; end else if(FLAG=2b11) /调秒状态 begin if(UP) if

8、(m_S=8d59) m_S=8b0; else m_S=m_S+1b1; else if(DN) if(m_S=8h00) m_S=8d59; else m_S=m_S=m_S-1b1; end else begin /正常计时状态 if(m_MS=8d99) begin m_MS=8d0; if(m_S=8d59) begin m_S=8d0; if(m_M=8d59) begin m_M=8d0; if(m_H=8d23) m_H=0; else m_H=m_H+1b1; end else m_M=m_M+8d1; end else m_S=m_S+1b1; end else m_MS=

9、m_MS+1b1; endendmodule 4.2整数分频模块 由于数字系统提供的基准时钟信号频率往往较高,因此需要分频模块产生所需频率的失踪信号,例如上面时钟校正及计时模块所需的100Hz的时钟信号。整数分频模块int_div可以实现对输入时钟clock进行F_DIV分频后输出clk_out。F_DIV分频系数范围为12n(n=F_DIV_WIDTH),若要改变分频系数,改变参数F_DIV或F_DIV_WIDTH到相应范围即可。若分频系数为偶数,则输出时钟占空比为50%;若分频系数为奇数,则输出的时钟占空比取决于输入的时钟占空比和分频系数(当输入为50%时,输出也是50%)。 代码:module int_div(clock,clk_out); parameter F_DIV=48000000; /分频系数 parameter F_DIV_WIDTH=32; /分频计数器宽度 input clock; /输入时钟 output clk_out;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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