如何在设备实现期间禁用不相关的时钟域交叉?

包含时钟域交叉的定时路径是两个寄存器之间的路径,这两个寄存器由两个时钟提供时钟。

  • 在使用Place和Route TRACE执行时序分析后,此类时序路径通常具有以下源和目标报表形式: 资源:
  • FF Q U_my_reg_1_1 / q(来自CLK_A +) 目的地:

U_my_reg_3_2 / q中的FF数据(到CLK_B +)

注意,源和目的地的时钟不仅具有不同的名称,而且也已知是不同的(即,不共享相同的时钟网络)。

但是,它们可以是同步或异步时钟。

在某些情况下,TRACE考虑时钟域交叉路径至关重要,而在其他一些情况下则不然。

用户可自行决定此类路径是否相关。

当它不重要时(即不相关的时钟域交叉路径),在某些情况下,时钟域交叉路径的时序分数对整体设计时序分数产生负面影响。
这种情况产生了一种情况,其中时序报告指示设计未满足时序,而实际上,缺少这些路径将导致设计满足时序。

知道了这一点,用户可以得出结论,他或她的计时故障是由于错误的路径造成的。
包括不相关的时钟域交叉路径的另一个副作用是可能更长的实现运行时间。

在实现期间,这些路径被考虑在内,并且这些路径可能导致长的运行时间,因为有时难以实现这些路径的时序要求。

在确定时钟域交叉路径是否不相关之后,用户可以通过使用BLOCK约束来禁用该路径上的分析。
ispLEVER设计软件和Lattice Diamond都提供BLOCK约束。
添加BLOCK约束的一种方法是,用户需要编辑他/她的格子首选项文件(.lpf文件)。
下面是BLOCK约束的示例语法,特别是阻塞从CLK_A到CLK_B的路径。
从CLKNET“CLK_A”到CLKNET“CLK_B”的块路径; 。注意,上面的约束仅​​影响从CLK_A到CLK_B的路径。。要启用从CLK_B到CLK_A的阻塞路径,需要另一个约束条目: 。从CLKNET“CLK_B”到CLKNET“CLK_A”的块路径; 。可以在ispLEVER和Lattice Diamond的帮助文件中找到完整的文档和其他输入BLOCK约束的方法。。要访问帮助文件: 。钻石 。点击“帮助” - >。将出现“Lattice Diamond Help”和一个网页。。在网页中,单击“搜索”选项卡,然后输入“设置BLOCK首选项”。。使用在搜索标签中输入的确切关键字查找结果,然后点击该链接。 。ispLEVER软件 。点击“帮助” - >。将出现“Project Navigator帮助”和一个网页。。在网页中,单击“搜索”选项卡,然后输入“设置BLOCK首选项”。。使用在搜索标签中输入的确切关键字查找结果,然后点击该链接。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-27 11:16:10 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它