Vhdl 用双寄存器法求解亚稳态问题
为了解决Verilog中不同时钟域引起的亚稳态问题,采用了双寄存器方法 但据我所知,亚稳态的最终输出是未知的。输出独立于输入 所以,我的问题是如何使用双寄存器方法保证输出的正确性Vhdl 用双寄存器法求解亚稳态问题,vhdl,verilog,fpga,clock,Vhdl,Verilog,Fpga,Clock,为了解决Verilog中不同时钟域引起的亚稳态问题,采用了双寄存器方法 但据我所知,亚稳态的最终输出是未知的。输出独立于输入 所以,我的问题是如何使用双寄存器方法保证输出的正确性 谢谢。你不能完全肯定你避免了亚稳态。 正如您所提到的,亚稳触发器的输出是不可预测的,因此即使使用“双寄存器”方法,当您具有亚稳性时,也可能传播错误的值 然而,该方法从未打算解决亚稳态问题,而是试图降低亚稳态值进入电路的概率。所谓MTBF(平均无故障时间)。为了减少MTBF,您甚至可以链接2个以上的寄存器 即使这不能解决
谢谢。你不能完全肯定你避免了亚稳态。 正如您所提到的,亚稳触发器的输出是不可预测的,因此即使使用“双寄存器”方法,当您具有亚稳性时,也可能传播错误的值 然而,该方法从未打算解决亚稳态问题,而是试图降低亚稳态值进入电路的概率。所谓MTBF(平均无故障时间)。为了减少MTBF,您甚至可以链接2个以上的寄存器 即使这不能解决值的不可预测性,使用这些双寄存器也很有趣,因为当值是亚稳态时,它将振荡直到稳定到0或1 这种振荡会使电路切换,然后在每次转换都会消耗能量的情况下白白消耗大量能量。因此,使用双寄存器进行时钟域交叉非常重要 不过,为了确保数据有效,可以在两个时钟域之间使用请求确认机制 快速示例:
希望有帮助。这个问题可能更适合于Okay,谢谢。我可以再发一次问题吗?谢谢Krouitch,但我还是有些困惑。所以,在第4步之后,我只能保证请求信号是稳定的,并且为1,但是如何保证数据也是稳定的?谢谢。如果您在发送请求之前至少发送了一个时钟周期的数据,那么数据必须稳定。如果不是,这意味着路径对于您选择的时钟周期来说太长。这里有一篇文章说明了我的意思: