《FPGA全程进阶---实战演练》第九章 计数器要注意
本小节我们来做一个好玩的事情,就是计数器,还记得在做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全程进阶---实战演练》第九章 计数器要注意的更多相关文章
- 《FPGA全程进阶---实战演练》第三十二章 Signal Tap II 应用实例
还有几天就要交文章终稿了,三年的研究生生活也快要结束了,时间飞快,岁月如梭,但学习技术的热情仍然不能松懈,不懂的东西太多,需要实时保持奋斗!!过些天会继续更新<FPGA全程进阶---实战演练&g ...
- 《FPGA全程进阶---实战演练》第五章 基于74HC595的LED操作
1基础理论部分 1.1分频 分频,是的,这个概念也很重要.分频是指将一单一频率信号的频率降低为原来的1/N,就叫N分频.实现分频的电路或装置称为“分频器”,如把33MHZ的信号2分频得到16.5MHZ ...
- 《FPGA全程进阶---实战演练》第四章之实验平台软硬件使用简介
本章主要是讲解读者在进行FPGA逻辑设计之前的准备工作,需要下载Quartus II软件和 Modelsim 软件,一个是用来进行FPGA逻辑设计,一个是用来对逻辑进行理论分析与验证. 1.1 qua ...
- 《FPGA全程进阶---实战演练》第二十一章 细说低速与高速电路设计之电阻 电容 电感 磁珠
1.1 什么是高速电路 信号的最高频率成分是取决于有效频率,而不是周期频率. 高速电路的定义是根据信号的有效频率来计算的,在现实世界中,任何信号都是由多个频率分量的正弦波叠加而成的.定义各正弦波分 ...
- 《FPGA全程进阶---实战演练》第十二章 二进制码与格雷码PK
大家在写程序的时候,可能会听闻,什么独热码,什么格雷码,什么二进制码等等,本节意在解释这几种编码之间的区别和优势以及用verilog怎么去实现,下面先介绍这几种编码的区别. 1 基础理论部分 1.1 ...
- 《FPGA全程进阶---实战演练》第十一章 VGA五彩缤纷
1基础理论部分 VGA(video graphics array)即视频图形阵列,是IBM在1987年随PS/2一起推出的使用模拟信号的一种视频传输标准.VGA相比与现在的视频传输接口来说已经过时,不 ...
- 《FPGA全程进阶---实战演练》第一章之如何学习FPGA
对于很多初学者,大部分都是急于求成,熟不知越是急于求成,最终越是学无所成,到头来两手空空,要学好FPGA,必须弄懂FPGA本质的一些内容. 1.FPGA内部结构及基本原理 FPGA是可以编程的,必须通 ...
- 《FPGA全程进阶---实战演练》第一章之FPGA介绍
1 什么是FPGA FPGA也即是Field Programmable Gate Array的缩写,翻译成中文就是现场可编程门阵列.FPGA是在PAL.GAL.CPLD等可编程器件的基础上发展起来的新 ...
- 《FPGA全程进阶---实战演练》第二章之焊接板子及调试注意事项
1.若是读者第一次做板子,强烈建议画完PCB板后将PCB图打印出来,然后对照你买的芯片将芯片放置对 应的位置,然后查看所有的封装格式适不适合,否则等你做出板子来后再试,为时晚矣.笔者虽然知道要这么 做 ...
随机推荐
- C语言发展历程及其保留字(关键字)——附:C语言标准文档
引言 抽时间对C语言发展历程和C语言的标准库文件及其保留字/关键字做了个梳理,后面附C语言各版本国际标准. C语言发展历程及其标准库 C语言关键字/保留字 C语言国际标准 ...
- tornado设置settings
1.作用 设置应用程序相关参数 2.用法 settings = dict() settings["debug"] = True tornado.web.Application.__ ...
- 【Android】事件处理系统
linux输入子系统 Android是linux内核的,所以它的事件处理系统也在linux的基础上完成的. Linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/ ...
- 【驱动】input子系统全面分析
初识linux输入子系统 linux输入子系统(linux input subsystem)从上到下由三层实现,分别为:输入子系统事件处理层(EventHandler).输入子系统核心层(InputC ...
- 【Socket】linux网络扫描程序开发
1.mystery引入 1)系统入侵步骤:系统发现->漏洞探测->漏洞利用->痕迹清除 2)扫描器分类:主机与网络扫描器:端口服务扫描器:服务漏洞扫描器 3)T ...
- 使用PyHive操作Hive
使用PyHive操作Hive 废话 搜了一下,看到了StackOverFlow的回答,试了一下前两个方案,感觉第二个更简洁,这里记录一下,更详细的见参考. 安装依赖 pip install sasl ...
- UNIX环境高级编程 apue.h头文件的配置
http://jimslinbing.blog.163.com/blog/static/85054319201292712414518/ 1.到http://www.apuebook.com下载源码2 ...
- spring boot guava cache 缓存学习
http://blog.csdn.net/hy245120020/article/details/78065676 ****************************************** ...
- 用nodejs的express框架在本机快速搭建一台服务器
[本文出自天外归云的博客园] 简介 用express框架在本机搭建一个服务器,这样大家可以通过指定的url来在你的服务器上运行相应的功能. Express是一个基于nodejs的框架,我们可以用它来完 ...
- 检查jdk版本
### 检查JDK版本信息-----------------------------查看jdk是否已安装 javac查看jdk版本信息 javac -version查看jdk安装位置 java -ve ...