当前位置: 首页 > article >正文

Chapter 7:XDC Precedence (ug903)

7.1 About XDC Precedence(关于XDC优先级)
        Xilinx®设计约束(XDC)的优先级规则继承自Synopsys设计约束(SDC)。本章讨论如何解决约束冲突或重叠。

7.2XDC Constraints Order(XDC约束顺序)
      
  XDC约束是按顺序解释的命令。对于等效约束,最后一个约束优先。约束顺序示例:

> create_clock -name clk1 -period 10 [get_ports clk_in1]
> create_clock -name clk2 -period 11 [get_ports clk_in1]

在该示例中,第二时钟定义覆盖第一时钟定义,因为:
•它们都连接到同一个输入端口。
•未使用create_clock-add选项。
7.3 Exceptions Priority(例外优先级)
        如果约束重叠(例如,如果对同一路径应用了多个时序例外),则从最高到最低的优先级为:
1.时钟组(set_Clock_Groups)
2.错误路径(set_False_Path)
3.最大延迟路径(set_max_Delay)和最小延迟路径(set _min_Delay)
4.多周期路径(set_multycle_path)
        注意:set_bus_skew约束不会影响上述约束的优先级。set_bus_skew约束不会覆盖,也不会被clock groups, max delays, false paths, and multicycle paths覆盖。原因是总线偏斜不是对特定路径的约束,而是路径之间的约束
        注意:False Path, Maximun/Minimum Delay 和Multicycle Path之间的优先级可以使用选项-reset_Path更改。时钟组约束不能被覆盖。Maximun/Minimum Delay或Multicycle Path约束只能覆盖先前定义的“False Path”或“Maximun/Minimum Delay”约束,前提是这两个约束都是用-from/-to/-through的完全相同的参数定义的,并且最新的约束使用-reset_Path。
        优先根据过滤选项和约束中使用的对象类型,可以修改约束的特定性。对象的优先级规则为:
        1.Ports, pins和cells
                使用单元的pins而不是单元本身。
        2.时钟
                时钟的优先级总是低于Ports, pins和cells。使用时钟对象的时序异常的优先级始终低于使用端口、引脚和单元定义的另一个时序异常。
过滤器的优先级规则(从最高到最低)为:

1. -from -through -to
2. -from -to
3. -from -through
4. -from
5. -through -to
6. -to
7. -through
        重要:请注意,在-from或-to中使用的cells总是比时钟具有更高的优先级,即使时钟用于-from到-to的更具体情况。
7.3.1 Exceptions Priority Example(例外优先级示例)

> set_max_delay 12 -from [get_clocks clk1] -to [get_clocks clk2]
> set_max_delay 15 -from [get_clocks clk1]

在本例中,对于从clk1到clk2的路径,第一个约束覆盖第二个约束。
        异常中使用的-through选项的数量不会影响优先级时序引擎使用最严格的约束。如下示例所示:

> set_max_delay 12 -from [get_cells inst0] -to [get_cells inst1]
> set_max_delay 15 -from [get_clocks clk1] -through [get_pins hier0/p0] -
to [get_cells inst1]

        在本例中,第一个约束仅使用单元对象,第二个约束使用时钟对象。尽管inst0由clk1驱动,但对于从单元inst0到单元inst1的路径,第一个约束覆盖第二个约束。
7.3.2 Exceptions Priority with Multiple -through Options  Example(具有多个-through选项的异常优先级示例)

> set_max_delay 4 -through [get_pins inst0/I0]
> set_max_delay 5 -through [get_pins inst0/I0] -through [get_pins inst1/I3]

        这两个例外都由时序引擎保持。更具挑战性的约束用于时序分析。在该示例中,即使对于穿过引脚inst1/I3的路径,也将使用4ns最大延迟约束。
7.3.3 Exceptions Priority with -reset_path Example(带有-reset_path的异常优先级示例)

> set_false_path -from [get_clocks clkA] -to [get_clocks clkB]
> set_max_delay 1 -from [get_clocks clkA] -to [get_clocks clkB] -
reset_path

        时钟clkA和clkB之间的路径由最大延迟覆盖,路径要求为1ns。最大延迟是用-from/-to的相同参数定义的,并指定-reset_path,它会覆盖False path。

> set_false_path -from [get_clocks clkA] -to [get_clocks clkB]
> set_max_delay 1 -from [get_pins reg0/CLK] -to [get_pins reg1/D] -
reset_path

        reg0/CLK和reg1/D之间的路径由false path覆盖,因为该约束的优先级高于最大延迟。尽管有-reset_Path,但最大延迟不会覆盖False Path,因为它没有用相同的-from/-to参数定义。

        建议:必须避免在同一路径上使用多个时序异常,这样时序分析结果就不依赖于优先级规则,并且更容易验证约束的效果。建议您使用report_exceptions命令验证时序异常。此命令可深入了解哪些时序异常被覆盖或忽略。关于更多信息,请参阅Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)。




 


http://www.kler.cn/a/18138.html

相关文章:

  • [项目代码] YOLOv5 铁路工人安全帽安全背心识别 [目标检测]
  • Python酷库之旅-第三方库Pandas(208)
  • 现代Web开发:Vue 3 组件化开发实战
  • 设计模式-七个基本原则之一-单一职责原则 + SpringBoot案例
  • nvm 安装指定node版本时--list 显示为空
  • 服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例
  • TreeMap源码分析,Collections工具类的使用
  • 相对路径的详细用法
  • 行为型模式-中介者模式
  • 武忠祥老师每日一题||定积分基础训练(十)
  • 9大Python常用技巧 经验之谈
  • 安全访问服务边缘 (SASE) 技术的优缺点及工作原理
  • 基于海鸥算法改进的随机森林回归算法 - 附代码
  • 美句分享~程序员的放松时间~
  • 并发编程01:基础篇
  • Linux常用命令,你需要了解多少呢?
  • Java字符串的用法、原理、性能分析和总结
  • 杜甫经典长诗“三吏”“三别”赏析
  • FAST协议解析2 FIX Fast Tutorial翻译【PMap、copy操作符】
  • 代码随想录算法训练营day30 | 332. 重新安排行程,51. N 皇后,37. 解数独
  • Ubuntu22.04.2 LTS 安装nvidia显卡驱动及配置pytorch
  • David Silver Lecture 4: Model-Free Prediction
  • 【Java|golang】2432. 处理用时最长的那个任务的员工
  • ES堆内存:大小和交换
  • Mermaid流程图
  • .net7 通过 JsonTranscoding 实现 gRPC 与 Web API 一鱼两吃