我想设置27 MHz时钟信号 modelsim. 。我通常通过右键单击该信号 - >时钟 - >设置周期来设置时钟。例如,50 MHz时钟 - > 20 ns或我使用了强制语句。

因为27 MHz时钟很特别,所以这不是整数时期,如果我用APPX值设置时钟,它总是有正时问题。

那么,如何设置这个时钟?

有帮助吗?

解决方案

您的时钟是异步的。你 将要 始终有“正时问题” - 如果您的两个时钟边缘彼此非常接近(有时不可避免地会)您的某些拖鞋将表现出稳定性。

您需要将27 MHz域信号重新同步到50 MHz域,接受并减轻同步偶尔会错的事实。有一些技术可以将“偶尔”的价值降低到您认为适合您的系统的价值,但您永远不会摆脱它。

FPGA-FAQ 0017,告诉我有关亚稳定性的信息.

其他提示

如果必须使用两个域(50 MHz,27 MHz),那么您应该在两个域之间的每个内侧实现同步电路:

Signal changes_at50;
Signal read_at27;

您不输入:

read_at27 <= changes_at50;

但是通过同步电路将它们固定。 (或异步FIFO。)

同步电路通常是级联的触发器,以最大程度地减少时钟域之间产生的元稳定性。更多的级联反应更好地降低了元稳定性,但增加了数据延迟。这是一个设计选择。

如果您仅使用一个时钟运行功能SIM,那么只要系统的输入和输出以相同的速率计时,时钟的确切周期就不会太重要。

我建议选择一个接近目标周期的时钟周期,并适当地扩展您的数据源。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top