在逻辑综合中如何约束设计中的timing path

科技   2024-12-10 18:34   美国  

本文目标是定义所有输入、内部和输出路径的setup timing约束。

假设我们有一个非常简单和通用的设计(IP),我们是IP designer。它有一个时钟域;它有一个输入端口和触发器之间的组合逻辑,两个触发器之间的内部组合逻辑,以及触发器和输出端口之间的组合逻辑。我们如何约束这个设计?


通常我们的IP将与SoC中的其他IP集成。因此,我们的IP的输入将来自另一个IP,在这种情况下来自IP-2,我们的IP的输出将驱动另一个IP,在这种情况下是IP-3。


注意:在定义输入和输出约束后,默认情况下,综合工具假设输入数据来自我们设计之前的pos-edge时序元件(即来自IP-2),输出数据在后续设计中进入pos-edge时序元件(即IP-3)


当综合工具执行时序分析时,它会将设计分解为timing path。timing path有一个起点和一个终点,下面讨论的是timing path的可能起点和终点。

起点

  • 输入端口input(时钟端口除外)
  • 触发器的时钟端口

终点

  • 输出端口output(时钟端口除外)
  • 触发器的任何输入引脚(时钟引脚除外)

让我们看一个例子


Path1:从输入端口开始,以触发器的输入引脚结束。
Path2:从触发器的时钟引脚开始,以触发器的输入引脚结束。
Path3:从触发器的时钟引脚开始,在输出端口结束。
Path4:从输入端口开始,在输出端口结束。

现在让我们回到我们的设计。

首先,我们将专注于约束寄存器到寄存器路径——


为了约束寄存器到寄存器路径,我们只需要向综合工具提供时钟周期。假设我们设计中的时钟的时间周期为5ns,因此我们将定义一个时间周期为5ns的时钟,并指定时钟端口。


create_clock -period 5 [get_ports CLK]


注意:综合工具假设时钟在0ns时上升,占空比为50%。


问题-1:假设在我们的设计中,两个触发器(FF-1和FF-2)都来自同一个工艺库,CK到Q的延迟为0.5ns,setup时间为1ns。如果我们不想违反setup时间,两个触发器(combo logic-2)之间的组合逻辑可以引入的最大可能延迟是多少?鉴于时钟的时间周期是5ns。[答案是3.5ns]


答案-1:为了满足setup时间 –

(clock-to-Q delay of FF-1 + delay due to combo logic-2) ≤ (time period of clock – setup time of FF-2)


因此,combo logic-2可以引入的最大可能延迟为3.5ns。

在综合工具中,时钟具有理想的行为,这意味着0上升/下降时间和0 skew。可以估计skew和transition timing,以便更准确地表示时钟行为,从而进行更真实的时序分析。

建模clock skew

数字芯片实验室
前瞻性的眼光,和持之以恒的学习。
 最新文章