• 方案介绍
  • 相关推荐
申请入驻 产业图谱

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

05/13 13:28
1452
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:模块化设计数字时钟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、要求编写测试模块,进行功能仿真测试

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

部分代码展示:

//数字钟
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输出时钟
);

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1312

相关推荐