我想在ModelSim中设置一个27兆赫的时钟信号。我通常通过右击signal -> clock -> setup period来设置时钟。例如,50 MHz时钟-> 20 ns或者我使用了force语句。
因为27 MHz时钟是特殊的,它不是一个整数周期,如果我用appx值设置时钟,它总是有计时问题。
那么,我如何设置这个时钟呢?
发布于 2010-12-02 19:52:22
你的时钟是异步的。你总是会有“计时问题”--如果你的两个时钟边沿彼此非常接近(有时不可避免地会这样),你的一些flops将会表现出亚稳态。
您需要重新同步您的27兆赫域信号到50兆赫域,接受和缓解的事实,有时同步将是错误的。有一些技术可以将“偶尔”的值减少到您认为适合您的系统的小值,但您永远不会摆脱它。
参见。
发布于 2010-12-11 19:35:11
如果必须同时使用两个域(50 MHz、27 MHz),则应在两个域之间的每个接口上实现同步电路:
Signal changes_at50;
Signal read_at27;您不需要键入:
read_at27 <= changes_at50;而是通过同步电路连接它们。(或异步FIFO。)
同步电路通常是级联触发器,以最小化在时钟域之间出现的亚稳定。更多的级联更好地降低了元稳定性,但增加了数据延迟。这是一种设计选择。
发布于 2010-12-02 04:28:30
如果您运行的是只有一个时钟的功能sim,那么只要系统的输入和输出以相同的速率计时,那么时钟的确切周期并不是很重要。
我建议选择一个接近目标周期的时钟周期,并适当地缩放数据源。
https://stackoverflow.com/questions/4326498
复制相似问题