EDN首页   博客首页

最新日志

发表于:2008-9-18 17:13:54
标签:无标签

1

Why we should do gate-level simulation?

1. Since scan and other test structures are added during and after synthesis, they are not
checked by the rtl simulations and therefore need to be verified by gate level simulation.
2. Static timing analysis tools do not check asynchronous interfaces, so gate level simulation
is required to look at the timing of these interfaces.
3. Careless wildcards in the static timing constraints set false path or mutlicycle path
constraints where they don’t belong.
4. Design changes, typos, or misunderstanding of the design can lead to incorrect false paths
or multicycle paths in the static timing constraints.
5. Using create_clock instead of create_generated_clock leads to incorrect static timing
between clock domains.
6. Gate level simulation can be used to collect switching factor data for power estimation.
7. X’s in RTL simulation can be optimistic or pessimistic. The best way to verify that the
design does not have any unintended dependence on initial conditions is to run gate level
simulation.
8. It’s a nice “warm fuzzy” that the design has been implemented correctly.
DICDER -- 博客专栏9Gw l"ppO"U*M'Wl%j^"m R0DICDER -- 博客专栏/A0HDK)a%hZT~DICDER -- 博客专栏~'y?(Z1mG4^DICDER -- 博客专栏r9npZ[DICDER -- 博客专栏+kL6v_8lsDICDER -- 博客专栏!G C;Z o @!F6ADICDER -- 博客专栏4hZ&C-VS8{Il(U)V``f|K%c0)E C(q1hxS?i0DICDER -- 博客专栏#EkI H3xbXVv7W7RG;AI2{9n9N ?0DICDER -- 博客专栏5I caI{DICDER -- 博客专栏$l.|.NQ0q!j6jzHa

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 整理

评论(0) | 阅读(88)
发表于:2008-9-7 17:05:08
标签:无标签

1

FPGA STA

静态时序分析在高速FPGA设计中的应用

摘要:介绍了采用STA (静态时序分析)FPGA (现场可编程门阵列)设计进行时序验证的基本原理,并介绍了几种与STA相关联的时序约束。针对时序不满足的情况,提出了几种常用的促进时序收敛的方法。结合设计实例,阐明了STA在高速、大规模FPGA开发中的应用。实践表明,随着数字设计复杂度的增加,在后端的时序验证环节,与传统的动态门级时序仿真相比,采用STA方法的优势在于可以全面、高效地完成验证任务。

1 FPGA设计中的验证手段
     
在以往的小规模FPGA (现场可编程门阵列)设计中,验证环节通常只需要做动态的门级时序仿真,就可同时完成对DUT (被测试设计)的逻辑功能验证和时序验证。随着FPGA设计规模和速度的不断提高,要得到较高的测试覆盖率,就必须编写大量的测试向量,这使得完成一次门级时序仿真的时间越来越长。为了提高验证效率,有必要将DUT的逻辑功能验证和时序验证分开,分别采用不同的验证手段加以验证。首先,电路逻辑功能的正确性,可以由RTL (寄存器传输级)或门级的功能仿真来保证;其次,电路时序是否满足,则通过STA (静态时序分析)得到。两种验证手段相
辅相成,确保验证工作高效可靠地完成。STAFPGA设计流程中的位置如图1所示。
 
1 STAFPGA设计流程中的位置
 
  STA是一种穷尽分析方法,它按照同步电路设计的要求,根据电路网表的拓扑结构,计算并检查电路中每一个DFF (触发器)的建立和保持时间以及其他基于路径的时延要求是否满足。STA作为FPGA设计的主要验证手段之一,不需要设计者编写测试向量,验证时间大大缩短,测试覆盖率可达100%

2 STA的时序路径
      
同步时序逻辑设计中整个电路可看做由组合逻辑和寄存器相间隔而成,由于所有寄存器都使用同一个时钟源,而且FPGA的全局时钟具有接近0的时钟扭曲( clock skew) ,因此, STA非常适合用于同步设计。
       STA
是基于时序路径的,它将DUT分解为4种主要的时序路径,如图2所示。
 
2 4种时序路径示意图
      
每条路径包含一个起点和一个终点,时序路径的起点只能是设计的基本输入端口或内部寄存器的时钟输入端,终点则只能是内部寄存器的数据输入端或设计的基本输出端口。路径1为从基本输入端到内部寄存器的数据输入端;路径2为从内部寄存器的时钟输入端到下一个内部寄存器的数据输入端;路径3为从内部寄存器的时钟输入端到基本输出端;路径4为从基本输入端到基本输出端。
       STA
的目的就是要保证DUT中所有路径满足内部时序单元对建立时间和保持时间的要求。首先,信号可以及时地从任一时序路径的起点传递到终点,同时要求在电路正常工作所需的时间内保持恒定。

3 STA的主要内容
      STA
工具将DUT分解成不同的时序路径集合后,首先分析每条路径的门延时和线延时,再计算每条路径总的延时。因此,它既可分析给定路径的各种延时信息,也可用来分析设计者的时序约束是否满足,最终得到一个完整的STA报告。与STA有关的时序约束主要有时钟周期、时钟扭曲、输入延时和输出延时等。

3. 1
 时钟扭曲
    
为获得足够的驱动能力,时钟信号到达寄存器之前需要经过多级缓冲器驱动。时钟扭曲是指时钟源到达所有目的寄存器的最大和最小延迟的差值,这个值越小越好。通过约束,高速FPGA的全局时钟扭曲可以做到±0. 1 ns

3. 2
 寄存器的建立/保持时序分析
    
寄存器的建立时间是指数据信号在时钟信号到达之前必须保持稳定的最小时间,它约束的是数据路径的最大延时;寄存器的保持时间是指时钟信号到达之后数据信号必须保持稳定的最小时间,它约束的是数据路径的最小延时。
     STA
的结果通常用时间余量Tslack表示,它是指时序约束和实际分析结果的差值,如果为负,则说明时序不满足。寄存器的建立/保持时间分析如图3所示。
 
3 寄存器的建立/保持时间分析
寄存器的建立时间余量Tslack, setup:
 
寄存器的保持时间余量Thold:
 
    
式中: Tperiod为时序约束的时钟周期; TckoTsetup /TholdDFF固有的输出时间和建立/保持时间; Tlogic为组合逻辑的延时; Tnet为线延时; Tclk_skew为两个DFF间的时钟扭曲。
    
(1),由于时间余量不允许为负,对于给定的FPGA, TckoTsetup为固定值, Tclk_skew接近0,因此,时钟的最小周期主要取决于TlogicTnet ,提高时钟工作频率也就是要设法减小TlogicTnet的值。对于寄存器的保持时间,即使在包含快速路径的移位寄存器( Tlogic =
0)
中也是比较容易满足的。
    
对寄存器进行建立/保持时序分析,不只是针对路径2而言。由于FPGA要与片外的时序逻辑相连接,因此对路径1和路径3也必须进行类似分析,通常我们可以对路径1和路径3分别施加输入和输出延时约束来满足寄存器的建立/保持时间要求。
    
值得一提的是,对于设计者预知的多周期路径必须在时序约束中加以声明,否则, STA进行建立/保持时间分析时可能会报错。

3. 3
 门控时钟的建立、保持时序分析
    
时钟网络若包含除反相器外的组合逻辑就会产生门控时钟信号。门控时钟的建立/保持时序分析见图4,图中假定门控时钟为时钟信号和门控信号相
 
4 门控时钟的建立/保持时间分析 
     
门控时钟建立/保持时序分析的基本准则是:门控时钟控制信号的变化不允许引起时钟有效脉冲变化。

3. 4
 异步复位/置位与时钟信号的时序分析
     
异步复位/置位与时钟信号的时序分析如图5所示。图中假定复位信号rst_n为低电平有效,时钟clk为上升沿触发。Trecovery是指时钟有效沿到来之前,异步复位/置位已经无效的最小时间; Tremoval是指时钟有效沿到来之后,异步复位/置位保持有效的最小时间。
 
5 异步复位/置位与时钟信号的时序分析 
      
若异步复位信号的上升沿落在TrecoveryTremoval的窗口之内,就会导致Trecove ry时序或Tremoval时序不满足,造成寄存器的输出不可预知。

4 时序不收敛的几种改进方法
      
在高速FPGA设计中,通过STA,往往会发现时序不满足要求的情况,可以采取修改代码、重设综合属性或添加约束等方法加以改进。由于后两种方法不会改变设计的逻辑功能,因此较为常用。

4. 1
 通过设置综合属性提高工作频率
     
FPGA综合时,通过设置合适的综合属性,发挥综合工具的某些优化特性,减小时序路径上组合逻辑的门延时和线延时,可以有效地促进时序收敛。
     
Xilinx公司的FPGA 开发环境ISE,常用的方法有:采用寄存器平衡技术和插入流水线( pipelin2ing) 。寄存器平衡技术在不改变逻辑功能的前提下,通过调整使寄存器在组合逻辑间分布更均匀,如图6所示。使决定时钟工作频率的那些大延时路径的延时减小,从而提高设计速度,而寄存器级数并没有改变。插入流水线则向组合逻辑中插入寄存器,由于FPGA内部包含了大量的寄存器资源,为改善时序提供了可能。插入的寄存器级数可以由设计工具自动完成,也可以由设计者找到需要插入流水线的时序路径后添加代码实现。与寄存器平衡技术相比较,这种方法更为灵活,但是增加了寄存器级数。
 
6 寄存器平衡原理示意图 
    
其次,通过寄存器复制( duplication) 、减小关键路径的扇出数、取消资源共享等办法,可减少时序路径上驱动缓冲的数目,减小路径延时,提高设计频率。此外,还可利用I/O块中的寄存器对FPGA的输入、输出信号进行锁存,提高板级的设计速度。

4. 2
 通过修改布局布线促进时序收敛
    
修改布局布线虽然不能减小门延时,但由于目前的高速FPGA设计属于深亚微米范围,互连延时已非常可观,不加约束时甚至占总路径延时的60%以上。
    
作为可编程ASIC (专用集成电路)器件, FPGA设计的布局布线不如ASIC设计那样灵活,但是目前的FPGA开发工具,也能让设计者通过添加约束等方式介入到布局布线过程中。而且,时序分析器通常支持和布局规划器进行时序的交互探测( cross p robing) ,使得查找和改进关键路径的时序极为方便。因此,通过合理的布局布线,减小互连线上的延时,也是提高时钟工作频率的常用方法之一。

5 设计实例
     
我们在使用FPGA进行高速FFT处理器设计时,使用了ISE (集成软件环境)的时序分析仪(TimingAnalyzer) 。以基4的蝶形运算单元模块为例,由于FFT的乘加运算无法在一个时钟周期内完成,必须插入流水线, STA报告中的时间余量为负就说明了这一点。通过STA报告,还可以分析出运算的中间结果何时需要寄存。图7是与时序约束相比较生成的时序分析报告的部分内容。
 
     
7所示内容是对一个包含乘法器的时序路径进行寄存器建立时间分析,报告给出了这条时序路径完整的延时信息,通过与时序约束比较,时间余量为正值,表明这条时序路径满足寄存器的建立时间要求。
 在完成设计之前,我们对整个设计做了一次反标了SDF文件的动态门级时序仿真,结果也证明了STA的正确性。

6 结束语
     STA
通过分析给定路径的各种延时信息,以及分析设计者的时序约束是否满足,不仅可以快速地完成对设计的时序验证,而且根据时序分析结果还可以指导和改进设计。随着FPGA 设计规模的不断增大,STA在时序验证中将发挥更大的作用。

参考文献
[ 1 ]
牛风举, 刘元成, 朱明程. 基于IP复用的数字IC设计技术. 北京:电子工业出版社, 2003
[ 2 ]
吕宗伟, 林争辉, 张 镭. 数字集成电路的时序分析. 微电子学, 2001, 31 (2) : 126129
[ 3 ] Prime Time
全芯片静态时序分析辅助工具技术概述. http: / /www. synop sys. com. tw

 

系统分类: CPLD/FPGA   |    用户分类:    |    来源: 整理

评论(0) | 阅读(113)
发表于:2008-7-15 17:14:03
标签:无标签

1

反向工程流程介绍

反向工程流程介绍

 

从前学电脑,通常有人会把电脑的发展与飞机的发展放在一起比较是为了说明电脑发展是多么的高速。现在看来应该说是半导体的飞速发展才对。对于飞速发展好像中国也不能占上光,现在回头看看一些知名企业那时的产品,你会惊奇的发现原来中国落后于别人比想像中的要多一些。(原本有一大堆废话要讲,暂时省略。不过要提醒的是做反向设计不要落入别人的陷阱里去,免得别人来抢你的辛苦钱。)反正要进步,学习别人的经验,搞搞研究没有什么不好的。

 

言归正传,在做反向方面,前段时间电子工程专辑上有一篇“圣景为反向正名”的文章,介绍了上海圣景公司的一些情况和他们开发的软件(picasso,chip smith, polaris)。据我所知,上海提供这一服务的公司有宜硕和复旦微电子,其他也许还有,北京芯愿景网站有此类的介绍,除此之外,其他有半导体的行业的城市都有提供类似服务的企业,这里就不一一列举了。

 

反向工程最主要的工作就是将一颗完整的芯片转换成所熟悉的版图和电路图。这里的难点在于图像的矢量化,在方面消耗了大量的人力。

 

 大体的流程应该是:芯片样品à解剖去层à数字拍照à拼接对准à完整图像à(码点提取、版图提取、网表提取)

 

其中芯片剖片拍照过程如下:

1芯片开盖  开盖以化学法或特殊封装类型开盖,处理金线取出晶粒。

2层次去除 以蚀刻方式去除层,包括去除保护层polyimide、氧化层、钝化层、金属层等。

3芯片染色 通过染色以便于识别,主要有金属层加亮,不同类型阱区染色,ROM码点染色。

4芯片拍照  通过电子显微镜(SEM)对芯片进行拍摄。

5图像拼接  将拍摄的区域图像进行拼接(软件拼接,照片冲洗后手工拼接)

6版图提取  对完整的图像进行软件或人工版图提取。

7电路提取  进行软件或人工提取。

 

以上关键之处是显微镜拍摄,如果是通过别的公司的拍摄,通常得到的是冲洗后的照片图像,因为种种原因造成图像不完整,包括得图像放大倍数影响,图像色彩模糊,图像噪点,图像拼接偏差等。

 

第二个关键点,如果得到相关电子图像,就可利用专业软件对图像进行矢量化处理。如果没有专业软件,可以使用测绘矢量化软件(比如asscanvect2000,r2v),同样可以得到相同的结果。(这里的关键点,也是对图像的处理,和图像的矢量化。)

 

如果矢量化成功,就可以得到相应的矢量图像,至少可以得到相对坐标点。对矢量图像纠正处理,或坐标点成像处理,应该不是很困难。

 

完整的图像可以得到完整的版图。通过常用的版图编辑工具(cadence virtuoso)即可对版图提取网表,然后转换成电路图。

 

 

通常的情况下,我们得不到高清晰的图像或照片,而且图像都是分层拍摄,所以进行人工提取就变成一件十分困难的事情了。本人对此进行了实例操作,主要以poly/oxide层作为基础图像。

 

准备工具幻灯透明纸,不同色彩的油性笔(粗细两头,最好是深色笔),直尺,酒精棉等。

 

划分一个区域,将oxide 层描绘在透明纸上(poly gate暂时不描),复印机明暗模式复印到白纸上用圆珠笔画出poly gate,将metal1层描绘在透明纸上放到poly/oxide 图像上;对应重合图像在画好gate的纸上画出接线;以电路软件画出相应晶体管级电路;转换为门级电路。(对逻辑电路,通常从标准cell开始,将cell提取出来后画到透明纸,去对应照片,标出该cell用到的所有位置,以此类推。)如果觉得此类方法不好,可以将照片扫描或其他方式输入电脑用矢量软件进行描线处理。不过无论采用什么样的方式都需要耐心处理,细致划分和详细标记。

 

系统分类: 模拟技术   |    用户分类:    |    来源: 整理

评论(1) | 阅读(186)
发表于:2008-6-17 16:04:00
标签:无标签

1

静态时序分析

http://techcenter.dicder.com/2006/0114/content_102_1.html

静态时序分析(Static Timing Analysis)一

前言

在制程进入深次微米世代之后,晶片(IC)设计的高复杂度及系统单晶片(SOC)设计方式兴起。此一趋势使得如何确保IC品质成为今日所有设计从业 人员不得不面临之重大课题。静态时序分析(Static Timing Analysis简称STA)经由完整的分析方式判断IC是否能够在使用者的时序环境下正常工作,对确保IC品质之课题,提供一个不错的解决方案。然而,对于许多IC设计者而言,STA是个既熟悉却又陌生的名词。本文将力求以简单叙述及图例说明的方式,对STA的基础概念及其在IC设计流程中的应用做详尽 的介绍。

什么是STA

STA的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。以分析的方式区分,可分为Path-BasedBlock-Based两种。  

<!--[if !vml]--><!--[endif]-->

先来看看Path-Based这种分析方式。如图一所示,讯号从A点及B点输入,经由4个逻辑闸组成的电路到达输出Y 点。套用的Timing Model标示在各逻辑闸上,对于所有输入端到输出端都可以找到相对应的延迟时间。而使用者给定的Timing Constraint为:

1.讯号A到达电路输入端的时间点为2AT=2ATArrival Time)。

2.          讯号B到达电路输入端的时间点为5AT=5)。

3.          讯号必须在时间点10之前到达输出端YRT=10RTRequired Time)。

现在我们针对P1P2两条路径(Path)来做分析。P1的起始点为A,讯号到达时间点为2。经过第1个逻辑闸之后, 由于此闸有2单位的延迟时间,所以讯号到达此闸输出的时间点为42+2)。依此类推,讯号经由P1到达输出Y的时间点为72+2+3)。在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。

按照同样的方式可以得到讯号经由路径B到达输出Y的时间点为115+1+3+2),照样和上述第三项Timing Constraint比对,我们可以得知对P2这个路径而言,Timing是不满足使用者要求的。

对图一的设计而言,总共有6个讯号路径。对于采用Path-Based分析方式的STA软体来说,它会对这6个讯号路径 作逐一的分析,然后记录下结果。IC设计者藉由检视其分析报告的方式来判断所设计的电路是否符合给定的Timing Constraint。由于最常用来做静态时序分析验证核可(STA Signoff)的EDA软体PrimeTime?采用Path-Based的分析方式,所以本文将以Path-Based的分析方式介绍为主。

再来看看Block-Based的分析方式。此时时序资讯(Timing Information)的储存不再是以路径为单位,而是以电路节点(Node)为单位。由Timing Constraint我们仅能得知A节点的AT2B节点的AT5以及Y节点的RT10Block-Based的分析方式会找出每个节点的AT RT,然后比对这两个数值。当RT的值大于AT时表示讯号比Timing Constrain中要求的时间还早到达,如此则Timing是满足的,反之则不满足。

<!--[if !vml]--><!--[endif]-->

STA资料准备

在做STA之前,我们必须对其准备工作有充分的了解。STA所需的资料如图三所示,以下我们分项说明。其中Design Data部分,由于Block ModelSTA软体相关性太高,我们不在此加以说明,请直接参阅您STA软体的使用手册。

<!--[if !vml]--><!--[endif]-->

图 三

nLibrary Data

STA所需要的Timing Model就存放在标准元件库(Cell Library)中。这些必要的时序资讯是以Timing Arc的方式呈现在标准元件库中。Timing Arc定义逻辑闸任两个端点之间的时序关系,其种类有Combinational Timing ArcSetup Timing ArcHold Timing ArcEdge Timing ArcPreset and Clear Timing ArcRecovery Timing ArcRemoval Timing ArcThree State Enable & Disable Timing ArcWidth Timing Arc。其中第14