本小节我们来做一个好玩的事情,就是计数器,还记得在做LED自加实验时我们就曾经提到过关于计数器的相关议题,那么这节我们就来讨论讨论。

探讨一下如下的问题:请用verilog记八个数的写法,分析这个可以更好的理解触发器的工作原理。

.
reg [:]cnt;
always@(posedge clk or negedge rst_n) begin
if(!rst_n)
cnt <= 'd0;
else if (cnt < 'd8)
cnt <= cnt + 'b1;
else
cnt <= 'd0;
end
.
reg [:]cnt;
always@(posedge clk or negedge rst_n) begin
if(!rst_n)
cnt <= 'd0;
else if (cnt < 'd8 - 1)
cnt <= cnt + 'b1;
else
cnt <= 'd0;
end
.
reg [:]cnt;
always@(posedge clk or negedge rst_n) begin
if(!rst_n)
cnt <= 'd1;
else if (cnt < 'd8 )
cnt <= cnt + 'b1;
else
cnt <= 'd1;
end .
reg [:]cnt;
always@(posedge clk or negedge rst_n) begin
if(!rst_n)
cnt <= 'd1;
else if (cnt < 'd7 )
cnt <= cnt + 'b1;
else
cnt <= 'd1;
end

对应的仿真结果为:

1.计数为9个。

2.计数为8个

3.计数为8个

4.计数为7个

在else if语句中的判断条件为 cnt < 4’d7或者cnt  <4’d8,以cnt < 4’d7为例,当cnt =4’d7显然是不满足条件的,所以利用跳出自加程序,执行else语句,但是cnt = 4’d7也会被打印输出,这是由于时序电路在时钟的节奏下一拍一拍的输出,当时钟上升沿来临时,这时cnt = 4’d7,然后等待下一个时钟沿到来把cnt = 4’d7打入到锁存器里面去,然后再在下一个时钟沿来临将cnt = 4’d0打入。以此类推。

针对上述的四种情况,大家在写一些利用计数器进行分频的程序时,若是精确控时,请注意cnt小于的常数是多少,这一点务必搞清楚。

《FPGA全程进阶---实战演练》第九章 计数器要注意的更多相关文章

  1. 《FPGA全程进阶---实战演练》第三十二章 Signal Tap II 应用实例

    还有几天就要交文章终稿了,三年的研究生生活也快要结束了,时间飞快,岁月如梭,但学习技术的热情仍然不能松懈,不懂的东西太多,需要实时保持奋斗!!过些天会继续更新<FPGA全程进阶---实战演练&g ...

  2. 《FPGA全程进阶---实战演练》第五章 基于74HC595的LED操作

    1基础理论部分 1.1分频 分频,是的,这个概念也很重要.分频是指将一单一频率信号的频率降低为原来的1/N,就叫N分频.实现分频的电路或装置称为“分频器”,如把33MHZ的信号2分频得到16.5MHZ ...

  3. 《FPGA全程进阶---实战演练》第四章之实验平台软硬件使用简介

    本章主要是讲解读者在进行FPGA逻辑设计之前的准备工作,需要下载Quartus II软件和 Modelsim 软件,一个是用来进行FPGA逻辑设计,一个是用来对逻辑进行理论分析与验证. 1.1 qua ...

  4. 《FPGA全程进阶---实战演练》第二十一章 细说低速与高速电路设计之电阻 电容 电感 磁珠

      1.1 什么是高速电路 信号的最高频率成分是取决于有效频率,而不是周期频率. 高速电路的定义是根据信号的有效频率来计算的,在现实世界中,任何信号都是由多个频率分量的正弦波叠加而成的.定义各正弦波分 ...

  5. 《FPGA全程进阶---实战演练》第十二章 二进制码与格雷码PK

    大家在写程序的时候,可能会听闻,什么独热码,什么格雷码,什么二进制码等等,本节意在解释这几种编码之间的区别和优势以及用verilog怎么去实现,下面先介绍这几种编码的区别. 1 基础理论部分 1.1 ...

  6. 《FPGA全程进阶---实战演练》第十一章 VGA五彩缤纷

    1基础理论部分 VGA(video graphics array)即视频图形阵列,是IBM在1987年随PS/2一起推出的使用模拟信号的一种视频传输标准.VGA相比与现在的视频传输接口来说已经过时,不 ...

  7. 《FPGA全程进阶---实战演练》第一章之如何学习FPGA

    对于很多初学者,大部分都是急于求成,熟不知越是急于求成,最终越是学无所成,到头来两手空空,要学好FPGA,必须弄懂FPGA本质的一些内容. 1.FPGA内部结构及基本原理 FPGA是可以编程的,必须通 ...

  8. 《FPGA全程进阶---实战演练》第一章之FPGA介绍

    1 什么是FPGA FPGA也即是Field Programmable Gate Array的缩写,翻译成中文就是现场可编程门阵列.FPGA是在PAL.GAL.CPLD等可编程器件的基础上发展起来的新 ...

  9. 《FPGA全程进阶---实战演练》第二章之焊接板子及调试注意事项

    1.若是读者第一次做板子,强烈建议画完PCB板后将PCB图打印出来,然后对照你买的芯片将芯片放置对 应的位置,然后查看所有的封装格式适不适合,否则等你做出板子来后再试,为时晚矣.笔者虽然知道要这么 做 ...

随机推荐

  1. Vue.js使用-组件(下篇)

    上一节,我们定义了组件的基本使用,下面我们看看组件其他的一些特性. 1.组件作用域 同时在Vue对象和组件中定义一个属性,显示结果是怎样的呢? <!DOCTYPE html> <ht ...

  2. 每日英语:China Destroys Six Tons of Confiscated Ivory

    BEIJING—Chinese government officials destroyed more than six tons of ivory that had been illegally s ...

  3. HBase写入性能及改造——multi-thread flush and compaction(续:详细测试数据)[转]

    转载:http://blog.csdn.net/kalaamong/article/details/7290192 接上文啊: 测试机性能 CPU 16* Intel(R) Xeon(R) CPU   ...

  4. 【Android】Intent解读

    Intent 的作用 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯. 比如说调用startActivity()来启 ...

  5. chrome访问不了go语言中文网

    最近开发转用golang语言,所以经常在晚上搜资料,结果发现go语言中文网,我居然访问不了,刚开始以为是跟go有关,所以被防火长城屏蔽了,结果,偶尔讨论发现办公室的其他两个同事都可以访问,真是奇了怪了 ...

  6. JS 实现日期信息增加年数,月数,天数

    function DateAdd(interval, number, date) { /* * 功能:实现JSScript的DateAdd功能. * 参数:interval,字符串表达式,表示要添加的 ...

  7. 【转载】一个Sqrt函数引发的血案

    转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/sotry-about-sqrt.html 源码下载地址:http://diducoder ...

  8. ARKit从入门到精通(3)-ARKit自定义实现

    转载:http://blog.csdn.net/u013263917/article/details/73038566 在上一小节中ARKit从入门到精通(2)-ARKit工作原理及流程介绍,我们完整 ...

  9. ARKit从入门到精通(2)-ARKit工作原理及流程介绍

    转载:http://blog.csdn.net/u013263917/article/details/73038519 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARK ...

  10. Android 收集已发布程序的崩溃信息

    我们写程序的时候都希望能写出一个没有任何Bug的程序,期望在任何情况下都不会发生程序崩溃.不过理想是丰满的,现实是骨感的.没有一个程序员能保证自己写的程序绝对不会出现异常崩溃.特别是针对用户数达到几十 ...