在FPGA设计中,我们遵循的原则之一是同步电路,即所有电路是在同一时钟下同步地处理数据。这个概念可进一步展开,即不局限于同一时钟,只要时钟之间是同步关系(两者之间有明确的相位延迟,例如同一个MMCM生成的时钟),这是因为目前的芯片规模越来越大,设计越来越复杂,往往需要多个时钟同时运算。
通常,我们说某个信号与指定时钟同步,意味着这个信号是由该时钟驱动的逻辑生成的,或者这个信号只有在时钟有效沿(一般是上升沿有效)下才会被触发。以复位信号为例,就有同步复位和异步复位之分。我们从HDL代码角度看一下二者的区别。如下图所示代码,描述的是同步复位触发器,左侧为VHDL-2008版本的描述方式,右侧为System Verilog版本的描述方式。可以看到敏感变量列表(左侧第15行,右侧第8行)中只有时钟clk,因此,进程中的状态变化就依赖于时钟的变化即时钟有效沿。

我们再看看异步复位是如何描述的,如下图所示。左侧是VHDL-2008版本,右侧是System Verilog版本。可以看到,此时敏感变量列表中除了时钟clk之外还有复位信号rst。在VHDL版本中,可以明确地看到复位信号位于if条件分支,而时钟有效沿位于elsif分支,优先级低于复位信号。因此,这里只要复位有效,无论时钟沿是否有效都会触发操作。

进一步,我们从仿真角度看看这两者的区别。同步复位触发器的仿真结果如下图所示。可以看到复位信号只有在时钟有效沿下才起作用。图中第二个复位脉冲并没有被时钟有效沿采到,故不会导致触发器复位。

异步复位触发器仿真结果如下图所示。可以看到第二个复位脉冲尽管没有在时钟有效沿下,但仍促使触发器复位。这正是异步的原理。

对比两个仿真结果,我们可以看到同步复位的一个明显的好处就是利用了时钟的过滤功能,去除了复位信号上的毛刺,而异步复位下,如果复位信号有毛刺就会导致触发器误操作,这在状态机电路中尤为严重,很有可能导致状态机进入无效状态。
编辑:lyn
-
仿真
+关注
关注
53文章
4406浏览量
137652 -
同步复位
+关注
关注
0文章
27浏览量
10956 -
异步复位
+关注
关注
0文章
47浏览量
13642
原文标题:同步复位与异步复位
文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
揭秘RESET复位键:引脚设计如何支撑硬件系统的重启通路
单片机如何选择复位方式?
GraniStudio:轴复位例程
GraniStudio零代码平台轴复位算子支持多少个轴同时复位,有哪些回零模式?
HMC959LC3提供复位功能和可编程输出电压的26GHz 4分频器件,采用SMT封装技术手册
HMC859提供复位功能和可编程输出电压的26 GHz 8分频器件技术手册
LM3724系列 低功率电压监控和复位IC,带手动复位功能数据手册
TPS3840-Q1 具有手动复位和可编程复位时间延迟的汽车高输入电压监控器数据手册
TPS3870-Q1 具有延时和手动复位功能的汽车级高精度过压复位 IC数据手册
TLV840系列 具有可调复位时间延迟和手动复位功能的低压监控器数据手册

关于同步复位与异步复位的仿真详解
评论