数字ASIC设计概要:时序约束(Timing)简介

DFT设计 与 芯片测试 ;Scan Chain; DC里的DFT的扫描链设计; 存在异步复位触发器时的扫描链设计;Scan-In Scan-Out DFT(Design for Testability )该设计有助于提高可测试性,从而促进制造过程中的测试和调试,提高了芯片的可测试性和可靠性。没有一个制造过程是完美的,所以生成出的所有的芯片不是都能正常工作,因此,进行测试(例如DFT)是非常重要的,以确保只有功能正常的芯片被送出去用于后续的封装和应用。对于任何芯片设计,都会存在一定的失效率(Yield)。 阅读详情

数字设计中,时序是最基本,也是最重要的概念。

基本概念

我们所说的数字设计多数时候都是指的同步逻辑。所谓同步逻辑,是说所有的时序逻辑都在时钟信号的控制下完成。这很像是大合唱,有很多的人参与,大家都根据同一个节拍来控制节奏,保持整齐。时钟信号就是那个节拍。其实很多地方都需要有一个节拍来协调系统的各个部分。比如工厂里的一条流水线。

流水线的每个工人从前一个人那里拿到中间产品,装配一个零件,然后交给下一个人;每一个人面前的空间只有放置一个中间产品的空间。装配一个零件并把中间产品交到下一个那里是需要时间的。如果这个时间太短,就会发生下一个人手中的零件还没装配好,新的中间产品又来了,却没处放的问题。如果这个时间太长了,就会发生下一个人闲着没事干的情况。前一种情况会导致流水线混乱,后一种情况则导致流水线的效率下降。因此,在确定的流水线效率要求下,我们就必须要求每位工人装配一个零件并把中间产品传到下一位工人的时间不能太快也不能太慢。这话也可以反过说,只有保证每位工人所用的时间在一个确定的时间范围内,我们才能保证流水线在按照特定的效率运行。

同步逻辑数字设计也好比是设计一个满足上述要求的“流水线”,只不过这个流水线是由传递二进制数据的数字器件组成。数据在两个存储单元之间传递,“效率”由时钟的周期(T)决定。每个存储单元在时钟节拍(通常是时钟信号的上升沿)的号令下工作。如同每个工人装配零件需要时间一样,每个存储单元正确地存储数据也是有要求的。它要求数据必须在时钟沿之前的某个时间就准备好(我们把这个时间称为 setup time,记为 tsetup),并且有这个数据必须保持不变一直到时钟沿之后的某个时间(我们把这个时间称为 hold time,记为 thold)才能完成数据的存储。 每个存储单元传递数据到下一个单元的时间我们记为 tdata,累比于上面流水线的例子,我们很容易得出,为了保证数据的正确传递,必须要求:

thold < tdata < T - tsetup

如果不是 thold < tdata,就会干扰下一个存储单元当前的数据存储;如果不是 tdata < T - tsetup,下一个存储单元就来不及存储下一个数据。实际中为了便于分析,这种约束关系也可以表示为:

tslack-max = (T - tsetup) - tdata > 0 
tslack-min = tdata - thold > 0

这样一来,我们只需要检查每两个存储单元之间的 tslack-max 和 tslack-min 是否为正值就可以了。我们把这两个差值称为 Slack 。Slack 为正,我们称之为 "MET",Slack 为负,我们称之为 Violation。

事实上,两个存储单元之间通常还会有组合逻辑单元,它们也传递数据,也对数据进行“加工”(二进制运算),只不过他们不需要理会时钟信号的存在,它们只是按照自己的能力大小(速度快慢)尽职而已。仍然以时钟节拍(比如时钟信号上升沿)做为参考的话,存储单元完成内部数据存储并输出到它的输出端(比如 Q 端口)也是需要时间的(我们记为 tclk-q)。数据通过两个存储单元之间的组合逻辑所需要的时间记为 tcomb,则有:

tdata = tclk-q + tcomb

至此,我们应该已经在体上知道了所谓的时序约束是指什么。但实际应用中,为了更好地将相关问题数学模型化,我们还需要进一步的概念定义。

Timing Path

上面提到的 tdata 其实就是数据沿着一条数据通道传递所用的时间。而这条数据通道,我们就叫做 Timing Path。总结一个Design中可能的Timing Path,有下面四种:

  • 从存储单元的时钟端口到另一个存储单元的数据输入端口的数据通道
  • 从存储单元的时钟端口到 design 的输出端口
  • 从 design 的输入端口到存储单元的数据输入端口
  • 从 design 的输入端口到 design 的输出端口

有了 Timing Path 的定义,关于时序的计算事实上就可以描述为遍历 design 中所有的 Timing Path ,计算它们的 Slack。

  • False Path : 所谓 False Path,简单来说就是指那些理论上存在,但实际上却不可能有数据沿它传输的 Timing Path。
  • Disabled Timing Path : 人们有意识地排除掉的 Timing Path 。
  • Multicycle Path : 通常的 Timing Path 在一个时钟周期内完成数据传输。有时,数据路径比较长,需要多于一个时钟周期才能完成数据传递,这种特殊的 Timing Path 叫做 Multicycle Path 。

时钟信号(Clock)

在上面的讨论中,我们所说的时钟信号都是理想情况下的。现实世界常常都是不会尽如人意的。 
时钟信号传递到各个节点所用的时间不会总是相同的。时钟信号两个相邻的周期的波形也不会完全相同。

  • Latency : 我们把时钟信号传递到存储单元的输入端所用的时间定义为 Clock Latency 。
  • Uncertainty : 时钟信号传递到两个不同的节点所有的时间的差值我们称为 Clock Uncertainty。而 Uncertainly 事实上又可以分为两部分。
    • Skew : 同一个时钟信号由于传递路径不同导致的时间差异,我们称之为 Skew 。
    • Jitter (抖动) : 两个不同时刻(主要是相邻两个周期)的时钟信号由于时钟源本身的不稳定而产生的信号边沿的时间差异,我们称之为 Jitter。

tuncertainty = tskew + tjitter

对于 Jitter, 通常都相对 Skew而言比较小, 我们也只能尽可能挑选稳定性好的时钟信号源。在实际设计中,我们更关心 Skew 多一些。我们常说的 CTS (Clock Tree Synthesis) 的主要目的就是如何让 Skew 尽可能地小。

FPGA时序约束学习笔记(一)理论知识 时钟信号也是如此,全局时钟资源有专门的时钟路径,在自己的空间走线,不穿过或很少穿过各种高速翻转的逻辑区域,因此很少受到污染。 而非全局时钟资源没有专门的时钟时钟信号也是如此,全局时钟资源有专门的时钟路径,在自己的空间走线,不穿过或 很少穿过各种高速翻转的逻辑区域,因此很少受到污染。 而非全局时钟资源没有专门的时钟,路径,只能使用通用布线资源,而这些布线不可避免的会穿过很多高速翻转的逻辑区域。从而受到这些逻辑的翻转噪声的污染。最终时钟信号变的很差。例如边沿上升和下降更慢, 占空比发生变化,时钟抖动增大等。 阅读详情

相关推荐

数字电路时序分析基础

介绍了数字电路单元延时以及建模,这些是时序分析的基础。

weixin_43249158的博客 3870

timing lib时序弧

时序弧 静态时序分析是基于时序弧数据的时序分析。时序弧是用来描述两个节点延时信息的数据,时序弧的信息一般分为连线延时和单元延时。连线延时是单元输出端口和扇出网络负载之间的延时信息;单元延时是单元输入端口到输出端口之间的延时信息。因此一条完整路径的时序信息计算由连线延时和单元延时组成。 连线延时没有功能属性,所以延时信息在分类上没有区别。单元延时中的时序弧分为基本时序弧和约束时序弧两类,其中约束时序弧用来表示输入端口之间存在的时序约束的信息。 基本时序弧...

u011075954的专栏 7486

Timing Designer:从时序建模到约束生成,硬件工程师的高效时序分析利器

时序分析是数字电路与芯片设计中的核心环节,它关乎信号在时钟沿前后的建立时间、保持时间等关键参数的满足。其原理在于通过精确描述事件之间的延迟、偏移等时序关系,构建可计算、可验证的时序模型,从而确保电路功能的正确性与可靠性。这项技术的价值在于将工程师从繁琐、易错的手工绘图与计算中解放出来,实现时序约束的可视化、动态化与自动化管理,极大提升了设计迭代与验证的效率。在FPGA开发、高速接口协议分析、芯片验证等应用场景中,时序建模工具能够直接对接设计流程,例如将定义的约束导出为标准SDC文件供综合实现工具使用,或从协

weixin_28273593的博客 330

Timing Modeling--时序模型

The cell timing models are intended to provide accurate timing for various instances of the cell in the design environment. The timing models are normally obtained from detailed circuit simulations

mikiah的专栏 5443

Timing Constraint介绍-Design Compiler(三)

系列学习介绍DC相关知识,包括ASIC基本单元相关,DC指令工艺库脚本相关,后端综合实现相关等总结。本节包括Timing constraint,内容有一些个人理解和各地方论坛总结学习,有不同认识欢迎探讨,fighting。

Paul 安的博客 7172

FPGA/ASIC时序约束实战:从SDC编写到STA调试全流程解析

时序分析是数字电路设计的核心环节,它确保信号在时钟边沿稳定采样,满足建立时间和保持时间要求。其原理基于静态时序分析(STA)工具对设计路径的延迟计算,通过约束文件(如SDC)定义时钟、I/O延迟和时序例外。这项技术的价值在于保障芯片在目标频率下可靠工作,避免亚稳态和时序违例导致的功能故障。应用场景涵盖从处理器、通信接口到存储控制器的各类数字系统。本文聚焦于时序约束的工程实践,详细解析如何编写正确的SDC命令,包括主时钟、生成时钟、虚拟时钟的定义,以及输入输出延迟的约束方法。针对常见的时序违例(Violati

weixin_30326515的博客 437

别再怕时序违例了!手把手教你用Timing Borrow优化你的FPGA/ASIC设计

本文深入解析了Timing Borrow技术在FPGA/ASIC设计中的关键应用,帮助工程师有效解决静态时序分析中的违例问题。通过实战案例详细介绍了如何识别适合Timing Borrow的关键路径、在EDA工具中的具体配置方法,以及规避常见陷阱的策略,为数字芯片设计提供宝贵的时序优化方案。

weixin_28732953的博客 388

数字电路时序约束实战:从SDC语法到FPGA/ASIC设计全流程

静态时序分析(STA)是数字电路设计的核心验证方法,它通过分析所有信号路径的延迟来确保电路在目标频率下稳定工作。其原理基于建立时间和保持时间检查,确保数据在时钟边沿前后满足稳定的时间窗口。这项技术的价值在于,它能在流片前预测芯片的时序行为,避免因时序违例导致的功能故障。在ASIC和FPGA设计中,STA被广泛应用于从综合到布局布线的每个阶段,以确保最终硅片符合性能要求。时序约束,特别是采用行业标准SDC格式,是将设计意图转化为STA工具可执行指令的关键。通过定义时钟、I/O延迟和时序例外,工程师可以精确控制

weixin_28703451的博客 310

数字IC时序约束实战:SDC文件编写与3类常见违例修复

本文深入探讨数字IC设计中的时序约束实战,重点解析SDC文件编写规范与三类常见违例(建立时间、保持时间、时钟门控)的修复策略。通过具体代码示例和案例分析,展示如何在40nm至3nm工艺节点中实现时序收敛,帮助工程师提升数字IC设计的可靠性和性能。

weixin_33768481的博客 144

时序分析利器Timing Designer:从可视化建模到跨时钟域调试实战

时序分析是数字电路与嵌入式系统设计的核心基础,它关乎电路在物理层面的稳定性和可靠性。其原理在于通过建立时间、保持时间、时钟偏斜等关键参数的约束与验证,确保信号在时钟边沿的准确采样。这项技术的核心价值在于将抽象的时序关系转化为可量化、可预测的工程指标,从而避免功能仿真通过但硬件实测失败的经典难题。在FPGA/ASIC开发、高速接口(如DDR、PCIe)验证、以及多时钟域系统设计等复杂应用场景中,精准的时序分析是保障产品成功的关键。本文聚焦的Timing Designer工具,正是通过图形化建模、假设分析和可视

weixin_27188815的博客 240

ASIC与FPGA设计流程对比:从RTL到流片的7个核心差异点

本文详细对比了ASIC与FPGA设计流程的7个核心差异点,从RTL设计到流片实现。重点分析了数字IC设计中的架构考量、原型验证、综合优化、布局布线等关键环节,帮助工程师理解两种技术路径的优缺点及适用场景,为项目选型提供决策依据。

weixin_34377919的博客 363

静态时序分析(Static Timing Analysis)基础及应用教程:项目核心功能与场景

静态时序分析(Static Timing Analysis)基础及应用教程:项目核心功能与场景 【下载地址】静态时序分析StaticTimingAnalysis基础及应用教程 《静态时序分析(Static Timing Analysis)基础及应用》是一份由陈麒旭编写的经典教程,专为电子工程师和爱好者打造。教程深入浅出地...

gitblog_06763的博客 259

FPGA/ASIC设计中set_input_delay约束详解:从原理到实战避坑指南

在数字集成电路和FPGA设计中,静态时序分析(STA)是确保芯片功能正确和性能达标的关键环节。其核心原理在于验证信号在时钟边沿前后是否满足寄存器对建立时间和保持时间的要求。这项技术的核心价值在于,它能在流片或上板前预测并消除时序风险,避免代价高昂的硬件故障。无论是高速接口、存储器互联还是处理器外设,任何涉及芯片与外部器件通信的场景都离不开精确的时序约束。本文聚焦于STA中至关重要的set_input_delay命令,它定义了外部信号到达芯片输入引脚的时序模型。通过深入剖析其参数(如-max/min、参考时钟

weixin_34014555的博客 452

ASIC、FPGA、SoC 设计流程对比:从 RTL 到流片的 6 个关键阶段差异

本文深度对比ASIC、FPGA和SoC从RTL设计到流片的6个关键阶段差异,涵盖架构设计、功能验证、逻辑综合、布局布线等核心流程。通过分析不同技术路线的工具链、设计约束和优化策略,为半导体工程师提供全面的设计流程参考和技术选型建议,帮助优化芯片性能、功耗与开发效率。

weixin_30613343的博客 386

门控时钟ICG单元:3种电路结构对比与ASIC/FPGA选型指南

本文深入探讨了门控时钟ICG单元的三种电路结构(与门门控、锁存器门控和寄存器门控)及其在ASIC与FPGA设计中的应用对比。通过详细分析各结构的优缺点、功耗优化机制及实现策略,为工程师提供了选型指南,帮助在数字IC设计中实现高效低功耗方案。

weixin_30565327的博客 381

从需求到流片:一个虚拟的蓝牙音频芯片项目,带你走完ASIC设计的每一步

本文通过一个虚拟的蓝牙音频芯片项目,详细解析了从产品定义到流片的完整ASIC设计流程。重点介绍了低功耗AAC解码蓝牙芯片开发中的关键决策点,包括RTL实现、逻辑综合、可测性设计和物理实现等环节,并分享了流片后的测试与调试实战经验。文章为数字IC设计工程师提供了宝贵的实战参考,特别适合关注ASIC设计全流程的从业者。

weixin_38168547的博客 844

从RTL到门级网表:用Design Compiler实现ASIC综合的完整流程解析

本文详细解析了使用Synopsys Design Compiler工具将RTL代码转换为门级网表的完整ASIC综合流程。文章深入探讨了综合的本质、环境搭建、工艺库配置、约束设置的艺术、编译优化策略以及实战脚本与调试技巧,为数字IC设计工程师提供了从理论到实践的全面指导,帮助其掌握在性能、面积和功耗等多重约束下实现电路最优化的核心方法。

4k5l6j7h8的博客 277

GAMES104:02引擎架构分层-学习笔记

用户层工具层(Tool Layer):编辑器、工具界面功能层(Function Layer):渲染Rendering、动画Animation、物理Physics、相机Camera和实现游戏性的脚本Script、状态机FSM、AI等功能模块资源层(Resource Layer):各类图片、动画、音频资源加载核心层(Core Layer):核心功能如内存管理、容器分配、数据计算、多线程处理等平台层(Platform Layer):对接不同游戏平台、主机和硬件。

噗噗噗的博客 1268
上一篇: DC综合
下一篇: 从D触发器的角度说明建立和保持时间
imeradio
博客等级 码龄18年 18粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值