Modelsim:如何设置27 MHz时钟

时间:2010-12-01 16:24:56

标签: vhdl modelsim

我想在ModelSim中设置一个27 MHz的时钟信号。我通常通过右键单击该信号来设置时钟 - >时钟 - >设置期。例如,50MHz时钟 - > 20 ns或我使用了强制声明。

因为27 MHz时钟是特殊的,所以它不是整数周期,如果我用appx值设置时钟,它总是有时序问题。

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

3 个答案:

答案 0 :(得分:4)

你的时钟是异步的。你总是有“时间问题” - 如果你的两个时钟边缘彼此非常接近(因为它们有时会不可避免),你的一些翻牌将表现出亚稳态。

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

请参阅 FPGA-FAQ 0017, Tell me about Metastability

答案 1 :(得分:1)

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

Signal changes_at50;
Signal read_at27;

您不输入:

read_at27 <= changes_at50;

但是通过同步电路连接它们。 (或异步FIFO。)

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

答案 2 :(得分:0)

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

我建议选择接近目标期的时钟周期,并适当缩放数据源。