Intel Quartus Prime Standard Edition 用户指南...Intel® Quartus® Prime Standard...

83
Intel ® Quartus ® Prime Standard Edition 用户指南 Timing Analyzer 针对 Intel ® Quartus ® Prime 设计套件的更新:18.1 订阅 反馈 UG-20183 | 2018.09.24 官网最新文档: PDF | HTML

Transcript of Intel Quartus Prime Standard Edition 用户指南...Intel® Quartus® Prime Standard...

  • Intel® Quartus® Prime StandardEdition用户指南Timing Analyzer

    针对 Intel® Quartus® Prime设计套件的更新:18.1

    订阅

    反馈

    UG-20183 | 2018.09.24

    官网最新文档:PDF | HTML

    https://www.intel.com/content/www/us/en/programmable/bin/rssdoc?name=ony1529966370740mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82https://www.intel.cn/content/dam/altera-www/global/zh_CN/pdfs/literature/ug/ug-qps-timing-analyzer-ch.pdfhttps://www.intel.cn/content/www/cn/zh/programmable/documentation/ony1529966370740.html

  • 内容

    1. 时序分析介绍...................................................................................................................... 31.1. 时序分析基本概念.....................................................................................................3

    1.1.1. 时序路径和时钟分析...................................................................................... 41.1.2. 时钟设置分析.............................................................................................. 71.1.3. 时钟保持分析.............................................................................................. 71.1.4. 恢复和移除分析(Recovery and removal analysis).............................................. 81.1.5. 多周期路径分析........................................................................................... 91.1.6. 亚稳性分析(Metastability Analysis)............................................................... 141.1.7. Timing Pessimism(时序悲观).......................................................................141.1.8. 时钟数据分析(Clock-As-Data Analysis).......................................................... 151.1.9. 多角分析(Multicorner Analysis)....................................................................16

    1.2. 文档修订历史........................................................................................................ 17

    2. 使用 Intel Quartus Prime Timing Analyzer......................................................................192.1. Intel Arria® 10器件的增强时序分析.......................................................................... 192.2. 基本时序分析流程...................................................................................................19

    2.2.1. 第 1步:打开一个工程并运行 Fitter.................................................................192.2.2. 第 2步:指定时序约束................................................................................. 202.2.3. 第 3步:指定通用的 Timing Analyzer设置.......................................................202.2.4. 第 4步:运行时序分析................................................................................. 222.2.5. 第 5步:分析时序分析结果............................................................................23

    2.3. 使用时序约束........................................................................................................ 312.3.1. 建议的初始 SDC约束.................................................................................. 312.3.2. SDC文件优先级.........................................................................................342.3.3. 迭代约束修改(Iterative Constraint Modification)..............................................342.3.4. 创建时钟和时钟约束.................................................................................... 352.3.5. 创建 I/O约束............................................................................................ 462.3.6. 创建延迟和偏移约束(Creating Delay and Skew Constraints).............................. 472.3.7. 创建时序异常(Creating Timing Exceptions).................................................... 512.3.8. 示例电路和 SDC文件.................................................................................. 73

    2.4. Timing Analyzer Tcl命令........................................................................................752.4.1. quartus_sta可执行文件.............................................................................. 752.4.2. 集合命令(Collection Commands)..................................................................762.4.3. 从 SDC文件识别 Intel Quartus Prime软件可执行文件........................................79

    2.5. 导入编译结果的时序分析...........................................................................................792.6. 使用 Intel Quartus Prime Timing Analyzer文档修订历史...............................................80

    A. Intel Quartus Prime Standard Edition用户指南.............................................................. 82

    内容

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    2

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 1. 时序分析介绍

    通过对设计的全面时序分析,使您能够对电路性能进行验证,识别时序违规,并推动 Fitter的逻辑布局,从而满足您的时序目标。 Intel® Quartus® Prime Timing Analyzer使用行业标准约束和分析方法对设计中所有的寄存器到寄存器,I/O和异步复位路径的全部数据所需的时间,数据到达时间和时钟到达时间进行报告。

    Timing Analyzer验证是否满足设计正常运行所要求的时序关系,并根据您指定的约束确认实际信号到达时间。本使用指南介绍了基本的时序分析概念,并对使用 Intel Quartus Prime TimingAnalyzer进行了逐步说明 。

    1.1. 时序分析基本概念

    本用户指南对以下用于描述时序分析的概念作了介绍:

    表 1. 时序分析器术语(Timing Analyzer Terminology)

    术语 定义

    到达时间(Arrival time) 相对于寄存器管脚上的所需时间,Timing Analyzer计算寄存器管脚上数据和时钟到达时间。

    单元(Cell) 包含查找表(LUT),寄存器,数字信号处理(DSP)模块,存储器模块或者输入/输出单元的器件资源。在 Intel Stratix® 系列器件中,LUT和寄存器包含在逻辑单元(LE)中(modeled as cell)。

    时钟(Clock) 命名信号,代表设计内部或外部的时钟域。

    时钟数据分析(Clock-as-dataanalysis)

    针对复杂路径的更精确时序分析,包括与时钟路径的 PLL相关的任何相移,并考虑到针对数据路径的任何相关相移。

    时钟保持时间(clock hold time) 从时钟输入上的一个有效跳变后到输入管脚(驱动数据输入或者时钟使能)上的信号必须稳定的最小时间间隔。

    时钟启动和锁存沿(Clock launch andlatch edge)

    启动沿(launch edge)是发送寄存器或者其他顺序单元数据的时钟沿,用作数据传输的源。锁存沿(latch edge)是采集寄存器或者其他顺序单元数据端口上的数据的有效时钟沿,用作数据传输的目的地。

    时钟悲观(clock pessimism) 时钟悲观(clock pessimism)是指在静态时序分析期间使用与公共时钟路径相关联的最大(而非最小)延迟变化。

    时钟设置(Clock setup) 在数据输入上一个信号的置位与时钟输入从低电平到高电平的跳变的置位之间的最小时间间隔。

    Net 两个或多个互连组件的集合。

    节点(Node) 代表承载一个信号的导线,信号在设计中不同逻辑组件之间传播。最基本的计时网表单元。用于表示端口,管脚和寄存器。

    管脚(Pin) 单元的输入或输出。

    端口(Port) 顶级模块输入或输出;例如,器件管脚。

    亚稳态(Metastability) 当信号在不相关或异步时钟域中的电路之间传输时,可能出现亚稳态问题。Timing Analyzer分析设计中亚稳态的可能性,并计算同步寄存器链的MTBF。

    多角分析(Multicorner analysis) 慢速和快速时序角的时序分析,在各种电压,工艺和温度操作条件下验证您的设计。

    继续...

    UG-20183 | 2018.09.24

    反馈

    Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartusand Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or othercountries. Intel warrants performance of its FPGA and semiconductor products to current specifications inaccordance with Intel's standard warranty, but reserves the right to make changes to any products and servicesat any time without notice. Intel assumes no responsibility or liability arising out of the application or use of anyinformation, product, or service described herein except as expressly agreed to in writing by Intel. Intelcustomers are advised to obtain the latest version of device specifications before relying on any publishedinformation and before placing orders for products or services.*Other names and brands may be claimed as the property of others.

    ISO9001:2015Registered

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • 术语 定义

    多周期路径(Multicycle paths) 要求一个非默认设置或保持关系进行正确分析的数据路径。

    恢复和移除时间(Recovery andremoval time)

    恢复时间是对于下一个时钟边沿的异步控制信号置低的最小时间长度。移除时间是一个异步控制信号置低的的最小时间长度,此信号在有效时钟沿后必须是稳定的。

    时序网表(Timing netlist) Compiler生成的列表,包含设计的综合节点和连接。Timing Analyzer需要此网表来执行时序分析。

    时序路径(Timing path) 任意两个设计节点之间的有线连接(net),例如一个寄存器输出到另一个寄存器的输入。

    1.1.1. 时序路径和时钟分析

    Timing Analyzer对设计中确定的所有时序路径的时序性能进行测量。Timing Analyzer需要一个时序网表,描述设计节点和连接以进行分析。Timing Analyzer通过分析时钟的启动沿(launchedge)与锁存沿(latch edge)之间的时钟设置和发保持关系来对设计中的所有寄存器到寄存器传输进行时钟关系的确定。

    1.1.1.1. 时间网表

    相对于确定全部时序路径的所需要时间,Timing Analyzer使用时序网表数据来确定设计中的数据和时钟到达时间。在运行 Fitter或进行完整编译后,可以随时在 Timing Analyzer中生成时序网表。

    下图显示了时序网表如何将设计单元划分为单元,管脚,网络和端口来进行延迟的测量。

    图 1. 简单的设计原理图

    data1

    data2

    clk

    reg1

    reg2

    and_inst

    reg3

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    4

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 2. 时序网表中简单设计原理图元素的划分

    reg2

    data1

    data2

    clk clk~clkctrl

    reg1

    and_instreg3 data_out

    combout

    inclk0

    datain

    clk regout

    regout

    datac

    datad

    comboutdatain

    CellsCell

    Cell

    Pin

    Pin

    outclk

    Port

    Port

    Net Net

    Net

    1.1.1.2. 时序路径

    时序路径连接两个设计节点,例如一个寄存器输出到另一个寄存器的输入。

    了解时序路径的类型对时序收敛和优化很重要。Timing Analyzer识别并分析以下时序路径:

    • 边沿路径(Edge paths)—从端口到管脚,从管脚到管脚以及从管脚到端口的连接。

    • 时钟路径(Clock paths)—从器件端口或内部生成的时钟管脚到寄存器的时钟管脚的连接。

    • 数据路径(Data paths)—从顺序单元的端口或数据输出管脚到另一个顺序单元的端口或数据输入管脚的连接。

    • 异步路径(Asynchronous paths)—从另一个顺序单元(例如异步复位或异步清除)的异步管脚或端口的连接。

    图 3. Timing Analyzer通常分析的路径类型

    CLRN

    D Q

    CLRN

    D Q

    clk

    rst

    Clock Path Data Path

    Asynchronous Clear Path

    data

    除了识别设计中的各种路径外,Timing Analyzer还分析时钟特性,计算单个寄存器到寄存器路径中任意两个寄存器之间的最坏情况要求(worst-case requirement)。在分析时钟特性之前,必须对设计中的所有时钟进行约束。

    1.1.1.3. 数据和时钟到达时间

    Timing Analyzer识别路径类型后,Timing Analyzer能够报告寄存器管脚上的数据和时钟到达时间。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    5

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • Timing Analyzer通过将启动沿时间加入到从时钟源到源寄存器的时钟管脚的延迟,源寄存器的微时钟到输出延迟(µtCO),从源寄存器的数据输出(Q)到目的寄存器的数据输出(D)的延迟来计算数据到达时间。

    Timing Analyzer通过将锁存沿时间加上目的寄存器的时钟端口与时钟管脚之间的延迟总和(包括时钟端口缓冲延迟),然后减去目的寄存器的微设置时间( µtSU)(其中 µtSU是 FPGA中内部寄存器的固有设置时间)来计算数据所需时间。

    图 4. 数据到达和数据所需时间

    D Q D Q

    Data Arrival Time

    Data Required Time

    数据到达和数据所需时间的基本计算,包括启动沿和锁存沿。

    图 5. 数据到达和数据所需时间公式

    Data Arrival Time = Launch Edge + Source Clock Delay + µtCO + Register-to-Register Delay Data Required Time = Latch Edge + Destination Clock Delay – µtSU

    1.1.1.4. 启动沿和锁存沿(Launch and Latch Edges)

    所有的时序分析都需要有一个或多个时钟信号。Timing Analyzer通过分析时钟的启动沿和时钟锁存沿之间的时钟设置和保持关系来确定设计中所有寄存器到寄存器传输的时钟关系。

    时钟信号的启动沿(launch edge)是发送寄存器或者其他顺序单元数据的时钟沿,用作数据传输的源。锁存沿(latch edge)是采集寄存器或者其他顺序单元数据端口上的数据的有效时钟沿,用作数据传输的目的地。

    图 6. 启动沿和锁存沿(10ns apart)的建立和保持关系在此实例中,启动沿在 0 ns发送寄存器 reg1的数据,寄存器 reg2在 10 ns被锁存沿触发时采集数据。数据在下一个锁存沿之前到达目地寄存器。

    Launch Clock

    Latch Clock

    0ns 10ns 20ns

    Setup relationshipHold relationship

    您可以对所有时钟定义约束,并将这些约束分配给设计中的节点。这些时钟约束提供了可重复数据关系所需要的结构。如果不限制设计中的时钟,那么 Intel Quartus Prime软件会根据 1 GHz时钟进行分析,以最大化基于时序的 Fitter工作量。要确保实际的 slack值,必须使用实际值对设计中的所有时钟进行约束。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    6

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 1.1.2. 时钟设置分析

    要执行时钟设置检查,Timing Analyzer通过分析每个寄存器到寄存器路径的每个启动沿和锁存沿来确定设置关系。

    对于目地寄存器上的每个锁存沿,Timing Analyzer使用源寄存器上最接近的前一个时钟沿作为启动沿。下图显示了两种设置关系,设置 A和设置 B。对于 10 ns上的锁存沿,用作启动沿的最近时钟在 3 ns上,并有设置 A标签。对于 20 ns上的锁存沿,用作启动沿的最近时钟在 19 ns上,并有设置 B标签。Timing Analyzer对最具限制性的设置关系进行分析,在这种情况下为设置 B;如果此关系符合设计要求,那么默认情况下设置 A符合要求。

    图 7. 设置检查

    Setup A Setup B

    0 ns 8 ns 16 ns 24 ns 32 ns

    Source Clock

    Destination Clock

    Timing Analyzer将时钟设置检查的结果作为 slack值进行报告。 slack是满足时序要求或者不满足时序要求的余量。正 slack表示满足要求的余量;负 slack表示未满足要求的余量。

    图 8. 内部寄存器到寄存器路径的时钟设置 slack

    Clock Setup Slack = Data Required Time – Data Arrival TimeData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO + Register-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register – µtSU – Setup Uncertainty

    Timing Analyzer在计算数据到达时间时使用最大延迟进行设置检查,在计算数据所需时间时使用最小延迟。

    图 9. 从输入端口到内部寄存器的时钟设置 slack

    Clock Setup Slack = Data Required Time – Data Arrival Time Data Arrival Time = Launch Edge + Clock Network Delay + Input Maximum Delay + Port-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register – µtSU – Setup Uncertainty

    图 10. 从内部寄存器到输出端口的时钟设置 slack

    Clock Setup Slack = Data Required Time – Data Arrival TimeData Required Time = Latch Edge + Clock Network Delay to Output Port – Output Maximum DelayData Arrival Time = Launch Edge + Clock Network Delay to Source Register +µtCO + Register-to-Port Delay

    1.1.3. 时钟保持分析

    要执行时钟保持检查,Timing Analyzer确定所有源和目标寄存器对存在的每种可能的设置关系的保持关系。Timing Analyzer检查所有设置关系中的所有相邻时钟沿以确定保持关系。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    7

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • Timing Analyzer对每个设置关系执行两次保持检查。第一次保持检查确定当前启动沿启动的数据未被先前锁存沿采集。第二次保持检查确定当前锁存沿没有采集下一个启动沿启动的数据。TimingAnalyzer从可能的保持关系中选择最具限制性的保持关系。最具限制性的保持关系是具有锁存沿与启动沿之间最小差异的保持关系,并确定寄存器到寄存器路径所允许的最小延迟。在以下实例中,Timing Analyzer选择保持检查 A2作为两种设置关系(设置 A和设置 B)的最具限制性的保持关系,并作为它们各自的保持检查。

    图 11. 设置和保持检查关系

    Setup A Setup B

    0 ns 8 ns 16 ns 24 ns 32 ns

    Source Clock

    Destination Clock

    HoldCheck A1

    HoldCheck B2

    HoldCheck A2

    HoldCheck B1

    图 12. 内部寄存器到寄存器路径的时钟保持 slack

    Clock Hold Slack = Data Arrival Time – Data Required TimeData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO + Register-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register + µtH + Hold Uncertainty

    Timing Analyzer在计算数据到达时间时使用最小延迟进行保持检查,在计算数据所需时间时使用最大延迟。

    图 13. 从输入端口到内部寄存器的时钟保持 slack计算

    Clock Hold Slack = Data Arrival Time – Data Required Time Data Arrival Time = Launch Edge + Clock Network Delay + Input Minimum Delay + Pin-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register + µtH

    图 14. 从内部寄存器到输出端口的时钟保持 slack计算

    Clock Hold Slack = Data Arrival Time – Data Required TimeData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO + Register-to-Pin DelayData Required Time = Latch Edge + Clock Network Delay – Output Minimum Delay

    1.1.4. 恢复和移除分析(Recovery and removal analysis)

    恢复时间是相对于下一个时钟沿的异步控制信号的置低的最小时间长度。

    例如,诸如 clear和 preset的信号必须在下一个有效时钟沿之前保持稳定。恢复时间裕量计算(recovery slack calculation)类似于时钟设置时间裕量计算(clock setup slack calculation),但此计算适用于异步控制信号。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    8

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 15. 恢复时间裕量计算(如果异步控制信号是寄存的)

    Recovery Slack Time = Data Required Time – Data Arrival TimeData Required Time = Latch Edge + Clock Network Delay to Destination Register – µtSUData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO + Register-to-Register Delay

    图 16. 恢复时间裕量计算(如果异步控制信号未被寄存)

    Recovery Slack Time = Data Required Time – Data Arrival TimeData Required Time = Latch Edge + Clock Network Delay to Destination Register – µtSUData Arrival Time = Launch Edge + Clock Network Delay + Input Maximum Delay + Port-to-Register Delay

    注意: 如果异步复位信号来自器件 I/O端口,那么必须对异步复位端口创建一个输入延迟约束,以使Timing Analyzer对路径执行恢复分析。

    移除时间是一个异步控制信号置低的的最小时间长度,此信号在有效时钟沿后必须是稳定的。Timing Analyzer移除时间裕量计算(removal slack calculation)类似于时钟保持时间裕量计算(clock setup hold calculation),但此计算适用于异步控制信号。

    图 17. 移除时间裕量计算(如果异步控制信号是寄存的)Removal Slack Time = Data Arrival Time – Data Required TimeData Arrival Time = Launch Edge + Clock Network Delay to Source Register + µtCO of Source Register + Register-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register + µtH

    图 18. 移除时间裕量计算(如果异步控制信号未被寄存)Removal Slack Time = Data Arrival Time – Data Required TimeData Arrival Time = Launch Edge + Clock Network Delay + Input Minimum Delay of Pin + Minimum Pin-to-Register DelayData Required Time = Latch Edge + Clock Network Delay to Destination Register + µtH

    如果异步复位信号来自器件管脚,那么必须对异步复位管脚分配 Input Minimum Delay时序约束,以使 Timing Analyzer对路径执行移除分析。

    1.1.5. 多周期路径分析

    多周期路径是需要非默认设置或保持关系进行正确分析的数据路径。

    例如,一个寄存器可能被需要用于采集每第二个或第三个上升时钟边沿上的数据。乘法器的输入寄存器与输出寄存器之间的多周期路径的示例,其中目地寄存器在每隔一个时钟边沿上锁存数据。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    9

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 19. 多周期路径

    2 Cycles

    ENA

    D Q

    ENA

    D Q

    D Q

    ENA

    当源时钟 src_clk的周期为 10 ns,目的时钟 dst_clk的周期为 5 ns时,用于默认设置和保持关系的寄存器到寄存器路径,源和目的时钟的相应时序图,默认设置和保持关系。默认设置关系为 5 ns;默认保持关系为 0 ns。

    图 20. 寄存器到寄存器路径和默认设置和保持时序图

    reg reg

    data_outdata_in

    src_clk

    dst_clk

    D Q D Q

    0 10 20 30

    setuphold

    为满足系统要求,您可以通过对寄存器到寄存器路径指定多周期时序约束来修改默认设置和保持关系。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    10

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 21. 寄存器到寄存器路径

    REG1 REG2Combinational

    LogicSET SET

    D Q D Q

    CLR CLR

    CLK

    Tclk1

    TCO TSU / TH

    Tdata

    Tclk2

    中断(exception)的multicycle setup assignment值为 2,以使用第二个出现的锁存沿;在此实例中,从默认值 5 ns到 10 ns。

    图 22. 修改后的设置图

    new setupdefault setup

    0 10 20 30

    1.1.5.1. 多周期时钟保持

    时钟启动沿和锁存沿之间的时钟周期数定义了设置关系。

    默认情况下,Timing Analyzer 执行单周期路径分析,使保持关系等于一个时钟周期(启动沿–锁存沿)。当分析路径时,Timing Analyzer执行两次保持检查。第一次保持检查确定当前启动沿启动的数据未被先前锁存沿采集。第二次保持检查确定当前锁存沿没有采集下一个启动沿启动的数据。Timing Analyzer仅对最具限制性的保持检查进行报告。Timing Analyzer通过比较启动沿和锁存沿来计算保持检查。

    Timing Analyzer执行用于确定保持检查的计算。

    图 23. 保持检查(Hold Check)

    hold check 1 = current launch edge – previous latch edgehold check 2 = next launch edge – current latch edge

    提示: 如果保持检查与设置检查重叠,那么忽略保持检查。

    启动多周期保持约束(start multicycle hold assignment)通过将锁存沿上指定的时钟周期数移动到默认启动沿的右侧来修改目的时钟的启动沿。下图显示了 start multicycle hold (SMH)assignment的不同值和生成的启动沿。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    11

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 24. 启动多周期保持值(Start Multicycle Hold Values)-10 0 10 20

    Source Clock

    Destination Clock

    SMH = 1SMH = 0(default) SMH = 2

    结束多周期保持约束(end multicycle hold assignment)通过将锁存沿上指定的时钟周期数移动到默认锁存沿的左侧来修改目的时钟的锁存沿。下图显示了 end multicycle hold (EMH)assignment的不同值和生成的锁存沿。

    图 25. 结束多周期保持值(End Multicycle Hold Values)

    Source Clock

    Destination Clock

    EMH = 0(Default)

    EMH = 2

    EMH = 1

    -20 -10 0 10 20

    以下显示了 Timing Analyzer报告的负保持关系的保持关系:

    图 26. Timing Analyzer报告的结束多周期保持值(End Multicycle Hold Values)

    Source Clock

    Destination Clock

    EMH = 0(Default)

    EMH = 2

    EMH = 1

    -10 0 10 20

    1.1.5.2. 多周期时钟设置

    设置关系定义为锁存沿与启动沿之间的时钟周期数。默认情况下,Timing Analyzer执行单周期路径分析,这会导致设置关系等于一个时钟周期(锁存沿–启动沿)。应用多周期设置约束,通过多周期设置值对设置关系进行调整。调整值可能为负。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    12

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 结束多周期设置约束(end multicycle setup assignment)通过将锁存沿上指定的时钟周期数移动到默认锁存沿的右侧来修改目的时钟的锁存沿。下图显示了 end multicycle setup (EMS)assignment的不同值和生成的锁存沿。

    图 27. 结束多周期设置值(End Multicycle Setup Values)-10 0 10 20

    REG1.CLK

    REG2.CLK

    EMS = 2

    EMS = 1(default)

    EMS = 3

    启动多周期设置约束(start multicycle setup assignment)通过将启动沿指定数量的时钟周期移动到确定的默认启动沿的左侧来修改源时钟的启动沿。具有各种值的启动多周期设置(SMS)约束可以生成特定的启动沿。

    图 28. 启动多周期设置值(Start Multicycle Setup Values)

    Source Clock

    Destination Clock

    SMS = 1(Default)

    SMS = 2

    SMS = 3

    0 10 20 30 40

    对于负设置关系,Timing Analyzer报告的设置关系。

    图 29. Timing Analyzer报告的启动多周期设置值-10 0 10 20

    Source Clock

    Destination Clock

    SMS = 2

    SMS = 1(default) SMS = 3

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    13

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 1.1.6. 亚稳性分析(Metastability Analysis)

    当信号在无关或异步时钟域中的电路之间传输时,由于信号没有满足设置和保持时间要求,因此可能会出现亚稳性问题。

    为了最小化由亚稳态引起的故障,电路设计人员通常在目地时钟域中使用一系列寄存器(也称为同步寄存器链或同步器)来将数据信号重新同步到新的时钟域。

    平均故障间隔时间(MTBF)是对由亚稳态引起的故障实例之间的平均时间估算。

    Timing Analyzer分析设计中亚稳态的可能性,计算同步寄存器链的MTBF。Timing Analyzer然后根据设计包含的同步链对整个设计的MTBF进行估算。

    除了报告在设计中找到的同步寄存器链之外, Intel Quartus Prime软件还可以保护这些寄存器免受可能对MTBF产生负面影响的优化,例如寄存器复制和逻辑时序。如果MTBF太低, IntelQuartus Prime软件还可以优化设计的MTBF。

    相关链接

    • 了解 FPGA中的亚稳态

    • 通过 Intel Quartus Prime软件管理亚稳态

    1.1.7. Timing Pessimism(时序悲观)

    通过将公共时钟路径的最大和最小延迟值之间的差值与相应的 slack公式相加,公共时钟路径悲观移除(common clock path pessimism removal)在静态时序分析过程中会考虑了与公共时钟路径相关联的最小和最大延迟变化。

    当两个不同的延迟值用于同一时钟路径时,可能出现最小和最大延迟变化。例如,在一个简单的设置分析中,到源寄存器的最大时钟路径延迟用于决定数据到达时间。到目地寄存器的最小时钟路径延迟用于决定所需的数据时间。但是,如果到源寄存器和目地寄存器的时钟路径共享一个公共时钟路径,那么最大延迟和最小延迟都用于在时序分析期间对公共时钟路径建模。使用最小延迟和最大延迟都会导致过度悲观分析(pessimistic analysis),因为两个不同的延迟值(最大和最小延迟)不能用于对同一时钟路径建模。

    图 30. 典型的寄存器到寄存器路径

    D Q

    D Qclk

    A

    B

    C

    reg1

    reg2

    5.5 ns5.0 ns

    2.2 ns2.0 ns

    2.2 ns2.0 ns

    3.2 ns3.0 ns

    Segment A是 reg1与 reg2之间的公共时钟路径。最小延迟为 5.0 ns;最大延迟为 5.5 ns。最大和最小延迟的差值等于公共时钟路径悲观移除值(common clock path pessimism removalvalue);在这种情况下,公共时钟路径悲观度(common clock path pessimism)是 0.5ns。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    14

    http://www.altera.com/literature/wp/wp-01082-quartus-ii-metastability.pdfhttps://www.intel.cn/content/www/cn/zh/programmable/documentation/mwh1409960181641.html#mwh1409959644819mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • Timing Analyzer将公共时钟路径悲观移除值添加到相应的 slack公式中以确定总 slack。因此,如果示例中寄存器到寄存器路径的 setup slack等于 0.7 ns (没有公共时钟路径悲观移除),那么slack为 1.2 ns (有公共时钟路径悲观移除)。

    您还可以使用公共时钟路径悲观移除来确定一个寄存器的最小脉冲宽度。时钟信号必须满足寄存器的最小脉冲宽度要求才能被寄存器识别。最小高时间(minimum high time)定义了正边沿触发寄存器的最小脉冲宽度。最小低时间(minimum low time)定义了负边沿触发寄存器的最小脉冲宽度。

    违反寄存器最小脉冲宽度的时钟脉冲可防止数据在寄存器的数据管脚上锁存。要计算最小脉冲宽度的 slack,Timing Analyzer从实际最小脉冲宽度时间中减去所需的最小脉冲宽度时间。TimingAnalyzer根据您为寄存器的时钟端口提供的时钟而指定的时钟要求来确定实际的最小脉冲宽度时间。Timing Analyzer通过最大上升时间,最小上升时间,最大下降时间和最小下降时间来确定所需的最小脉冲宽度时间。

    图 31. 高脉冲和低脉冲所需的最小脉冲宽度时间

    High PulseWidth

    Low PulseWidth

    Minimum and MaximumFall Arrival Times

    Minimum andMaximum Rise

    Rise Arrival Times

    0.80.5

    0.50.8

    0.90.7

    通过使用公共时钟路径悲观(common clock path pessimism),最小脉冲宽度 slack可以增加最大上升时间减去最小上升时间或最大下降时间减去最小下降时间的最小值。在此示例中,slack值可以增加 0.2ns,这是 0.3 ns (0.8 ns-0.5 ns)和 0.2 ns (0.9 ns-0.7 ns)之间的最小值。

    1.1.8. 时钟数据分析(Clock-As-Data Analysis)

    大多数 FPGA设计包含任意两个节点(称为数据路径或时钟路径)之间的简单连接。

    数据路径是一个同步单元的输出与另一个同步单元的输入之间的连接。

    一个时钟是与同步单元的时钟管脚的连接。但是,对于更复杂的 FPGA设计,例如使用源同步接口的设计,这种简化的视图是足够的。在包含诸如时钟分频器和 DDR源同步输出的单元的电路中进行时钟数据(clock-as-data)分析。

    输入时钟端口与输出时钟端口之间的连接可以视为时钟路径或数据路径。从端口 clk_in到端口clk_out的路径既是时钟路径又是数据路径的设计。时钟路径是从端口 clk_in到寄存器reg_data时钟管脚。数据路径是从端口 clk_in到端口 clk_out。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    15

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 32. 简化的源同步输出

    D Q

    clk_in clk_out

    reg_data

    通过时钟数据(clock-as-data)分析,Timing Analyzer可根据用户约束提供更准确的路径分析。对于时钟路径分析,与锁相环(PLL)相关的任何相移都会予以考虑。对于数据路径分析,与 PLL相关的任何相移都会予以考虑,而不是被忽略。

    时钟数据(clock-as-data)分析也适用于内部生成的时钟分频器。在此图中,波形为逆变器反馈路径,在时序分析期间进行分析。分频寄存器的输出用于决定启动时间,寄存器的时钟端口用于决定锁存时间。

    图 33. 时钟分频器(Clock Divider)

    D Q

    D Q

    Launch Clock (2 T)

    Data Arrival Time

    Latch Clock (T)

    1.1.9. 多角分析(Multicorner Analysis)

    Timing Analyzer在执行静态时序分析的同时执行多角时序分析,在各种操作条件下(如电压,工艺和温度)对您的设计进行验证。

    使用 set_operating_conditions命令对当前器件的操作条件和速度等级进行更改。

    如果指定一个操作条件 Tcl对象,可使用-model,-speed,-temperature和-voltage选项。如果不指定一个操作条件 Tcl对象,那么 Tcl需要-model选项。-speed,-temperature和-voltage是可选的。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    16

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 提示: 使用 get_available_operating_conditions -all命令来获得可用于目标器件的操作条件列表。

    为确保器件运行期间不会在各种条件下发生违规,请在所有可用操作条件下执行静态时序分析。

    表 2. 慢速和快速模型的操作条件

    模型 速度等级 电压 温度

    慢速 器件密度中的最慢速度等级 Vcc minimum supply (1) Maximum TJ (1)

    Fast 器件密度中的最快速度等级 Vcc maximum supply (1) Minimum TJ (1)

    注释:1. 关于 Vcc和 TJ值,请参考相应器件手册的“DC和开关特征”章节。

    在您的设计中,您可以设置慢速时序模型的工作条件,电压为 1100 mV,温度为 85°C,使用以下代码进行设置:

    set_operating_conditions -model slow -temperature 85 -voltage 1100

    您可以使用 Tcl 对象设置相同的操作条件:

    set_operating_conditions 3_slow_1100mv_85c

    以下代码块显示了如何使用 set_operating_conditions命令对各种操作条件生成不同的报告。

    实例-1: 各种操作条件分析的脚本摘录

    #Specify initial operating conditionsset_operating_conditions -model slow -speed 3 -grade c -temperature 85 -voltage 1100#Update the timing netlist with the initial conditionsupdate_timing_netlist#Perform reporting#Change initial operating conditions. Use a temperature of 0Cset_operating_conditions -model slow -speed 3 -grade c -temperature 0 -voltage 1100#Update the timing netlist with the new operating conditionupdate_timing_netlist#Perform reporting#Change initial operating conditions. Use a temperature of 0C and a model of fastset_operating_conditions -model fast -speed 3 -grade c -temperature 0 -voltage 1100#Update the timing netlist with the new operating conditionupdate_timing_netlist#Perform reporting

    1.2. 文档修订历史

    表 3. 文档修订历史

    日期 版本 修订内容

    2018.09.24 18.1.0 • 在文本清晰度和风格上作了改进。

    2016.05.02 16.0.0 更正了图 6-14中的拼写错误:从内部寄存器到输出端口的时钟保持 slack计算

    继续...

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    17

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 日期 版本 修订内容

    2015.11.02 15.1.0 将 Quartus II修改成 Intel Quartus Prime 。

    2014.12.15 14.1.0 从 Timing Analyzer章节移除Multicycle Clock Setup Check and Hold CheckAnalysis部分。

    2014年 6月 14.0.0 更新了格式

    2012年 6月 12.0.0 添加了社交网络图标和次要文本更新

    2011年 11月 11.1.0 首次发布。

    相关链接

    文档存档关于之前版本的 Intel Quartus Prime Handbook,请搜索文档存档。

    1. 时序分析介绍

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    18

    https://www.altera.com/search-archivesmailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 2. 使用 Intel Quartus Prime Timing Analyzer

    Intel Quartus Prime Timing Analyzer是一款功能强大的 ASIC式时序分析工具,通过使用行业标准约束,分析和报告方法对设计中所有逻辑的时序性能进行验证。使用 Timing Analyzer GUI或者命令行界面对设计中的所有时序路径约束,分析和报告结果。

    相关链接

    • Timing Analyzer Resource Center

    • Intel FPGA Technical Training

    2.1. Intel Arria® 10器件的增强时序分析

    Timing Analyzer对 Intel Arria® 10器件系列支持新的时序算法,显著地提高了分析速度。

    对于 Intel Arria 10器件,默认情况下这些算法是使能的,通过使用一个约束(assignment)可以对早期器件系列使能这些算法。新的分析引擎对时序图进行固定次数的分析。之前的 TimingAnalyzer对时序图进行分析的次数与 Synopsys Design Constraint (SDC)文件中的约束一样多。

    新算法还支持增量时序分析,在保持一个完全分析的设计的同时可以对单个模块进行修改并重新分析。

    使用以下 QSF assignment开启新时序算法,用于 Arria V, Cyclone® V和 Stratix V:

    set_global_assignment -name TIMEQUEST2 ON

    2.2. 基本时序分析流程

    Intel Quartus Prime Timing Analyzer执行约束验证并报告时序性能,作为完整编译流程的一部分。创建设计并设置工程后, Synopsys* Design Constraints (.sdc)文件中定义设计所需的时序参数(即约束)。Fitter尝试布局逻辑以满足或超过指定的约束。Timing Analyzer报告不符合约束的条件,使您能够您找到并纠正关键时序问题。以下步骤描述了 Intel Quartus Prime软件中基本的时序分析流程。

    2.2.1. 第 1步:打开一个工程并运行 Fitter

    在运行时序分析之前,必须打开一个 Intel Quartus Prime工程并运行 Fitter以详细说明设计层次结构,综合逻辑并执行布局布线。

    1. 点击 File > New Project Wizard创建一个新的工程,或者点击 File > Open Project打开一个现有工程。

    2. 点击 Processing > Start > Start Fitter运行 Fitter (和任何必需的 Compiler模块)。

    UG-20183 | 2018.09.24

    反馈

    Intel Corporation. All rights reserved. Intel, the Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartusand Stratix words and logos are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or othercountries. Intel warrants performance of its FPGA and semiconductor products to current specifications inaccordance with Intel's standard warranty, but reserves the right to make changes to any products and servicesat any time without notice. Intel assumes no responsibility or liability arising out of the application or use of anyinformation, product, or service described herein except as expressly agreed to in writing by Intel. Intelcustomers are advised to obtain the latest version of device specifications before relying on any publishedinformation and before placing orders for products or services.*Other names and brands may be claimed as the property of others.

    ISO9001:2015Registered

    http://www.altera.com/support/software/timequest/sof-qts-timequest.htmlhttp://www.altera.com/education/training/trn-index.jspmailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • 2.2.2. 第 2步:指定时序约束

    您必须指定那些用于描述设计的时钟频率要求,时序异常和 I/O时序要求的时序约束,以便在时序分析期间与实际条件进行比较。您可以在添加到工程中的一个或多个 Synopsys DesignConstraints (.sdc)文件中定义时序约束。

    如果您对.sdc文件不熟悉,那么可以在 Timing Analyzer GUI中创建一个初始.sdc文件,或者使用提供的.sdc文件模板进行创建。如果您对时序分析熟悉,那么您可以在任何的文本编辑器中创建.sdc文件,然后添加到工程中。

    1. 请使用以下任何方法在.sdc文件中输入时序约束:

    • 在 Timing Analyzer GUI中输入约束—点击 Tools > Timing Analyzer,点击Update Timing Netlist,然后从 Constraints菜单输入约束。GUI显示对应的 SDC命令。

    • 自己创建一个.sdc文件。您可以首先添加建议的初始 SDC约束 (第 31页),然后迭代修改.sdc约束并对时序结果进行重新分析。在输入依赖于时钟的任何约束之前,必须首先创建时钟约束。

    图 34. Create Clock Dialog Defines Clock Constraints

    2. 保存.sdc文件。在 Timing Analyzer GUI中输入约束时,单击 Constraints > WriteSDC File,将您在 GUI中输入的约束保存到.sdc文件。

    3. 将.sdc文件添加到工程中,如第 3步:指定通用的 Timing Analyzer设置 (第 20页)所描述。

    2.2.3. 第 3步:指定通用的 Timing Analyzer设置

    在运行时序分析之前,您可以考虑并选择性地指定以下对分析结果有影响的 Timing Analyzer和Compiler设置:

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    20

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 表 4. Timing Analyzer和 Compiler设置

    设置 说明 位置

    SDC files to include in theproject

    指定工程中(.sdc)文件的名称和顺序。 Assignments > Settings >Timing Analyzer

    Report worst-case pathsduring compilation

    显示设计中最坏情况时序路径的概要。 Assignments > Settings >Timing Analyzer

    Tcl Script File name 指定自定义分析脚本的文件名。您可以指定是否 Run defaulttiming analysis before running the custom script。

    Assignments > Settings >Timing Analyzer

    Metastability analysis 指定 Timing Analyzer如何将寄存器标识为用于亚稳态分析的同步寄存器链的一部分。

    Assignments > Settings >Timing Analyzer

    Enable multicornersupport for TimingAnalyzer and EDA NetlistWriter

    指示 Timing Analyzer默认情况下执行多角时序分析(multicorner timing analysis),根据最佳情况和最差情况操作条件对设计进行分析。

    Assignments > Settings >Compilation ProcessSettings

    Optimization Mode 指定综合(synthesis)和布局布线(fitting)期间 Compiler优化工作的重点。指定 Balanced策略,或对 Performance,Area,Power,Routability或者 Compile Time进行优化。

    Assignments > Settings >Compiler Settings

    SDC Constraint Protection 验证寄存器合并中的.sdc约束。此选项有助于通过编译维护.sdc约束的有效性。

    Assignments > Settings >Compiler Settings >Advanced Settings(Synthesis)

    Synchronization RegisterChain Length

    指定一行中最大寄存器数,Compiler将此数量的寄存器视为一个同步链。同步链是具有相同时钟的寄存器序列,其间没有扇出(fan-out),以便第一寄存器由一个管脚进行驱动,或者由另一时钟域中的逻辑进行驱动。Compiler将这些寄存器用于亚稳态分析。Compiler会阻止对这些寄存器的优化,例如重定时。当gate-level retiming使能时,Compiler不会移除这些寄存器。默认长度设置为 2。

    Assignments > Settings >Compiler Settings >Advanced Settings(Synthesis)

    Optimize Design forMetastability

    此设置通过增加设计的平均故障间隔时间(MTBF)来提高设计的可靠性。使能此设置时,Fitter会增加设计中同步寄存器的输出设置slack。此 slace能够指数级地增加设计MTBF。此选项仅在使用Timing Analyzer进行时序驱动的编译时适用。使用 TimingAnalyzer report_metastability命令查看在设计中检测到的同步器并生成MTBF估计值。

    Assignments > Settings >Compiler Settings >Advanced Settings (Fitter)

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    21

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 35. Timing Analyzer设置

    2.2.4. 第 4步:运行时序分析

    指定初始时序约束后,您可以运行 Fitter或完整编译来生成时序网表并运行 Timing Analyzer。在编译期间,Fitter尝试布局设计逻辑放以符合指定的时序约束。Timing Analyzer报告设计满足或不满足每个约束的时序裕量(slack)。

    1. 执行以下其中一个操作来生成时序网表:

    • 要运行包含时序分析的完整编译,点击 Processing > Start Compilation。TimingAnalyzer在 Fitter完成后自动执行multi-corner signoff时序分析。

    或者

    • 要运行 Fitter,点击 Processing > Start > Start Fitter。

    2. 要运行 Timing Analyzer,点击 Tools > Timing Analyzer。

    3. 在 Tasks窗格中,双击 Update Timing Netlist。Timing Analyzer加载时序网表,读取工程的.sdc文件并生成一组默认的时序报告,包括 Timing Analyzer Summary andAdvanced I/O Timing报告。

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    22

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 36. Timing Analyzer Tasks

    4. 在 Tasks窗格中,在 Reports下双击任意单一任务以生成报告并分析结果,如第 5步:分析时序分析结果 (第 23页)所述。

    相关链接

    • 导入编译结果的时序分析 (第 79页)

    • Timing Analyzer Tcl命令 (第 75页)

    • 基本时序分析流程 (第 19页)

    • quartus_sta可执行文件 (第 75页)

    2.2.5. 第 5步:分析时序分析结果

    分析期间,Timing Analyzer检验设计中的时序路径,计算每条路径上传播延迟,检查时序约束违规,并将时序结果报告为 positive slack或者 negative slack。positive slack表示设计符合约束条件。

    Timing Analyzer提供非常精细的报告和分析功能,识别并纠正时序路径中的违规。生成时序报告以查看如何最佳地优化设计中的关键路径。如果修改,删除或添加约束,那么要重新运行时序分析。此迭代过程有助于解决设计中的时序违规问题。

    图 37. Timing Analyzer用红色显示故障路径

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    23

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 指示时序性能失败的报告以红色文本显示,通过的报告以黑色文本显示。金黄色问号图标表示生成后由于 SDC变更而过时的报告。重新生成这些报告以显示最新数据。

    以下部分描述了如何生成各种用于分析的时序报告。

    2.2.5.1. 时序报告命令

    Timing Analyzer默认情况下仅生成所有报告的子集,包括 Timing Analyzer Summary报告。然而,在 Timing Analyzer GUI中,或者使用命令行命令可以生成很多其他详细报告。您可以自定义报告中的信息显示。

    表 5. Timing Analyzer报告生成命令汇总

    Timing Analyzer Tasks Pane GUI Command-Line Generates

    Custom Reports > Report Timing report_timing Timing report

    Custom Reports > Report Exceptions report_exceptions Exceptions report

    Diagnostic > Report Clock Transfers report_clock_transfers Clock Transfers report

    Slack > Report Minimum Pulse WidthSummary

    report_min_pulse_width Minimum Pulse Width Summaryreport

    Diagnostic > Report Unconstrained Paths report_ucp Unconstrained Paths report

    2.2.5.2. 设置操作条件

    您可以指定各种操作条件来分析不同功率和温度范围下的时序。有四种操作条件可用于表示多角时序分析(multi-corner timing analysis)中的四个“时序角”(timing corners)。TimingAnalyzer为每组操作条件生成单独的报告。

    • Slow 900mV 100C Model—对时序分析指定低电压,高温操作条件。

    • Slow 900mV 0C Model—对时序分析指定低电压,低温操作条件。

    • Fast 900mV 100C Model—对时序分析指定高电压,高温操作条件。

    • Fast 900mV 100C Model—对时序分析指定高电压,低温操作条件。

    选择一个电压/温度组合,双击 Tasks窗格中 Custom Reports下的 Report Timing,生成此模型的时序分析报告。生成此模型的报告后,您可以双击列表,生成其他模型的报告,而无需重新生成时序网表。

    您可以使用以下菜单选项在 Report窗口中生成或者重新生成报告:

    • Regenerate—重新生成您选择的报告。

    • Generate in All Corners—使用全部四角(four corners)生成一个时序报告。

    • Regenerate All Out of Date—重新生成所有报告。

    • Delete All Out of Date—删除所有之前的报告数据。

    2.2.5.3. Fmax汇总报告(Fmax Summary Report)

    Fmax Summary Repor面板列出了设计中每个时钟的最大频率。

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    24

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 38. Fmax汇总报告(Fmax Summary Report)

    在某些情况下,Fmax Summary可能指示一个“Limit due to hold check”(由于保持检查而导致的限制)。通常,保持检查(hold check)不限制最大频率(fMAX),因为这些检查用于相同边沿关系,因此与时钟频率无关。例如,当启动等于零和锁存等于零时。

    但是,如果您有反向时钟传输或者多周期传输(例如 setup=2,hold=0),那么保持关系不再是相同边沿传输,而是随时钟频率的变化而变化。

    Restricted Fmax列中的值由于保持时间检查,最小周期和脉冲宽度检查而受到限制。如果保持检查比设置检查更限制 fMAX,那么在Note列中会指示为"Limit due to hold check"。

    2.2.5.4. Report Timing命令

    Report Timing命令用于指定报告设计中路径或时钟域的时序的选项。

    在 Timing Analyzer中访问 Report Timing:

    • 在 Tasks窗格中,点击 Reports > Custom Reports > Report Timing。

    • 右击节点(node)或约束(assignment),然后点击 Report Timing。

    您可以指定想要包含在报告中的 Clocks,Targets,Analysis Type和Output选项。例如,您可以增加要报告的路径数量,添加 Target filter,添加 From Clock或者将报告写入到文本文件中。

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    25

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 39. Report Timing对话框

    表 6. Report Timing选项

    选项 说明

    Clocks 报告中的 From Clock和 To Clock filter路径显示指定的启动或锁存时钟。

    Targets 指定 From Clock和 To Clock的目标节点,报告仅包含这些端点的路径。对此选项指定一个 I/O或寄存器名称或者 I/O端口。此域也支持通配符。例如,仅报告具有特定层次结构的路径:

    report_timing -from *|egress:egress_inst|* \ -to *|egress:egress_inst|* -(other options)

    当 From,To或者 Through框为空时,Timing Analyzer假定器件中所有可能的目标。Through选项对通过组合逻辑或单元上特定管脚的路径的路径的报告进行限制。

    Analysis type Analysis type选项为 Setup,Hold,Recovery或者 Removal。

    Output Detail level用于指定分析包括在输出中的路径类型。Summary level包括基本汇总报告。Path only显示全部详细信息,除了 Data Path选项卡将时钟树显示为 one line item。请参考 Summary报告中的Clock Skew列。如果偏斜(skew)少于+/-150ps,那么在源与目的之间很好地平衡。如果出现更高的时钟偏移,那么要使能 Full path选项。此选项将时钟树分得更加详细,显示每个单元,包括输入缓冲,PLL,全局缓冲(称为 CLKCTRL_)和任何逻辑。查看此数据以确定设计中时钟偏移的原因。使用Full path选项进行 I/O分析,因为只有源时钟或目标时钟在 FPGA内部,因此延迟是满足时序的关键因素。

    Enable multi cornerreports

    使能或者禁用多角时序分析(multi-corner timing analysis)。默认情况下,此选项是使能的。

    继续...

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    26

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 选项 说明

    Report panel name 显示报告面板的名称。您可以使能 File name将信息写入文件。如果将.htm作为后缀,Timing Analyzer会将报告生成为 HTML。

    Paths 指定按照端点(endpoint)和时序裕量(slack)级别显示的路径数量。Report number of paths的默认值为10,否则报告可能会很长。使能 Pairs only仅列出每对源(source)和目标(destination)的一条路径。通过Maximum number of paths per endpoints进一步限制。您也可以在Maximum slack limit域中输入一个值来过滤路径。

    Tcl command 显示与所选的 GUI选项对应的 Tcl语法。您可以将命令从 Console复制到 Tcl文件中。

    2.2.5.5. 将约束与时序报告相关联

    理解时序分析报告中出现时序约束和违规的方式对于理解结果至关重要。以下示例显示了特定约束是如何影响时序分析报告的。大多数时序约束仅影响时钟启动沿和锁存沿。具体来说,create_clock和 create_generated_clock创建具有默认关系的时钟。但是,set_multicycle_path异常会修改默认的设置和保持关系。set_max_delay和set_min_delay约束是低级覆盖(low-level overrides),明确地指示出启动沿和锁存沿的最大延迟和最小延迟。

    下图显示了在特定路径上运行 Report Timing的结果。

    在下例中,设计包含一个通过 10 ns周期驱动源寄存器和目的寄存器的时钟。这产生一个 10 ns的设置关系(launch edge = 0 ns, latch edge = 10ns)和 0 ns的保持关系(launch edge = 0 ns,latch edge = 0 ns),命令如下:

    create_clock -name clocktwo -period 10.000 [get_ports {clk2}]

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    27

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 40. 设置关系 10ns,保持关系 0ns

    set_multicycle_path约束加入多个周期以放宽设置关系,或打开窗口,使得设置关系为 20ns,而保持关系仍为 0 ns:

    set_multicycle_path -from clocktwo -to clocktwo -setup -end 2set_multicycle_path -from clocktwo -to clocktwo -hold -end 1

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    28

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 41. 设置关系 20ns

    set_max_delay和 set_min_delay约束显式覆盖设置关系。请注意,对于这些不同约束,唯一变化的是设置和保持分析的启动沿时间和锁存沿时间。每隔一行的项目都来自 FPGA内部的延迟,并且对于给定的 fit是静态的。查看这些报告以分析约束如何影响时序报告。

    图 42. 使用 set_max_delay

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    29

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 图 43. 使用 set_min_delay

    对于 I/O,您必须添加-max和-min值,它们显示为 Type列中的 iExt或者 oExt。 例如一个set_output_delay -max 1.0和 set_output_delay -min -0.5的输出端口:

    时钟关系决定启动沿时间和锁存沿时间,多周期以及可能的 set_max_delay或set_min_delay约束。Timing Analyzer还将 set_output_delay的值作为 oExt值进行添加。对于输出,此值是 Data Required Path的一部分 ,因为这是分析的外部部分。左侧的设置报告减去-max值,使设置关系更难满足,因为 Data Arrival Path必须短于 DataRequired Path。Timing Analyzer还减去-min值。此减法是一个负数导致更具限制性的保持时序的原因。Data Arrival Path必须长于 Data Required Path。

    相关链接

    Relaxing Setup with Multicycle (set_multicyle_path) (第 54页)

    2.2.5.6. 在其他工具中定位时序路径

    您可以从 Timing Analyzer中的路径和单元到 Intel Quartus Prime软件中的其他工具进行定位。

    您可以右击 Timing Analyzer GUI中的大多数路径或者节点名,然后点击 Locate或者 LocatePath命令。使用 Timing Analyzer GUI中的这些命令或者 Tcl console中的 locate命令在其他 Intel Quartus Prime工具中定位到此节点。

    以下示例显示了如何从 Timing Analyzer到 Technology Map Viewer定位 10个具有最差时序裕量(worst timing slack)的路径,并在 Chip Planner中定位所有匹配 data*的端口。

    实例-2: 从 Timing Analyzer定位

    # Locate in the Technology Map Viewer the ten paths with the worst slacklocate [get_timing_paths -npaths 10] -tmv# locate all ports that begin with data in the Chip Plannerlocate [get_ports data*] -chip

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    30

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 2.3. 使用时序约束

    以下部分描述了 SDC时序约束的正确应用,这些约束可指导 Fitter布局并支持精确的时序分析。您可以使用一组初始建议的约束来创建一个.sdc文件,然后随着设计的不断进展迭代地修改这些约束。

    2.3.1. 建议的初始 SDC约束

    在初始.sdc文件中包含以下基本 SDC约束。以下示例显示了建议的初始 SDC约束应用于简单的双时钟设计:

    create_clock -period 20.00 -name adc_clk [get_ports adc_clk]create_clock -period 8.00 -name sys_clk [get_ports sys_clk]

    derive_pll_clocks

    derive_clock_uncertainty

    Create Clock (create_clock) (第 31页)

    Derive PLL Clocks (derive_pll_clocks) (第 32页)

    Derive Clock Uncertainty (derive_clock_uncertainty) (第 32页)

    Set Clock Groups (set_clock_groups) (第 33页)

    2.3.1.1. Create Clock (create_clock)

    Create Clock (create_clock)约束使您能够定义设计中时钟的属性和要求。您必须定义时钟约束以确定设计的性能并限制进入 FPGA的外部时钟。您可以在 Timing Analyzer GUI中直接输入约束,也可以直接在.sdc文件中输入约束。

    您可以指定约束所应用的 Clock name (-name),时钟 Period (-period),上升和下降Waveform edge值(-waveform)和目标信号。

    以下命令创建一个 8ns周期的 sys_clk时钟,并将此时钟应用于 fpga_clk端口:

    create_clock -name sys_clk -period 8.0 \ [get_ports fpga_clk]

    注意: Tcl和.sdc文件区分大小写。确保对管脚,端口或节点的引用与设计中的名称大小写相匹配。

    默认情况下,时钟在 time 0 ns时有一个上升沿,占空比为 50%,在 time 4 ns时有一个下降沿。如果需要不同的占空比或表示一个偏移,那么需要指定-waveform选项。

    通常,您命名的时钟与您指定的端口名称相同。在上面的示例中,以下约束完成此操作:

    create_clock -name fpga_clk -period 8.0 [get_ports fpga_clk]

    现在有两个称为 fpga_clk的独特对象,一个设计端口和一个应用于该端口的时钟。

    注意: 在 Tcl语法中,方括号执行它其中的命令。[get_ports fpga_clk]执行一个命令,此命令查找并返回设计中与 fpga_clk匹配的所有端口的集合。您可以在不使用 get_ports集合命令的情况下输入命令,如以下示例所示:

    create_clock -name sys_clk -period 8.0 fpga_clk

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    31

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 警告: 在 Timing Analyzer中定义的约束直接应用于时序数据库,但不会自动转到.sdc文件中。单击Timing Analyzer Tasks窗格上的Write SDC File ,以保留.sdc文件中 GUI的约束变更。

    相关链接

    创建基本时钟 (第 35页)

    2.3.1.2. Derive PLL Clocks (derive_pll_clocks)

    Derive PLL Clocks (derive_pll_clocks)约束自动对设计中任意 PLL的每个输出创建时钟。

    如果 PLL使用时钟切换,那么约束可以对每个输出时钟管脚生成多个时钟:inclk [0]输入时钟管脚的一个时钟,inclk [1]输入时钟管脚的一个时钟。指定 Create base clocks (-create_base_clocks)选项,默认情况下在 PLL的输入上创建基本时钟。默认情况下,时钟名称与输出时钟管脚名称相同,或指定 Use net name as clock name (-use_net_name)选项以使用网络名称。

    create_clock -period 10.0 -name fpga_sys_clk [get_ports fpga_sys_clk] \ derive_pll_clocks

    创建 PLL时,必须定义每个 PLL输出的配置。此定义使 Timing Analyzer能够使用derive_pll_clocks命令自动约束 PLL。此命令还限制收发器时钟并在 LVDS SERDES和用户逻辑之间添加多个周期。

    derive_pll_clocks命令打印 Info消息以显示命令创建的每个生成的时钟。

    作为 derive_pll_clocks的替代,您可以复制每个 create_generated_clockassignment并粘贴到.sdc文件。然而,如果随后修改 PLL设置,还必须在.sdc文件中更改生成的时钟约束。此类更改的示例包括修改现有输出时钟,添加新的 PLL输出或更改 PLL的层次结构。derive_pll_clocks的使用可以消除这一要求。

    相关链接

    • 创建基本时钟 (第 35页)

    • Deriving PLL Clocks (第 40页)

    2.3.1.3. Derive Clock Uncertainty (derive_clock_uncertainty)

    Derive Clock Uncertainty (derive_clock_uncertainty)约束对设计中的时钟到时钟传输应用设置和保持时钟不确定性。这种不确定性代表了 PLL抖动,时钟树抖动和其他不确定因素等特性。

    通过使能 Add clock uncertainty assignment (-add)可以从任何 Set ClockUncertainty (set_clock_uncertainty)约束添加时钟不确定性值。您可以Overwriteexisting clock uncertainty assignments (-overwrite)任何set_clock_uncertainty约束。

    create_clock -period 10.0 -name fpga_sys_clk [get_ports fpga_sys_clk] \ derive_clock_uncertainty -add - overwrite

    如果从.sdc文件中省略 derive_clock_uncertainty,那么 Timing Analyzer会生成一个警告信息。

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    32

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 相关链接

    时钟效应特性的考量 (第 45页)

    2.3.1.4. Set Clock Groups (set_clock_groups)

    Set Clock Groups (set_clock_groups)约束使您能够指定设计中的哪些时钟是不相关的。默认情况下,Timing Analyzer假设所有具有公共基本(common base)或父时钟(parent clock)的时钟都相关,并且这些时钟域之间的所有传输都适用于时序分析。您可以通过切割时钟组(cutting clock groups)来排除时序分析中特定时钟域之间的传输。

    相反,没有公共父时钟或基本时钟的时钟总是不相关的,但是时序分析包括这些时钟之间的传输,除非这些时钟在不同的时钟组中(或者如果它们的所有路径都被假路径约束切断)。

    您可以定义时钟信号组,然后定义每个组之间的关系。您可以定义时钟信号包括在每个 Group (-group)中,然后指定组是否是 Logically exclusive (-logically_exclusive),Physically exclusive (-physically_exclusive或者 Asynchronous ( -asynchronous)。

    set_clock_groups -asynchronous -group {...} ... \ -group {...}

    • -logically_exclusive—定义逻辑上独占并且同时又不活动的时钟,例如多路复用时钟。

    • -physically_exclusive—定义物理上独占并且同时又不活动的时钟。

    • -asynchronous—定义完全不相关的时钟,这些时钟具有不同的理想时钟源。标志(flag)表示时钟都在切换,但不能同步传递数据。

    例如,如果在 8ns时钟与 10ns时钟之间存在路径,那么即使时钟完全异步,Timing Analyzer也会尝试在这些时钟之间满足 2ns设置关系,除非您指定它们是不相关的。

    尽管 Set Clock Groups对话框只允许两个时钟组,但您也可以在.sdc文件中指定任意数量的-group {}选项。如果从 assignment中省略了不相关的时钟,那么Timing Analyzer会保守地执行操作,并根据与该时钟连接的所有其他域的关系对该时钟进行分析。

    Timing Analyzer当前没有明确地对串扰进行分析。相反,时序模型使用额外的保护频带来解决任何潜在的串扰引起的延迟。Timing Analyzer将-asynchronous和-exclusive选项视为相同。

    在单一 assignment中,一个时钟不能在多个组(-group)内;但是可以有多个set_clock_groups assignments。

    另一种缩短时钟之间时序的方法是使用 set_false_path。要缩短 sys_clk和 dsp_clk之间的时序,可以使用:

    set_false_path -from [get_clocks sys_clk] -to [get_clocks dsp_clk]

    set_false_path -from [get_clocks dsp_clk] -to [sys_clk]

    如果只有几个时钟,这种技术是有效的,但是在大量约束下可能变得无法管理。在具有三个包含多输出的 PLL的简单设计中,set_clock_groups命令可以在十行内显示哪些时钟是的相关的,而使用 set_false_path命令能够使用多于 50行。

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    反馈 Intel Quartus Prime Standard Edition用户指南: Timing Analyzer

    33

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 相关链接

    • Creating Generated Clocks (create_generated_clock) (第 38页)

    • Relaxing Setup with Multicycle (set_multicyle_path) (第 54页)

    • 相移的使用(-phase) (第 55页)

    2.3.2. SDC文件优先级

    您必须将所有创建的.sdc文件添加到工程中,以便在 fitting和时序分析期间进行读取。Fitter和Timing Analyzer根据.sdc文件在.qsf中出现的顺序对它们进行处理。如果没有.sdc出现在.qsf中,那么 Intel Quartus Prime软件将使用.sdc在工程目录中搜索.sdc。

    图 44. .sdc文件优先顺序

    Is one or more .sdc file specified in the .qsf?

    No

    Yes

    Does an .sdc named.sdc

    exist in the projectdirectory?

    No

    Yes

    Analyze the design

    点击 Settings > Timing Analyzer添加,删除或者修改.sdc文件的处理顺序,如第 3步:指定通用的 Timing Analyzer设置 (第 20页)所描述。

    如果使用 Intel Quartus Prime Text Editor创建一个.sdc文件,那么保存文件时会默认使能Add file to the project选项。如果使用任何其他编辑器创建.sdc文件,那么必须将此文件添加到工程中。

    .sdc文件必须只包含时序约束命令。用于操作时序网表或控制编译的 Tcl命令必须位于单独的 Tcl脚本中。

    当使用 Intel和某些第三方提供的 IP时,.sdc文件通过一个中间 Intel Quartus Prime IP File(.qip)成为工程的一部分。.qip文件对 IP引用所有源和约束文件。如果设计中的 IP模块的.sdc文件通过.qip包括在内,那么不要手动重新添加它们。.sdc文件也可以从包含在.qsf中的 Intel Quartus Prime IP File (.qip)进行添加。

    注意: 如果在命令行输入 read_sdc命令,而没有任何参数,那么 Timing Analyzer读取嵌入在 HDL文件中的约束,然后遵照.sdc文件优先顺序。

    2.3.3. 迭代约束修改(Iterative Constraint Modification)

    您可以迭代地修改.sdc约束并重新分析时序结果,以确保您的设计具有最佳约束。

    2. 使用 Intel Quartus Prime Timing Analyzer

    UG-20183 | 2018.09.24

    Intel Quartus Prime Standard Edition用户指南: Timing Analyzer 反馈

    34

    mailto:[email protected]?subject=%20Intel%20Quartus%20Prime%20Standard%20Edition%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97%20Timing%20Analyzer%20(UG-20183%202018.09.24)%20%E7%9A%84%E5%8F%8D%E9%A6%88&body=%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%8F%8D%E9%A6%88%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%84%E8%AE%BA%E4%B8%AD%E6%8C%87%E6%98%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E9%A1%B5%E7%A0%81%E5%92%8C%E6%AE%B5%E8%90%BD%EF%BC%8C%E8%B0%A2%E8%B0%A2%E3%80%82

  • 使用以下步骤迭代地修改约束:

    1. 点击 Tools > Timing Analyzer。

    2. 生成要分析的报告。双击Macros下的 Report All Summaries以生成设置(setup),保持(hold),恢复(recovery)和删除摘要(removal summaries)以及最小脉冲宽度检查和您定义的所有时钟的列表。这些摘要涵盖了您在设计中约束的所有路径。无论何时修改或更正约束,都会生成 Diagnostic报告以识别设计中不受约束的部分或者被忽略的约束。

    3. 分析报告中的结果。修改约束时,请重新运行报告以查找任何意外结果。例如,一条跨域路径(cross-domain)可能表示您忘记了通过在时钟组中包含一个时钟来切断一个传输(cut atransfer)。

    4. 在.sdc文件中创建或编辑相应的约束并保存文件。

    5. 双击 Tasks窗格中的 Reset Design。这将从您的设计中删除所有约束。从设计中删除所有约束后可以重新读取.sdc文件,包括所作的更改。

    6. 重新生成要分析的报告。7. 重新分析结果。8. 如果需要,请重复步骤 4到 7。

    此方法使用新的约束执行时序分析,而不对逻辑布局进行任何更改。当 Fitter使用原始约束进行布局和布线时,Timing Analyzer应用新的约束。如果针对新的约束存在任何失败的时序,那么表明需要再次运行布局布线。

    相关链接

    Relaxing Setup with Multicycle (set_multicyle_path) (第 54页)

    2.3.4. 创建时钟和时钟约束

    您必须定义所有时钟和任何相关的时钟特性,例如不确定性(uncertainty),延迟(latency)或偏斜(skew)。Timing Analyze