0

在设计 RTL 之后,我使用 Synplify pro 创建了 my_design.sdc 文件(用于约束时钟、输入/输出延迟……)。当约束正确时,我单击综合,然后我会自动获得另一个 my_design_sdc.sdc 文件。如果我右键单击第一个,我可以为 my_design_sdc.sdc 文件选择“用于综合”和“用于编译”。我不明白的是,哪个文件是做什么用的,因为在编译和布局布线之后,还有一个 SmartTime 软件,它采用 my_design_sdc.sdc 文件。

Q1:这两个文件有什么关系?

Q2:是否必须将它们都放在完整的链中(RTL 设计到编程)?

Q3:如果是这样,如果 SmartTime 的命令与 Synplify 不同,我如何确定约束之间的关系是相同的?

Synplify 多周期约束定义:

set_multicycle_path [-start|-end] [-from {objectList}] [-through {objectList} [-through {objectList} ...]] [-to {objectList}] pathMultiplier[-disable] [-commentcommentString]

SmartTime 多周期约束定义:

set_multicycle_path ncycles [-setup] [-hold] [-from from_list] [–through through_list] [-to to_list]

此外,Synplify 使用define_clock命令来定义时钟约束,SmartTime 使用create_clock。这些只是很少的区别。

我在用着:

  • Libero SoC v11.8 sp2(在经典约束流视图中)
  • 冰屋2
4

1 回答 1

1

Q1:Synplify 会根据您给 synplify 的时钟设置自动生成一个 smarttime SDC 文件。这样您就不必两次定义所有时钟。如您所知,Synplify 和 Smarttime 需要的 SDC 文件略有不同。

Q2:取决于您的项目。通常为 Synplify 创建一个 SDC 文件,基本上只包含时钟信息。然后,您从 synplify 中获取自动生成的 SDC 并将其与第三个 SDC 一起用于定义所有输入/输出延迟、错误路径和类似内容的第三个 SDC。

Q3:这就是自动生成文件的用途。它允许您在一个 SDC 文件中定义所有时钟设置。

请记住,您提供给 Synplify 的 SDC 信息通常不是非常重要。它只是帮助 Synplify 有时做出更好的区域/速度优化调用。您提供给编译步骤的 SDC 文件是关键文件。在这里,您的时钟、输入/输出延迟和错误路径必须 100% 正确。

顺便说一句:多循环路径基本上是一种“专家级机制”。很难做到这些。这是在适当的设计中很少使用的东西。然而,它们的功能经常被误解和误用,导致设计不稳定。在所有可能的情况下,多循环路径约束不是您应该在设计中使用的东西。

于 2018-04-23T13:55:26.320 回答