story · 2 天前

高效时序收敛的 SDC 技术

SDC 是一种行业标准格式,用于指定 ASIC 和 FPGA 设计的时序和操作约束。它对综合、静态时序分析(STA)和 place 和 routing 等各种 EDA 工具至关重要。

关键概念:

  • 时钟定义:指定时钟波形和时序特性。
  • 输入/输出延迟:定义信号到达和输出时间的约束。
  • 时序异常:包括需要特殊处理的路径(例如,假路径、多周期路径)。
  • 设计规则:设置最大扇出、transition 时间和其他物理规则。

在后端实现中 SDC 文件的使用帮助工具优化布局和逻辑以满足时序要求。准确的 SDC 约束确保设计符合性能规范而且可制造。

1.Multi-Mode Multi-Corner(MMMC)约束

在现实世界的设计中,芯片在各种模式(例如功能模式、测试模式、高性能模式和低功耗模式等)和不同的条件下(制程、电压、温度)运行。SDC 必须同时考虑这些变量,这些变量通过 MMMC 约束进行管理。我们必须确保设计在所有此类模式下都符合时序。

Synopsys PrimeTime 等工具允许加载多个场景,有助于分析不同模式和角落的时序。

命令指(适用于 Synopsys 工具):- set_operating_conditions 和 set_mode 命令可用于在这些模式之间切换。

2.clock group 和复杂的时钟关系

许多设计都有多个时钟以不同的频率或相位运行,这使得时序分析变得复杂。现在,假设一组数据从 1 个触发器(由 1 个时钟触发)传输,并由另一个触发器(由其他时钟触发)捕获,那么你将如何在它们之间进行时序分析。

同样,当时钟是非同步的时,可以将它们指定为“logically exclusive”,这意味着它们之间不会分析。

SDC 提供像set_clock_groups这样的命令来定义时钟之间的关系。在 SoC 等多时钟系统中,set_false_path命令可用于不需要时序分析的时钟之间的路径。使用 create_clock 定义适当的时钟域并将其分组有助于避免不必要的时序违例。

命令:- set_clock_groups,set_false_path

3.处理高级时序异常

当一些路径可能需要多个时钟周期才能完成时,设计通常会应用多周期路径或最小/最大延迟约束。这些异常路径有助于优化时序并减少分析中的过度优化。根据您的电路要求,两个低速组件之间的路径可能会放松时序,因为不需要每个时钟周期传输数据。在这种情况下,使用set_multicycle_path,我们指定路径可以需要多少个周期,_set_min_delay  或者_set__max_delay_有助于控制启动和捕获寄存器之间的特定延迟。

命令:- set_multicycle_path,set_min_delay,set_max_delay

4.用于低功耗的 Power-Aware SDC

设计 在能源效率优先的设计中,低功耗约束至关重要。您可以通过 SDC 定义电源门控、多电压域效果,以定义不同电源域之间如何相互作用的信号。

Synopsys PrimeTime PX 等工具使用这些约束来执行电源感知时序分析。

命令:-  set_isolation,set_level_shifter,_set_power_domain

5.自动化 SDC 生成和验证

管理复杂设计的 SDC 需要自动化来减少错误。自定义脚本可以帮助自动为不同的模块或模式生成 SDC 文件。自动化脚本可以从 RTL 或 netlist 中提取时序要求,并生成适当的 SDC 约束,从而节省设计迭代时间。

END

作者:learn vlsi
来源:数字芯片实验室

推荐阅读

更多数字 IC 设计技术干货等请关注数字芯片实验室专栏。添加极术小姐姐(微信:aijishu20)微信可申请加入IC设计交流群。
推荐阅读
关注数
12319
内容数
221
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息