1 / 67

DC 相关时序概念

DC 相关时序概念. 主要内容 . 建立时间与保持时间. 扇入与扇出. 时钟. 常用术语. Clock setup :时间建立关系 tsu :输入建立时间 th :输入保持时间 tco :时钟到输出延时 tpd :管脚到管脚延时 Minimum tpd & tco :最小 tpd & tco Clock Skew :时钟偏斜 最小时钟周期与最高频率 Setup Time :建立时间 Hold Time :保持时间 Latency :延迟 Slack :时间裕量. 设计中常用的约束.

susane
Télécharger la présentation

DC 相关时序概念

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DC相关时序概念

  2. 主要内容 • 建立时间与保持时间 • 扇入与扇出 • 时钟

  3. 常用术语 • Clock setup:时间建立关系 • tsu:输入建立时间 • th:输入保持时间 • tco:时钟到输出延时 • tpd:管脚到管脚延时 • Minimum tpd & tco:最小tpd & tco • Clock Skew:时钟偏斜 • 最小时钟周期与最高频率 • Setup Time:建立时间 • Hold Time:保持时间 • Latency:延迟 • Slack:时间裕量

  4. 设计中常用的约束 设计中常用的约束(Assignments或Constraints)主要分为3类: • 时序约束:主要用于规范设计的时序行为,表达设计者期望满足的时序条件,指导综合和布局布线阶段的优化算法等。 • 区域与位置约束:主要用于指定芯片I/O引脚位置以及指导实现工具在芯片特定的物理区域进行布局布线。 • 其他约束:泛指目标芯片型号、接口位置,电气特性等约束属性。

  5. 时序约束的主要作用 提高设计的工作频率 通过附加时序约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。 • 获得正确的时序分析报告 QuartusII的静态时序分析(STA)工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入时序约束,以便STA工具能输出正确的时序分析结果。

  6. 静态时序分析与动态时序仿真 动态时序仿真是针对给定的仿真输入信号波形,模拟设计在器件实际工作时的功能和延时情况,给出相应的仿真输出信号波形。它主要用于验证设计在器件实际延时情况下的逻辑功能。由动态时序仿真报告无法得到设计的各项时序性能指标,如最高时钟频率等。 • 静态时序分析则是通过分析每个时序路径的延时,计算出设计的各项时序性能指标,如最高时钟频率、建立保持时间等,发现时序违规。它仅仅聚焦于时序性能的分析,并不涉及设计的逻辑功能,逻辑功能验证仍需通过仿真或其他手段(如形式验证等)进行。静态时序分析是最常用的分析、调试时序性能的方法和工具。

  7. Path & Analysis Type

  8. Launch & Latch Edge

  9. Launch Edge: 前级寄存器发送数据对应的时钟沿,是时序分析的起点。 Latch Edge 后级寄存器捕获数据对应的时钟沿,是时序分析的终点

  10. 时钟偏斜(clock skew) 时钟偏斜:指一个同源时钟到达两个不同的寄存器时钟端的时间差别。 clock skew:The difference in the arrival time of a clock signal at two different registers, which can be caused by path length differences between two clock paths, or by using gated or rippled clocks. Clock skew is the most common cause of internal hold violations.

  11. skew • 实例 • 由于时钟到每个触发器的互连线长短不一样,造成信号到达clock pin的时间也不一样,触发器也不会同时翻转。Skew的定义就是最长路径减去最短路径的值。

  12. 根据时钟域以及路径关系,skew可以分为global skew,local skew,interclock skew。 • Global skew是指,同一时钟域,任意路径的最大skew。

  13. Local skew是指,同一时钟域,任意2个有逻辑关联关系的路径最大skew。

  14. interClock skew是指,不同时钟域之间路径的最大skew

  15. latency • Latency分为source lantency 和 一般的latency。 • Source latency指的是时钟源到时钟端口的延迟。 • 一般Latency指的是时钟端口到内部时序器件的时钟管脚的延迟。 • 一般只考虑latency即可。

  16. latency对于内部逻辑的影响 • 下图是不考虑latency的情况 • 内部逻辑延迟的限度为: T2-T1-Tinput_delay-Tsetup

  17. 当考虑了latency的时候。 • 那么留给内部逻辑的最大延迟为:T2’(T2+Tlatency)-T1-Tinput_delay-Tsetup。 • 会发现留给内部逻辑的延迟会变大,那么会给DC更大的空间来综合。

  18. 时钟jitter • 正常的时钟到来时蓝色的时序图。但是由于无法预知的因素,时钟可能提前(粉色)或者延迟(红色)到来,这就是jitter。 • 提前到来为setup jitter,延迟到来为 hold jitter。

  19. uncertainty • DC中把skew和jitter合成一个uncertainty。 用set_clock_uncertainty来设置。 • 下文中提到的skew指的是合体,即uncertainty。

  20. 最小时钟周期与最高时钟频率 最小时钟周期: tCLK = Microtco + tLOGIC + tNET + MicrotSU- tCLK_SKEW tCLK_SKEW = tCD2 - tCD1 最高时钟频率: fmax = 1 / tCLK 同步电路数据传输模型

  21. Tips • setup slack = (<setup relationship>) - (<maximum clock pin to source register delay> + <tCO of source register> + <register-to-register delay> + <tSU of destination register> - <minimum clock pin to destination register delay>) 同步系统的运行速度 即同步时钟的速度。同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间处理的数据量就愈大。

  22. 建立时间与保持时间 • IC 代码的综合过程可以说是时序分析过程,dc会将设计打散成一个个路经,这些路经上有cell延迟和net延迟,然后dc会根据你加的约束,来映射库中符合这种延迟以及驱动的器件。从而达到综合的目的。 • setup time 和 hold time是dc所有时序约束的基础。

  23. setup time即建立时间,也就说数据在时钟到来之前保持稳定所需要的时间。 • hold time即保持时间,也就是说在时钟到来之后数据需要保持稳定的时间。

  24. Data Arrival Time

  25. Launch Edge + 前级寄存器Clock path的延时 + 前级寄存器Cell从时钟Pin到数据输出Pin的Net延时(uTco) + Data path的延时 Data Arrival Time: 时钟到达前级寄存器的时刻 + 前级寄存器时钟到后级寄存器数据输入的延迟

  26. Clock Arrival Time

  27. Slack Slack用于表示设计是否满足时序:正的Slack表示满足时序(时序裕量),负的Slack表示不满足时序(时序的欠缺量)。 Slack: Slack is the margin by which a timing requirement was met or not met. A positive slack value, displayed in black, indicates the margin by which a requirement was met. A negative slack value, displayed in red, indicates the margin by which a requirement was not met. slack = <required maximum point-to-point time> - <actual maximum point-to-point time>

  28. 遵循的原则是信号从Launch edge开始计时,经过一系列的时序路径,到达后级寄存器的数据输入Pin的速度不能太快,时间不能太短,否则会侵占后级寄存器数据输入Pin相对于上一个Latch edge的保持时间。 刚好满足后级寄存器保持时间的数据到达时间是Data Required Time(相对于Latch edge计算),实际的数据到达时间是Data Arrival Time(相对于Launch edge计算)。 显然,在保持时间检查中,Data Arrival Time要大于Data Required Time,否则就会造成保持时间违规。也就是说,Data Required Time是Data Arrival Time的最小值。二者之差就是保持时间的时序余量。

  29. 相对于建立时间检查,保持时间检查稍微难懂一些。二者都是同步逻辑设计中对同一个规则的不同解释:当前时钟沿发出的数据要在下一个时钟沿被正确捕获,不能晚,也不能早。晚了,会造成下一个时钟沿的建立时间违规,当前时钟沿发送的数据不能被下一个时钟沿捕获;早了,会造成上一个时钟沿发送的数据保持时间违规,上一个时钟沿发送的数据不能被当前时钟沿正确捕获。 riple二者在计算公式上的区别在于Slack计算公式中减数与被减数关系。

  30. 时钟到输出延时(Clock to output delay) 时钟到输出延时:从时钟信号有效沿到数据有效的时间间隔。 tCO = Clock Delay + MicrotCO +Data Delay

  31. 管脚到管脚延时(pin-to-pin delay) 管脚到管脚延时tPD:指信号从输入管脚进来,穿过纯组合逻辑,到达输出管脚的延迟。 • tPD (pin-to-pin delay) :The time required for a signal from an input pin to propagate through combinational logic and appear at an external output pin.

  32. 指定全局时序约束 时序驱动的编译 全局时钟设置 全局的I/O时序设置 时序分析和报告选项 时序向导

  33. 指定个别时序约束 指定个别时钟要求 个别时序约束 输入最大最小延时 输出最大最小延时 反相时钟 非时钟 tCO要求(最大、最小)、 tSU要求、 tH要求、 tPD要求 剪除时序路径 个别时序约束的对象 单点 点到点 通配符 时序组

  34. 指定个别时钟要求 时钟分类: 独立时钟 衍生时钟

  35. DC中的路径(Path) • start point 1. input port(顶层设计的输入端口) 2.clock pin of sequential cell(触发器的clock pin) • end point 1. output port(顶层设计的输出端口) 2.data pin of  sequential cell(触发器的data pin)

  36. 一个设计中基本的路经分为4种: path1: input port to data pin of sequential cell path2: input port to output port path3: clock pin to data pin of next sequential cell path4:clock pin to output port

  37. dc中对于建立时间的分析是基于路径的最大延迟dc中对于建立时间的分析是基于路径的最大延迟 • dc中对于保持时间的分析是基于路径的最小延迟

  38. 例:时序分析案例 • 给定setup time 和hold time ,要求算出最小时钟周期 • 假设时钟周期是20,每个触发器的cell 延迟是1, 触发器的建立时间是1, 保持时间是0.5, 分析图中的建立时间和保持时间的slack。

  39. 首先要分析路径,找出最长和最短路径,因为dc的综合都是根据约束而得到最短和最长路径来进行器件选择的。所以接下来将图中的所有路径标出。因为没有前级(input_delay)和后级电路(output_delay),我们只分析图中给出的 路径,如下图:

  40. 对于红色路径:Td=Tcell+Td4+Td5+Td6=1+4+3+1=9 • 对于黄色路径:Td=Tcell+Td4+Td5+Td6+Td8=1+4+3+1+2=11 • 对于粉色路径:Td=Tcell+Td1+Td2+Td3=1+2+3+2=8 • 对于绿色路径:Td=Tcell+Td7+Td2+Td3=1+2+3+2=8

  41. 分析结论 • 对于hold time的slack : Tshortest-Thold=8-0.5=7.5 • Tlongest=11,Tshortest=8 • 对于setup time的slack:Tclk-Tlongest-Tsetup=20-11-1=8

  42. 对照第一副示意图与此比较,建立时间看D2 ,保持时间看D1,因为同时把Tl和Ts放在一个图例中,看起来可能有些误解:)

More Related