《FPGA全程进阶---实战演练》第九章 计数器要注意

来源:本站
导读:目前正在解读《《FPGA全程进阶---实战演练》第九章 计数器要注意》的相关信息,《《FPGA全程进阶---实战演练》第九章 计数器要注意》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《《FPGA全程进阶---实战演练》第九章 计数器要注意》的详细说明。
简介: 本小节我们来做一个好玩的事情,就是计数器,还记得在做LED自加实验时我们就曾经提到过关于计数器的相关议题,那么这节我们就来讨论讨论。

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

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

《FPGA全程进阶---实战演练》第九章 计数器要注意

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

《FPGA全程进阶---实战演练》第九章 计数器要注意

对应的仿真结果为:

1.计数为9个。

《FPGA全程进阶---实战演练》第九章 计数器要注意

2.计数为8个

《FPGA全程进阶---实战演练》第九章 计数器要注意

3.计数为8个

《FPGA全程进阶---实战演练》第九章 计数器要注意

4.计数为7个

《FPGA全程进阶---实战演练》第九章 计数器要注意

在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全程进阶---实战演练》第九章 计数器要注意》最后刷新时间 2024-03-14 00:53:55,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《《FPGA全程进阶---实战演练》第九章 计数器要注意》该内容的真实性请自行鉴别。