STA series --- 1. Introduction

本文介绍了静态时序分析(STA)在纳米设计中的应用,包括在综合后、时序优化、布局、时钟树合成(CTS)和布线等不同设计阶段的作用。STA用于验证时序合规性,确保芯片正常工作,并在先进工艺中量化噪声和耦合影响。然而,STA存在局限,如无法检查重置序列、处理X态、验证异步时钟域交叉等,需要仿真作为补充。文章强调了正确设置约束和处理假路径的重要性。
摘要由CSDN通过智能技术生成

序:
本篇内容,基于阅读J. Bhasker • Rakesh Chadha著作《Static Timing Analysis for Nanometer Designs》后进行的总结以及自己的观点和感想,如有不正确的地方,还请指点。读者有微电子基础将更好理解内容。

STA introduction

首先需要思考几个问题:

到底什么是STA(static timing analysis)?为什么要用STA?在设计的哪个阶段去做STA?怎么去做STA?做STA需要什么东西?

1. What is STA and why use STA?

timing analysis是指对数字设计进行timing验证,保证设计不会出现时序违约的情况,最终目的是为了保证流片后的芯片能正常的工作。timing analysis分为两类,静态时序分析和时序仿真。

静态时序分析:

从寄存器级来说,芯片能正常工作其实就是0/1在不同的门之间能进行准确无误传递。那么这个传递就会经过相应的路径。静态时序分析,就是通过获取design中的所有的paths,配合相应的sdc,对所有的path进行setup和hold 的check,保证在相应约束的情况下,寄存器能够正常的满足对数据的捕获和保持功能。一次即可对所有的路径和scenarios进行验证。exhaustively

时序仿真:

通过施加激励,观察和验证design的behavior的方式进行时序验证。对于一些非常小的芯片有参考价值,但是对于现在百万instances级别以上的芯片,如果想要把所有的情况都验证出来,可以说是天方夜谭。

noise和coupling

在老的工艺节点,noise和coupling影响几乎可以忽略,但是随着工艺节点的缩小,互联金属线产生的影响,以及占据了非常重要的地位。线与线之间产生的noise和coupling已经不能够忽略,严重时甚至会影响芯片的正常功能。时序逻辑的仿真并不能很好保证芯片的robust 分析出noise和coupling的影响。通过静态时序分析可以量化noise和coupling影响,通过对其增加constraint,可以提高其robust。

2. When do STA ?

在整个design中,STA可以用到不同的阶段。但一般是从综合之后开始进行的。因为在RTL阶段,主要需要验证的是芯片的功能性,此时对于design的描述是行为级别的,并非所有的时序信息都可用(工具也没办法去抓取path)。因此STA一般是在RTL的后期阶段才开始使用的,具体的介绍如下:

1) syn后未优化阶段

此时design已经map成了门级别网表,还未进行timing优化,可以进行简单的STA check,去看一些critical 的path的timing 情况。(因为一般会把综合全部做完才会去看timing,所以这个阶段一般不用)

2) syn/opt后

此时design已经map成了门级别网表,并进行了timing 的优化,此时可以进行STA check。在保证不会有非常大的timing violation的前提下,才可以把网表release给到后端去做PR,否则是需要给到前端去修改设计的。因为后端fix timing 的能力也是有限的。此时的clock是ideal的,完全没有考虑cell的物理信息,使用wire-load mode评估rc信息,是不够准确的。

3) place后

此时已经把综合release的网表里对应的cell 进行了位置的摆放,还没有route,会有一个评估的route信息,即global routes的信息 ,但是不够精确,不包含coupling的影响。现在还没有做clk tree,因此此时的clock仍然是ideal的,

4)CTS后

此时,做完了clock tree,clock的信息不再是ideal了,是propagated的了。真是的clock delay是存在的,不过没有详细的routing 信息,依然使用的global routes

5)routing后

此时,后端做完了PR,所有的cell都会有详细的物理信息,所有的net都会有相应的绕线的存在,后端同事会抽取RC寄生参数(因为在先进工艺,net/金属线影响非常大)此时得到的pr后的网表,去进行STA check,这个时候的check就考虑到noise和coupling的信息,是模拟工艺流片的信息。这个后端提供的PR 后的netlist是最终TO要用来check的网表。

在这里插入图片描述
(上图引自本文开头的书中)
STA的check归根到底,不外乎以下集中情况的考虑:

i. 互联线是否真实,是用的wire_load model or global route or approximate RCs or real routes的哪一种。
ii. clock是否是理想状态,是ideal (zero delay) or propagated (real delays).
iii. 是否考虑了互连线之间的coupling,crosstalk noise是否被分析了.

3. Limit of STA ?

即使STA很强大,依然会有一些难以完成的工作,很多内容直接引用书中内容,因为翻译可能会修改原意思。

i. Reset sequence:
检查所有的寄存器在同步或者异步reset后,是否都设定了正确的逻辑值。因为这个在综合阶段是不会被综合进去的,因此需要进行仿真才能够验证。

ii. X-handling:
STA只处理logic 0/1,rise/fall。对于x 态的值,会导致在path路径上进行不确定值的传播,无法进行STA的check。(这种不确定的传播和噪声分析中的毛刺传播是不同的)

iii. PLL settings:
PLL configurations may not be loaded or set properly.

iv. Asynchronous clock domain crossings:
STA 检查不能保证使用了正确的同步器,需要其他工具来确保在存在异步时钟域交叉的任何地方都存在正确的时钟同步器

v. IO interface timing:
It may not be possible to specify the IO interface requirements in terms of STA constraints only. For example, the designer may choose detailed circuit level simulation for the DDR1 interface using SDRAM simulation models. The simulation is to ensure that the memories can be read from and written to with adequate margin, and that the DLL2, if any, can be controlled to align the signals if necessary. (DDR, double data rate SDRAM; DLL, delay locked loop)

vi. Interfaces between analog and digital blocks:
Since STA does not deal with analog blocks, the verification methodology needs to ensure that the connectivity between these two kinds of blocks is correct.

vii. False paths:
The quality of STA results is better when proper timing constraints including false path and multicycle path constraints are specified in the design. In most cases, the designer can utilize the inherent knowledge of the design and specify constraints so that the false paths are eliminated during the STA.

viii. FIFO pointers out of synchronization:
STA cannot detect the problem when two finite state machines expected to be synchronous are actually out of synchronization. During functional simulations, it is possible that the two finite state machines are always synchronized and change together in lock-step. However, after delays are considered, it is possible for one of the finite state machines to be out of synchronization with the other, most likely because one finite state machine comes out of reset sooner than the other. Such a situation can not be detected by STA.

ix. Clock synchronization logic:
STA cannot detect the problem of clock generation logic not matching the clock definition. STA assumes that the clock generator will provide the waveform as specified in the clock definition. There could be a bad optimization performed on the clock generator logic that causes, for example, a large delay to be inserted on one of the paths that may not have been constrained properly. Alternately, the added logic may change the duty cycle of the clock. The STA cannot detect either of these potential conditions.

x. Functional behavior across clock cycles:
The static timing analysis cannot model or simulate functional behavior that changes across clock cycles.

Despite issues such as these, STA is widely used to verify timing of the design and the simulation (with timing or with unit-delay) is used as a backup to check corner cases and more simply to verify the normal functional modes of the design.

本章简单介绍了STA的使用场景和使用限制,下一章节将会对STA 一些基础概念进行讲解~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值