v3学院带你学习-时序逻辑中时钟上升沿对齐数据变化时的处理技巧的FPGA实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了v3学院带你学习-时序逻辑中时钟上升沿对齐数据变化时的处理技巧的FPGA实现相关的知识,希望对你有一定的参考价值。

此文章为原创出自 V3学院 www.v3edu.org

  时序逻辑中,数据都是在时钟的上升沿或者下降沿时刻进行采样的,以上升沿为例,时钟采数据时应该采的是时钟上升沿左边变量的值,运算的结果体现在时钟上升沿的右边,但是,在用modelsim等一些仿真工具进行仿真的时候,如果时钟上升沿刚好和数据变化对齐,就会出现与上述理论不一致的原因,如下仿真波形图:

技术分享  

  上图中的例子是用时钟上升沿控制变量a和b按位或运算并且把结果赋值给c的小实验,根据前面说的理论,黄线位置处,时钟上升沿采的变量a和b的值都为0,进行或运算的结果应该是0,c在黄线右边应该体现一个值为0的波形,但是此时却出现了一个1的结果。

  这个现象其实并不是我们的功能文件的编写出了问题,也不是因为理论不对,而是测试文件需要做一个小的修改,才能跟理论相符合,即在测试文件中,需要对时钟赋值用阻塞赋值方式赋值“=”,其它变量都用非阻塞赋值方式赋值“=”,代码如下:

技术分享

  此时,仿真出来的波形就和理论的一致了:

技术分享

此文章为原创出自 V3学院 www.v3edu.org

以上是关于v3学院带你学习-时序逻辑中时钟上升沿对齐数据变化时的处理技巧的FPGA实现的主要内容,如果未能解决你的问题,请参考以下文章

时序逻辑电路基础

RISC处理器设计------时序的设计

v3学院 FPGA专家 带你学习FPGA实现格雷码跨时钟域异步fifo

基于FPGA的跨时钟域信号处理——亚稳态(V3-FPGA学院)

下面时序图是不是是上升沿输入,下降沿输出?为啥我看理解的都是上升沿呢?

FPGA的学习:D触发器