【问题标题】:Libero SoC timing constraints (*.sdc) differenceLibero SoC 时序约束 (*.sdc) 差异
【发布时间】:2018-04-12 10:55:26
【问题描述】:

在设计 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(在经典约束流视图中)
  • IGLOO2

【问题讨论】:

    标签: fpga register-transfer-level


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-21
      • 2014-07-06
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      • 1970-01-01
      相关资源
      最近更新 更多