SDF 3.0 概述

SDF 3.0 概述

标准延迟格式 (Standard Delay Format, SDF) 是一种用于集成电路设计中时序数据交换的文件格式。

SDF 3.0 版本相较于 SDF 2.1 版本有许多重要的改进和变化,这些改动旨在提高时序分析的准确性和文件的可读性。

SDF文件内容

SDF文件是一种用于描述电子设计中时序信息的标准格式,其内容主要分为以下几个部分:

1. 文件头(Header Section)

文件头包含了整个SDF文件的基本信息,这些信息用于描述文件的上下文和环境条件。它包括但不限于以下条目:

  • SDFVERSION:指定SDF文件遵循的版本,例如"3.0"。
  • DESIGN:设计名称,用于标识文件中时序数据所属的设计。
  • DATE:文件生成的日期。
  • VENDOR:生成SDF文件的工具的供应商。
  • PROGRAM:生成SDF文件的程序名称。
  • VERSION:程序的版本号。
  • DIVIDER:层级分隔符,用于在标识符中表示层级结构。
  • VOLTAGE:电路工作的电压条件。
  • PROCESS:工艺条件。
  • TEMPERATURE:环境温度。
  • TIMESCALE:文件中所有时间值的单位,如1ns表示1纳秒。

文件头示例:

sdf(DELAYFILE
  (SDFVERSION "3.0")
  (DESIGN "MyCircuit")
  (DATE "May 1, 1995")
  (VENDOR "Example Corp")
  (PROGRAM "TimingAnalyzer")
  (VERSION "1.0")
  (DIVIDER "/")
  (VOLTAGE 3.3:2.5:1.8)
  (PROCESS "typical")
  (TEMPERATURE 25:75)
  (TIMESCALE 1ns)
)

2. 单元条目(Cell Entries)

单元条目定义了设计中的特定单元(例如逻辑门、触发器等)及其时序特性。每个单元条目包括:

  • CELLTYPE:单元的类型,例如"DFF"表示双稳态触发器。
  • INSTANCE:单元的实例名称,用于标识设计中的具体单元。
  • CELL条目可以包含以下两种类型的时序规格:

单元条目示例:

sdf
(CELL (CELLTYPE "DFF") (INSTANCE "u1") ...)

3. 时序规格(Timing Specifications)

时序规格详细描述了单元的时序特性,包括:

  • DELAY:定义了单元的延迟信息,可以是绝对延迟(ABSOLUTE)或增量延迟(INCREMENT)。
  • TIMINGCHECK:定义了时序检查,如设置时间(SETUP)、保持时间(HOLD)等。
  • TIMINGENV:定义了时序环境,包括路径约束、周期约束等。

时序规格示例:

sdf(DELAY
  (ABSOLUTE
    (IOPATH "clk" "q" (1.0:1.1:1.2))
  )
)

4. 延迟定义(Delay Definition Entries)

延迟定义提供了具体的延迟值,可以关联到不同的路径和条件下。包括:

  • IOPATH:定义了输入到输出的路径延迟。
  • COND:条件语句,允许在特定条件下指定延迟。
  • PORT:定义了端口延迟。
  • INTERCONNECT:定义了两个端口之间的互连延迟。
  • NETDELAY:定义了网络延迟。
  • DEVICE:定义了设备延迟。

延迟定义示例:

sdf
(IOPATH "clk" "q" (1.0:1.1:1.2))

这些部分构成了SDF文件的核心内容,它们共同为EDA工具提供了必要的时序信息,以进行精确的时序分析和设计优化。

SDF 3.0 的主要特点

  1. 时序数据的表示
    • 支持模块路径、器件、互连和端口延迟的描述。
    • 提供设置、保持、恢复、移除等时序检查的功能。
    • 增加了针对不同操作条件(如最优、典型和最差情况)的延迟三元组表示方法。
  2. 时序约束
    • 支持路径、偏斜、周期、总和和差异约束的定义,允许在设计过程中明确时序要求。
  3. 时序环境
    • 允许定义设计所预期的时序运行环境,包括输入波形和信号到达时间等。
  4. 增量和绝对延迟
    • 可以使用增量或绝对值表示延迟,适应不同的设计和分析需求。
  5. 条件和无条件延迟
    • SDF 文件支持条件和无条件的模块路径延迟和时序检查,使得时序描述更加灵活。

SDF 3.0 和 SDF 2.1 的详细对比

SDF 3.0SDF 2.1 都是标准延迟格式(Standard Delay Format)的不同版本,用于集成电路设计中的时序数据交换。以下是它们之间的主要区别,每个特点都附带了详细的说明和示例。

1. 格式要求的变化

  • SDF 3.0:在 SDF 3.0 中,SDFVERSION 条目是必须的。这确保了工具能够正确地识别和处理文件。

  • SDF 2.1:虽然 SDF 2.1 也要求 SDFVERSION 条目,但在某些情况下它是可选的。

  • 示例:

    (SDFVERSION "3.0")
    

    在 SDF 2.1 中,SDFVERSION 的使用是推荐的,但在 SDF 3.0 中是强制性的。

2. 延迟表示的改进

  • SDF 3.0:引入了新的 PATHPULSEGLOBALPATHPULSE 关键字,这些关键字允许更详细地指定路径的脉冲传播限制。例如,可以定义在不同条件下传播的脉冲最小宽度。

  • SDF 2.1:这些构造存在于 SDF 2.1 中,但它们的使用范围和功能较为有限。

  • 示例

    (PATHPULSE (posedge clk) q (0.2:0.3:0.4))
    

    SDF 3.0 中对 PATHPULSE 的支持更加完善,允许定义多个条件下的脉冲宽度。

3. 时序检查的变化

  • SDF 3.0:新增了 RECREM 构造,这是 RECOVERYREMOVAL 时序检查的组合,类似于 SETUPHOLD 构造。它允许在同一条目中定义恢复和移除时间检查。

  • SDF 2.1:在 SDF 2.1 中,恢复和移除时间检查是单独定义的,没有合并为一个构造。

  • 示例

    (TIMINGCHECK
      (RECREM (posedge clk) q (2:3:4) (1:2:3))
    )
    

    这种组合构造简化了复杂电路的时序检查。

4. 条件和无条件的延迟

  • SDF 3.0:SDF 3.0 继续支持条件和无条件的模块路径延迟和时序检查,并进一步增强了这些功能的灵活性。

  • SDF 2.1:虽然 SDF 2.1 也支持条件路径延迟,但对复杂条件的处理能力不如 SDF 3.0。

  • 示例

    (IOPATH (COND A) A B (1:2:3))
    

    SDF 3.0 可以在更复杂的条件下进行时序分析。

5. 时序环境的扩展

  • SDF 3.0:SDF 3.0 扩展了时序环境的描述,例如 ARRIVALDEPARTURE 环境构造,用于更精确地定义信号的到达和离开时间。

  • SDF 2.1:SDF 2.1 对时序环境的描述较为有限,没有这些扩展构造。

  • 示例

    (ARRIVAL (posedge clk) (1:2:3))
    (DEPARTURE (negedge clk) (2:3:4))
    

    这些新构造使得 SDF 3.0 能够更准确地模拟电路的动态行为。

SDF 3.0 相比 SDF 2.1,在时序数据的表示、条件处理、时序检查和时序环境描述等方面都进行了显著的改进。这些改进使得 SDF 3.0 在集成电路设计的各个阶段中,尤其是复杂设计的时序分析中,更具灵活性和精确性。

延迟模型(The Delay Model)

延迟模型提供了关于如何在ASIC应用工具中使用SDF的指导方针。

SDF中的所有构建都应直接适用于延迟模型。ASIC时序被分为前向注释和后向注释。

尽管SDF支持这两种时序概念,但本节集中在ASIC时序后向注释模型上。SDF的下一版本将为前向注释提供一个抽象模型。

接下来的部分定义了延迟模型,并提供了应遵守的规则,以确保正确解释和使用SDF构建。

延迟模型

延迟模型

时序对象

延迟模型由以下时序对象组成:

  1. 互连延迟(INT),在SDF中由INTERCONNECT延迟构建表示。
  2. 路径延迟(PD),在SDF中由IOPATH延迟构建表示。
  3. 状态依赖路径延迟(SDPD),在SDF中由COND关键字表示。
  4. 端口延迟(IPD),在SDF中由PORT延迟构建表示。
  5. 设备延迟(DEV),在SDF中由DEVICE构建表示。注意,当与单元输出端口一起指定时,这个时序对象是退化的路径延迟;当与原始实例一起指定时,这个时序对象是其固有延迟。
  6. 路径脉冲(PP),在SDF中由PATHPULSE构建表示。
  7. 时序检查(TC),根据时序检查的类型,在SDF中由几个关键字表示。

延迟模型图展示了这些时序对象之间的关系和相互作用。

规则

各种路径延迟模型的规则:

  1. 路径延迟:在同一个单元内,任何输入(或双向)端口到任何输出(或双向)端口之间描述的延迟。
  2. 多路径延迟:可以为任何输出(或双向)端口定义多个路径延迟。
  3. 状态依赖路径延迟:只能通过使用状态依赖延迟来为任何一对端口定义多个路径延迟。
  4. 路径延迟的转换状态:路径延迟可以有多达十二个转换状态,每个状态具有不同的延迟值。
  5. 负的时序值:在某些应用工具中,绝对输入-输出路径、端口、网络、设备和互连延迟的负时序值可能默认为零。
  6. 互连延迟:描述在任何单元的任何输出(双向)端口到任何单元的任何输入(双向)端口之间的延迟。
  7. 多互连延迟:可以为任何输入(双向)端口、目标端口描述来自不同源的多个互连延迟。
  8. 时序检查的应用:根据时序检查的类型,它可以应用于单个或一对端口。
  9. 输出端口的时序检查:允许从输出端口到另一个输出端口的时序检查。
  10. 时序检查的顺序:时序检查在互连延迟应用之后进行。
  11. 负的时序检查限制值:仅SDF SETUPHOLD、RECREM和NOCHANGE结构允许负的时序检查限制值。一些应用工具可能使用这些负值,而其他工具可能将它们编译为零值。
  12. 互连延迟与端口延迟的互斥性:如果为同一目标信号指定了端口延迟,则不能使用源和目标信号之间的互连延迟。
  13. 端口延迟与互连延迟的互斥性:如果指定了源和同一目标信号之间的互连延迟,则不能使用目标信号的端口延迟。
  14. IOPATH延迟与DEVICE延迟的互斥性:如果为同一单元内同一输出端口指定了设备延迟,则不能使用IOPATH延迟。
  15. DEVICE延迟与IOPATH延迟的互斥性:如果为同一单元内输入端口到同一输出端口指定了IOPATH延迟,则不能使用DEVICE延迟。
  16. 内部节点的使用:使用内部节点的所有时序对象可能会被没有内部节点概念的应用工具忽略。
  17. 时序对象的顺序:对于同一时序对象,延迟注释按照在单个SDF文件中遇到的顺序执行。****

延迟为负数的情况

在SDF(Standard Delay Format)文件中,负数数据通常不是标准的表示方法,因为时延通常被视为非负值,表示信号在电路中传播所需的时间。

然而,有时在特定的应用场景或特定的EDA(Electronic Design Automation)工具中,可能会出现负数的时序数据。

这可能是由于以下原因:

  1. 工具特定行为:某些工具可能使用负数来表示特定的时序条件或优化策略。
  2. 数据编码:在某些情况下,负数可能被用作一种编码方式,以指示特定的时序特性或状态。
  3. 错误或异常:负数时序数据可能是由于数据生成或处理过程中的错误。

理解

从时序的角度理解负数数据,可能需要考虑以下方面:

  • 条件性时序:负数可能表示在特定条件下的时序关系,例如,某个信号在满足特定条件时可能会有“提前到达”的情况。
  • 优化和调整:在某些优化过程中,可能会使用负数来表示对标准时序模型的调整。
  • 特殊约定:某些设计流程或工具可能有特殊的约定来使用负数表示时序数据。

处理方法

在提供的SDF 3.0文档中,确实有提及到负数时序数据的处理方式。以下是文档中的相关描述以及我的解释:

  1. 负的时序值:文档中指出,在某些应用工具中,对于绝对输入-输出路径、端口、网络、设备和互连延迟的负时序值可能默认为零 。

    Negative timing values for absolute input-output path, port, net, device and interconnect delays may default to zero in certain application tools.

  2. 时序检查中的负值:在时序检查(如SETUP、HOLD、RECOVERY等)中,负的时序检查限制值是被允许的,但一些应用工具可能会使用这些负值,而其他工具可能会将它们编译为零值。

    Negative timing check limit values are allowed only for the SDF SETUPHOLD, RECREM and NOCHANGE constructs. Some application tools may use the negative values while others may compile them as zero values.

根据这些描述,当在SDF文件中遇到负数时序数据时,应该考虑以下处理方法:

  • 默认为零:如果使用的工具不支持负的时序值,可能需要将这些负值视为零或忽略它们。
  • 工具特定行为:如果工具能够理解负值,负数可能表示特殊的时序条件或优化。
  • 数据校验:在将SDF文件用于时序分析之前,应该校验数据以确保其符合预期,并且没有错误。
  • 文档和支持:查阅使用SDF文件的工具的文档,了解它们如何处理负数时序数据,并在必要时联系工具供应商获取支持。
  • 标准化处理:在可能的情况下,将所有时序数据转换为正值,以避免在不同工具之间的兼容性问题。

处理SDF文件中的负数时序数据需要对数据的来源、含义和工具的处理能力有深入的理解,并采取适当的方法来确保时序分析的准确性。

要将这些负值视为零或忽略它们。

  • 工具特定行为:如果工具能够理解负值,负数可能表示特殊的时序条件或优化。
  • 数据校验:在将SDF文件用于时序分析之前,应该校验数据以确保其符合预期,并且没有错误。
  • 文档和支持:查阅使用SDF文件的工具的文档,了解它们如何处理负数时序数据,并在必要时联系工具供应商获取支持。
  • 标准化处理:在可能的情况下,将所有时序数据转换为正值,以避免在不同工具之间的兼容性问题。

处理SDF文件中的负数时序数据需要对数据的来源、含义和工具的处理能力有深入的理解,并采取适当的方法来确保时序分析的准确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShareWow丶

前人栽树,分享知识,传播快乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值