模块化设计数字时钟Verilog代码Quartus仿真

名称:模块化设计数字时钟Verilog代码Quartus仿真 (文末获取)

软件:Quartus

语言:Verilog

代码功能:

模块化设计数字时钟

设计数字钟,要求如下:

1、23:01:33 24小时制

整个数字钟端口列表:

clk,输入,外部时钟信号,假设为50MHz

clr,输入,清零信号,低电平有效

seg_atog[6:0]输出信号,用于驱动7段数码管,高电平有效

an[5:0]输出信号,用于使能每个7段数码管,低电平有效,分别连接6个7段数码管的com端

dp输出信号,小数点,用于模拟时间分隔符:

2、设计分频电路,产生1s输出时钟

根据所选板卡外部时钟进行分频,或根据仿真时间单位进行分频

模块名clk_div_1s

3、仿照74160端口及功能设计4位10进制计数器模块,模块名counter_10,实例化组成数字钟计数电路

端口列表:

输入clk、上升沿触发

clr、低电平使能

en、高电平使能

ld、低电平使能

输出Q[3:0]

Cout 进位

4、设计七段显示译码器,模块名seg7

输入:d[3:0]要显示数字的8421BCD码

en使能

输出:seg_atog[6:0],[0]-a,[6]-g

dp 小数点

5、seg7decimal模块

本模块作用在于将数字钟计时电路中每位十进制数字(共6位,例如23:01:33)转换为7段led显示驱动码(6个7段led显示器分时复用)

clk,输入,外部时钟信号,假设为50MHz

clr,输入,清零信号,低电平有效

Q[23:0]4位对应1个74160计数器模块

seg_atog[6:0]输出信号,用于驱动7段数码管,高电平有效

an[5:0]输出信号,用于使能每个7段数码管,低电平有效,分别连接6个7段数码管的com端

dp输出信号,小数点,用于模拟时间分隔符:

5、整个设计框架为:由分频电路产生1s时钟脉冲,经过秒钟计数,将秒钟计数进位信号输出给分钟计数电路,再将分钟计数进位信号输出给小时计数电路,再

利用seg7decimal模块驱动2位小时、2位分钟、2位秒钟显示数字

6、要求编写测试模块,进行功能仿真测试

//数字钟
module clock(
inputclk,//输入,外部时钟信号,假设为50MHz
inputclr,//输入,清零信号,低电平有效
output[6:0]seg_atog,//输出信号,用于驱动7段数码管,高电平有效
output[5:0]an,//输出信号,用于使能每个7段数码管,低电平有效,分别连接6个7段数码管的com端
outputdp//输出信号,小数点,用于模拟时间分隔符: 
);
wire clk_1hz;
wire cout_second;
wire cout_minute;
wire [3:0] cnt_ten_second;//计数值十位
wire [3:0] cnt_one_second;//计数值个位
wire [3:0] cnt_ten_minute;//计数值十位
wire [3:0] cnt_one_minute;//计数值个位
wire [3:0] cnt_ten_hour;//计数值十位
wire [3:0] cnt_one_hour;//计数值个位
wire [23:0]Q;//4位对应1个74160计数器模块
assign Q={cnt_ten_hour,cnt_one_hour,cnt_ten_minute,cnt_one_minute,cnt_ten_second,cnt_one_second};
//分频电路,产生1s输出时钟
clk_div_1s i_clk_div_1s(
.clk(clk),//输入,外部时钟信号,假设为50MHz
.clr(clr),//输入,清零信号,低电平有效
.clk_1hz(clk_1hz) //1s输出时钟
);
源代码

点击下方的公众号卡片获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值