Quartus 12小时时钟(同步)

时间:2017-03-29 05:01:19

标签: clock synchronous quartus

我尝试使用多个LPM计数器在Quartus中构建一个12小时的时钟,并要求它同步运行,所有lpm计数器都由一个时钟源驱动。

我把BDF和两个计数器放在一起测试秒数,一个mod-10计数器处理'数字,另一个mod-6计数器处理'数字'数字。 mod-10的执行驱动mod-6计数器上的时钟使能引脚。一切都在模拟中按预期工作。

我试图复制这个模块作为分钟计数器,除了我得到非常奇怪的结果与分钟'那些' mod-10计数器。每当秒数'数秒'反击5,分钟'分钟'开始计算每个时钟脉冲,直到前一个计数器再次滚动到零。

这是我的BDF图片,以及波形模拟:

Here's a picture of my BDF, along with a waveform simulation

我不确定是什么造成了这个问题,因为根据我的理解,来自后十位的cout只有在它翻到0时才会声明,并且只有足够长的时间以便分钟一个人增加一次。

出于好奇心的缘故,我换了两个中间计数器,看看这个问题是否与mod6 cout如何驱动mod10有关,但得到了相同的结果,(除了mod十次点击9,然后触发了mod6计算每个clk脉冲直到mod10翻到0)

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

您在分钟内增加个位数的条件是:

  

秒的十位数是否等于5?

因此,您将每秒从50增加到:59。

你需要在秒内将数字的状态设为一个因子 - 最简单的方法是使用前一阶段的进位来执行AND。