计时器日历及时间设计Verilog代码VIVADO仿真

名称:计时器日历及时间设计Verilog代码VIVADO仿真(文末获取)

软件:VIVADO

语言:Verilog

代码功能:

计时器日历及时间

基本要求:计时显示日历,年/月/日/时/分/秒/百分秒。

提示:

计时器计算设计,

年/月/日的日历查找表。

1. 工程文件

2. 程序文件

ROM IP 核

3. 程序编译

4. RTL图

5. 仿真文件(testbench)

6. 仿真图

修改起始地址,获得不同年月日

部分代码展示:

`timescale  1ns/100ps
module calendar
(
input                 sysclk,
input                 reset_n,
output [31:0]         rom_data
);
reg [15:0]  year_h    =  8'd20;
reg [7:0]   year_l    =  8'd08;
reg [3:0]   month     =  4'd1;
reg [4:0]   day       =  5'd30;
//------------------------------------------------------------------------------
wire  month_flag = (day == 28)&!(year_l[1:0] == 0 & year_l !=0 | year_h[1:0] ==0 & year_l ==0)&(month == 2)|
                   (day == 29)& (year_l[1:0] == 0 & year_l !=0 | year_h[1:0] ==0 & year_l ==0)&(month == 2)|
                   (day == 30)& ((month == 4)|(month == 6)|(month == 9)|(month == 11))|
                   (day == 31)& ((month == 1)|(month == 3)|(month == 5)|(month == 7)|(month == 8)|(month == 10)|(month == 12));
//------------------------------------------------------------------------------
always@(posedge sysclk or negedge reset_n)
begin
  if (!reset_n)
  begin
    day     <= 5'b1;
    month   <= 4'd1;
    year_l  <= 8'd08;
    year_h  <= 8'd20;
  end
  else begin
                if (month_flag) 
                begin
                  day <= 5'd1;
                  if (month == 12) 
                  begin
                    month <= 5'd1;
                    if (year_l == 100 -1'b1)
                    begin
                      year_l <= 8'd0;
                      if (year_h == 100 -1'b1)
                      begin
                        year_h <= 8'd0;
                      end
                      else if (year_l == 100 -1'b1)
                      begin
                        year_h <= year_h + 1'b1;
                      end                      
                    end
                    else if (month == 12)
                    begin
                      year_l <= year_l + 1'b1;
                    end
源代码

 扫描文章末尾的公众号二维码

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值