verilog1 HDLbits:12 hour clock(12小时计时器)

慈云数据 2024-03-27 技术支持 70 0

文章目录

  • 前言
    • 本文主要介绍我在解决12小时计时器问题时的思路,代码以及总结,用于自己复习记录,希望也能帮助到其他人。
    • 一.题目
    • 二.方法1
    • 二.方法2

      前言

      本文主要介绍我在解决12小时计时器问题时的思路,代码以及总结,用于自己复习记录,希望也能帮助到其他人。

      一.题目

      12 hour clock

      HDL bit -12 hour clock题目地址

      翻译:创建一组适合用作 12 小时制的计数器。计数器由一个快速运行的 clk 计时,每当时钟增加(即每秒一次)时,ena 就会有一个脉冲。

      reset 将时钟重置为凌晨 12:00。pm 为 0 表示 AM,1 表示 PM。 hh、mm 和 ss 是两个 BCD(二进制编码十进制)数字,分别表示小时(01-12)、分钟 (00-59) 和秒(00-59)。

      重置的优先级高于启用,即使未启用也可能发生。时序图显示了从上午 11:59:59 到下午 12:00:00 的翻转行为以及同步复位和启用行为。

      二.方法1

      1.完整代码:

      module top_module(
          input clk,
          input reset,
          input ena,
          output pm,
          output [7:0] hh,
          output [7:0] mm,
          output [7:0] ss); 
          
          
      	reg [3:0] s0; //秒针的个位
          reg [3:0] s1; //秒针的十位
          
          //秒计数
          always @(posedge clk) begin
              if(reset)	begin
                  s0h1,h0};	
          assign mm={m1,m0};
          assign ss={s1,s0};
          assign pm=r_pm;
          
      endmodule
      
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon