一、设计要求

1.提供给计时器内部设定的时钟频率是12Hz,计时器最长时间为10min,为此需要提供一个三位显示器,显示的最长时间为9分59秒。

2.设有复位和起/停开关

(1)复位开关用于计数器清(2)起/停开关,按一下——启动;再按一下——终止。(3)复位开关任何时间均可使用,即在计时期间,按一下复位开关即对计数器清零,终止计数过程。

二、设计说明

主要有分频器、十进制计数器(秒的个位,分的个位,共计2个十进制计数器)和一个六进制计数器。设计中还需要一个复位信号,还需要在每个计数器上设置使能端作为起/停开关。设置3个四位二进制计数器作为输出。DOUT[11:9]显示分的位数;DOUT[7:4]显示秒的十位;DOUT[3:0]显示个位数秒。

三、代码

(1)产生12Hz的时钟;

//filename:clkgen.v
// Edit by xixihahasoso on 2022/5/7
// 时钟频率12HZ
//reference:郭磊《Verilog 实战教程》module clkgen ( Rd, CLK_IN , CLK_OUT);parameter CLK_Freq = 12 ;//12Hz input
parameter CLK_OUT_Freq = 1;//1Hz output)
input Rd, CLK_IN;
output reg CLK_OUT ;reg [25:0] Counter_DIV;//inner knot
always @ (posedge CLK_IN or negedge Rd)  begin if (~Rd) begin//YiBuQingLingCLK_OUT <= 0;Counter_DIV <= 0;endelse beginif (Counter_DIV <(CLK_Freq /2 * CLK_OUT_Freq))Counter_DIV <= Counter_DIV +1'b1;//divider adder add 1else beginCounter_DIV <= 0;CLK_OUT <= ~CLK_OUT;endend
end
endmodule

(2)六进制计数

//filename:CNT6.v
// Edit by xixihahasoso on 2022/5/7
// 六进制计数器
module CNT6 ( Rd, EN, CLK,  Q, carryout);
input Rd, EN, CLK;
output [3:0] Q;
output carryout;
reg carryout;
integer cnt;assign Q = cnt;always @ (posedge CLK) beginif (~Rd) begincnt      = 1'b0;carryout = 1'b0;endelse if (cnt < 5) begincarryout = 1'b0;if(!EN)cnt = 1'b0;else cnt = cnt + 1'b1;endelsebegincnt      = 1'b0;carryout = 1'b1;end
endendmodule

(3)十进制计数

//filename:CNT10.v
// Edit by xixihahasoso on 2022/5/7
// 十进制计数器
module CNT10 ( Rd, EN, CLK,  Q, carryout);
input Rd, EN, CLK;
output [3:0] Q;
output carryout;
reg carryout;
integer cnt;assign Q = cnt;always @ (posedge CLK) beginif (~Rd) begincnt      = 1'b0;carryout = 1'b0;endelse if (cnt < 9) begincarryout = 1'b0;if(!EN)cnt = 1'b0;else cnt = cnt + 1'b1;endelsebegincnt      = 1'b0;carryout = 1'b1;end
endendmodule

(4)顶层文件

//filename:top.v
// Edit by xixihahasoso on 2022/5/7
// top filemodule top ( CLK_IN, CLR, EN, DOUT,Carryout);
input CLK_IN, CLR, EN;
output [11:0] DOUT;
output Carryout;
wire CLK;
//wire [3:0] D1,D2,D3,D4,D5,D6,D7;
wire [3:0] D5,D6,D7;
//wire carryout1,carryout2,carryout3,carryout4,carryout5,carryout6;
wire carryout1,carryout2,carryout3,carryout4,carryout5,carryout6;clkgen CLKGEN ( .Rd(CLR), .CLK_IN(CLK_IN) , .CLK_OUT(CLK));
CNT10 CNT10_3 ( .Rd(CLR), .EN(EN), .CLK(carryout2),  .Q(D5), .carryout(Carryout));
CNT6  CNT10_4 ( .Rd(CLR), .EN(EN), .CLK(carryout1),  .Q(D6), .carryout(carryout2));
CNT10 CNT10_5 ( .Rd(CLR), .EN(EN), .CLK(CLK),        .Q(D7), .carryout(carryout1));assign DOUT = (Carryout == 1) ?   {D5,D6,D7} :0 ;
endmodule

(5)测试文件

//filename:CNT6.v
// Edit by xixihahasoso on 2022/5/7
//testbenchmodule ShuZiMiaoBiao_tb();
reg CLK_IN, CLR, EN;
wire [11:0] DOUT;
parameter Period = 2;
top test ( CLK_IN, CLR, EN, DOUT);
always begin#(Period/2) CLK_IN = ~ CLK_IN;
endinitial begin
CLR = 0;  EN = 0; CLK_IN = 0;
#25  CLR <= 1;
#30  EN <= 1;
#2000 CLR <= 0;
#2100 CLR <= 1;
#4000 $finish;
endendmodule

四、测试结果

图中D5,D6,D7分别对应秒表的分、秒的十位、秒的个位;结果显示正确成立。

【Verilog闯关第2天】数字秒表的设计相关推荐

  1. VHDL数字秒表的设计

    主要内容: 本课程设计是根据计算机时钟信号原理设计一个含有控制模块.计时模 块.显示模块三个模块的精确度达到10ns的数字秒表. 课程设计的目的 本次设计的目的就是在掌握EDA实验开发系统的初步使用基 ...

  2. 基于FPGA的数字秒表的设计

    应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了系统的开发时间,提高了工作效率.本文介绍一种以FPGA为核心,以VHDL为开发工具的数字秒表,并给出源程序和仿真结果. 1 系统 ...

  3. EDA实验二 数字秒表的设计

    一.实验目的 1.学习Quartus Ⅱ/ISE Design Suite软件的基本使用方法. 2.熟悉GW48系列或其他EDA实验开发系统的基本使用方法. 3.学习VHDL基本逻辑电路的综合设计应用 ...

  4. 基于modelsim的十个Verilog入门试验程序(5)(数字秒表+自助售票机)—程序+测试代码+波形+结果分析

    内容 实验一:7人表决器的设计 实验二:算数逻辑单元的设计 实验三:JK触发器的设计 实验四:环形计数器的设计 实验五:顺序排列的设计 实验六:二进制除法器的设计 实验七:数字显示频率计的设计 实验八 ...

  5. 计算机原理实验中断计数器加一,数字秒表系统的设计.doc

    精品 基于单片机的数字秒表系统设计 1.引言 在科技高度发展的今天,集成电路和计算机应用得到了高速发展.尤其是计算机应用的发展,它在人们日常生活中已经崭露头角.大多数电子产品多是由计算机电路组成,如: ...

  6. 基于单片机的数字秒表

    设计简介: 本设计是基于单片机的数字秒表的设计,主要实现以下功能: 可实现LCD12864显示时间以及倒计时.顺计时等信息: 可实现通过按键调节调节时间的大小以及实现计时功能: 可实现通过通过语音播报 ...

  7. 基于FPGA的数字秒表设计

    VHDL实现数字秒表 1设计要求 (1) 能对0秒-59分59.99秒范围进行计时,显示最长时间是59分59秒: (2) 计时精度达到10ms: (3) 设计复位开关和启停开关,复位开关可以在任何情况 ...

  8. 震坤行旗下坤同智能仓储助力「数字龙华」闯关破题

    近期,深圳特区报头版刊发<为深圳建设"国家数字经济创新发展试验区"闯关破题--数字龙华风正劲 "数"象万千逐浪高>,龙华区为深圳建设"国家 ...

  9. 基于Verilog使用Quartus设计数字秒表和数字时钟

    目录 一.数字秒表 1.1 新建工程 1.2 添加 Verilog 文件 1.3 添加 VWF 文件 1.4 波形仿真 二.多功能数字钟 三.总结 本文内容:使用 Quartus 基于 Verilog ...

最新文章

  1. mysql创建表语句 引擎、编码和字符集设置
  2. 未来十年有望改变世界的五大发现
  3. 要上进总会有时间的,要放松也总会有理由的——记录2年出版2本书带给我的改变,同时分享写书和写博客的技巧...
  4. 安装Office2007找不到OfficeMUI.msi解决方案
  5. 使用 docker 创建自己的镜像
  6. [BZOJ2048] [2009国家集训队] 书堆
  7. Oracle 10g 数据库连接出现The Network Adapter could not establish the connection解决办法
  8. ce修改面板属性_鬼谷八荒ce教程 教你如何修改属性+灵石+物品+时间等方法
  9. 印尼语翻译和爪哇翻译一次争斗为自定义
  10. [pion]测试你的TURN服务器
  11. plsql使用方法(主要是sql语句)
  12. 无线路由器服务器连接线,有线路由器接无线路由器怎么设置
  13. Centos7 安装mongodb 4.x
  14. keras教程-静态图编程框架keras-学习心得以及知识点总结
  15. linux安装project lemon测评机
  16. python函数名词解释_python的面向对象程序设计(名词解释及实例)
  17. python期权价格计算器_GitHub - QSCTech-Sange/Options-Calculator: 期权价格计算器——金融工程第二次展示...
  18. 随机事件与概率术语与主题
  19. Unity—Json1
  20. sublime 使用浏览器不反应

热门文章

  1. ORA-01139:
  2. ESP8266EX芯片文档
  3. crc16 ccitt的详细标准在哪里看
  4. 吉时利keithley2600脉冲信号测试软件,忆阻器测试|半导体测试
  5. php lt lt lt eod,[PHP]EOD及mail发布_PHP
  6. 服务器搭建SSH暴力攻击诱饵,制作密码字典
  7. Hungry Rabbit
  8. HDFS依旧是存储的王者
  9. 计算机科学与技术专业学建模嘛,工学学科(基本专业四):计算机科学与技术专业介绍...
  10. 深度优先搜索-Python