【问题标题】:How to Ignore a Synthesis constraint if signal is not in design?如果信号不在设计中,如何忽略综合约束?
【发布时间】:2015-11-13 04:57:50
【问题描述】:

我的设计中有一个时钟,可以在正常操作中驱动一些逻辑。但是偶尔我想通过设置一个 VHDL 通用来禁用这个逻辑块来禁用它。但是我的 .xcf 文件中仍然有时钟限制,例如:

NET "TEST_CLK" TNM_NET = "TEST_CLK";
TIMESPEC TS_TEST_CLK = PERIOD "TEST_CLK" 20.000 ns HIGH 50 %;

如果我尝试运行综合,我会收到以下错误:

Processing TIMESPEC TS_TEST_CLK: No TNM or User group name TEST_CLK is defined.

当时钟在设计之外(正确)优化后,我如何告诉工具有效地忽略此约束?这甚至可能吗?

【问题讨论】:

  • 两个想法; Vivado 在 XDC 文件中使用 TCL,因此如果您可以使用 Vivado,应该可以通过 TCL 进行条件约束;另一种方法是使用单个虚拟触发器保持TEST_CLK 信号以避免中断流。

标签: fpga xilinx


【解决方案1】:

Vivado 会针对与设计不匹配的约束发出严重警告,但它会继续构建并生成一个 .bit 文件。我认为这是一个不错的权衡,但您必须记住查看严重警告。

此外,正如 Morten Zilmer 评论的那样,Vivado 使用 TCL 文件作为约束,因此您可以对约束条件化或根据实际设计生成它们。

【讨论】:

    【解决方案2】:

    使用 ISE 工具时,ngdbuild(翻译)具有“允许不匹配的时序组”选项(命令行上的 -aut)。当您的设计不完整时,应该使用它。 gui中的翻译属性下也应该有一个选项。如果您在综合时添加约束,我不确定是否有专门执行此操作的选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-04
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      相关资源
      最近更新 更多