高性能的标准单元库设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高性能的标准单元库,不但要有高的速度,而且要 有准确的时序信息和高的可靠性。因此库的验证是很 必须的。
2.1库的仿真验证主要分为逻辑功能验证和时序信 息验证 2.1.1 功能验证:(下面文档中所要验证的库为 mylib.1ib)
功能验证是为了保证库中所有单元的逻辑功能正 确。考虑到库中各种单元在逻辑上都可以由反相器 INV和二输入或非门NOR2搭建实现【3】。验证方法如 下:首先做一套只含有上述两个单元的库(90lden. 1ib),这两个单元经过了反复地验证确保逻辑功能正
DFF是很重要的工作,ck—Q的时间是关键路径延迟。 它的性能好坏直接影响到电路的工作频率; 4)为了缩小设计的面积和功耗,一些复杂的逻辑
单元也是必须的; 5)一些单元要有双向输出端口,一些单元要有异
步(同步)置位(复位)输入端,一些单元为了功耗和面 积的需要采用最小尺寸。 1.3高性能库所需的单元
是否正确。为了便于测试写一个顶层模块,把te吼一cir- cuit和mappeQ—circuit的每一对输出PIN用异或门进 行连接。用仿真器verilog—xL进行验证,如果输出端 有高电平“1”则说明逻辑功能不正确,需要查找问题 并且修正。 2.1.2时序验证
非线性模型是目前工业界最广泛使用的延迟计算 模型。它采用差值估算的方法,例如茗轴作为输入信 号的的n8ition的取值坐标,),轴作为输出负载电容的 取值点坐标,彳轴用于显示输出延迟和输出咖nsition。
·8ቤተ መጻሕፍቲ ባይዱ·
航空计算技术
第37卷 第3期
综合器就是依靠估算四个坐标点范围内的时问(内差 值)来进行静态时序分析的。对于估算差值落在坐标 平面范围外面的点(外差值),估算值误差会比较 大[4’5],因此在综合器综合时常常当作违反DRC规则 来处理,这种取值是要避免的。
对于坐标点上的时间(库中提供的数据)要求和 sPIcE仿真的结果相同;对于内差值点,需要使用静态 分析工具来估算。一般地,要求估算结果与仿真结果 之差在1%的范围之内【6 J。而对于考虑到连线RC延 迟的情况与仿真结果的误差范围应该在5%以内。
1.2好的综合对库的要求¨1 综合器通过路径负载的大小和时序要求来决定使
用什么单元,因此下面这些规则是好的综合对于库中 单元的要求:
1)每一种单元都要有多种驱动能力。因为所需驱 动能力的负载往往是不同的;
2)inverter和b诚r单元要有极大的驱动能力。
因为这些单元常常被用于驱动其它单元和长连线; 3)nip—n叩是最常用的单元之一,因此设计好
确无误;之后利用synopsy8的lib唧compiler工具进行
编辑,将库文件转化为DC可用的golden.db格式。 给出命令实例如下: Lc—sheU>I.eadjib golden.1ib
万方数据
06
CLK
07
图1测试电路
这样就得到一个新的电路网表,通过比较这两个 网表的结果是否一致就可以确定库中单元的逻辑功能
卢俊等:高性能的标准单元库设计
·87·
市场竞争力(time to market),还能够利用有限的资源 来多次验证库的各种特性,从而能够保证做出时序准 确,性能可靠的库。
根据笔者统计,最常用的单元数量只用约20个, 而这些单元却决定了库的整体性能,它们的重要性是 不言而喻的。事实证明如果尺寸和种类设计合理,即 便只使用这些单元进行综合,对设计的性能影响不会 超过2%,经过精心设计的这些单元在时序准确性和 稳定性方便是很有优势的。除此以外,设计者可以根 据库的用途加入其它的单元[2 J。
本文不讨论采用合理的管子尺寸来优化延迟的方 法,而是从宏观的角度,通过讨论单元的种类和库的验 证方法来保证良好的性能。
1 确定高性能库的单元种类 1.1必要的单元
一套标准单元库若能够被综合器用于综合,一些 单元是必须要有的。从布尔代数的多变量定理,广义
德.摩根定理(反演规则)以及对偶规则,我们可以知 道,只要有“非逻辑”,“或(与)逻辑”我们就可以得到 任何的逻辑。另外,综合过程分为两个步骤,逻辑优化 (工艺无关),映射到工艺报告timing slack。其中逻辑 优化用到了布尔代数算法进行逻辑化简和构造。因 此,只要有INV,NOR(NAND)单元综合器就能完成门 级网表的转化。
第37卷第3期 2007年5月
航空计算技术 Aer011蛐tical Computing TechniqIle
V01.37 No.3 Mav.2007
高性能的标准单元库设计
卢 俊,贾 嵩,王 源,张钢刚
(北京大学微电子学研究院MPw中心,北京100871)
摘要:从仿真和流片两个方面对标准单元库的验证方法进行了研究。在仿真方面,提出了采用静
图5测试电路的整体架构
2007年5月
卢俊等:高性能的标准单元库设计
2.3流片结果测试 采用安捷伦93000流片测试波形如图6所示。
图6芯片测试结果
事实证明,在有环振和外界信号干扰的情况下,测 试的时间延迟与仿真结果相比误差依然在5%之内, 达到预期效果,可见上述电路结构合理,能够准确验证 库的时序特性。 2.4验证库的常见错误
万方数据
2.2.1测试电路的设计 在流片中由于PAD和测试链的外部单元会引入
额外的时间延迟,会使将来的测试结果变得不准确。 为了克服这个问题和单个单元测量误差大的问题,提 出一类同种单元串联结构的电路形式如图2。
仿真结果如图3。 Delayl是200个单元串联后的上升沿迟,Delay2 是下降延迟。
压习丙万再孓=每习j> 200个单元 图2单元测试链
图3仿真结果
由于脉冲宽度仅仅是被测单元链的延迟,不受 PAD和异或门的影响,从而使得真正的单元延迟被准 确地测出来。
对于多输入的单元,只要将其中一端串联其余端 口接高电平或地低电平(只要不对输出端产生影响即 可),同样的方法测完所有的输入端口。
对于测量‰out的影响,如图4需要给每一个单
建库是一件非常复杂的工程,如果能减少库中单 元的数量而不影响速度延迟,不但能够极大减少建库 者的工作量,能使新的工艺技术很快被使用从而增加
收稿日期:2007D1现
修订日期:2007郴-15
作者简介:卢俊(1981一)。男,陕西丹凤人,硕士研究生,研究方向为AsIc设计及标准单元建库。
万方数据
2007年5月
Dc—shell>read—f vhdl test—circuit (读人i贝旷试
电路)
Dc—sheⅡ>translate (进行映射)
谢te Dc—sheU >
—f vhdl test—cireuit —o mapped—
circuit(写出映射后的网表)
11
01
12 02
03
04
14 13
05
2库的验证
综合一个R孔级的16位全加器,采用高性能库 (大约30个单元)和普通单元库(约有300个单元)。 前种库单元数量少,但是对于影响性能的几类单元进 行了精心的设计,从电路和版图方面优化,采用了合理 的PN管的尺寸,减少了每个单元的传输时间;同时还 加入了更多种的驱动能力单元。分别使用这两种库综 合。
可见,采用高性能库综合出的最长路径都是由一 些简单的单元搭建而成,虽然级数较多,但是相比较图 l延迟依然很小。此外,采用高性能单元库综合所用 的时间被大大缩短了,与此同时综合出的面积只增加 了约10%。
Dc>read—f vhdl test—cicuit
Dc>seI-load cout (输出负载电容) Dc>set—drive bu能r (输入驱动bu艉r) Dc>rep叭-timing>timing.109 (输出结果文 件) 然后按照这些输入输出条件在上图的电路做 HSPICE仿真。 最后,查看文件tiIIling.109与仿真结果,比较计算 误差是否在1%以内o 7|。如果误差大于这个范围就认 为坐标点取的不合理,需要重新选取时间点或者在误 差大的点之间增加时间点。 上述的方法确保了仿真器和静态时序分析工具的 结果相同,从而使得设计者能够综合出时序准确的门 级电路。 2.2流片验证 为了验证实际的硅片上单元延迟和仿真结果的差 异进而能够进一步修正库的时序偏差,流片验证是十 分必须和重要的步骤。
总结一下,高性能库所要包含的单元种类有:flip —nop8,inverters(1x,2x,4x,8x,16x,24x),primitive gates(nor,nand),compound gates,multiplexers。有了这 些单元就有了高性能单元库的保证,但是这些单元需 要被反复验证,优化到最好。
元后面接一个相应大小的负载电容。
图4含负载测试链
2.2.2解码电路的设计 库中单元的数量很大,而且多输入单元的测试电
路还不止一个,考虑将来封装的问题,太多的管脚很难 封装同时成本也非常高;如果采取一个输入PIN与多 个单元直接相连的形式又会使输入PAD有很大的 矗mout,导致电路引入很大的transition时间。综上所 述,提出输入pIN与解码器相连接后再连接单元的电 路结构如图5。
具体操作步骤如下: 1)验证坐标点的延迟 搭建一个仿真电路,选择所要验证的单元,在其输 入端放置一个bu骶r,输出端连接一个负载电容。设置 输入端的信号与要测量的点在时序文件(syn叩sys.1ib 文件)中的值一致。做HsPICE仿真,测量输出端的 tr肌sition时间,确定是否与时序文件中的点误差满足 要求。 逐一验证时序库文件中各个取值点的值是否满足 误差要求,如果不满足则记录,等到该单元所有取值点 验证结束,返回去重新设置合理的取值点并进行参数 提取。重复上述过程,直到所有的点满足要求为止。 2)验证内差值点的延迟 首先利用synospsys的静态时序分析工具计算电 路延迟: Dc>IIeadjib mylib.1ib Dc>linkjibrary=mylib.db
接一个PIN。用HDL语言写一个测试模块用于测试
mylib库中每个单元的逻辑功能。最后将设计test—cir_
cuit映射成由golden库中两单元表示的网表形式。
命令实例如下:Dc—shell>1inK—library=
{mylib.db,golden.db}
Dc—sheU>t舢善et一1ibrary=golden.db (读人 golden库)
对于经过了仿真验证的HDL网表,综合出的电路 是否满足要求取决于综合器的优化和设计者的代码质 量,而电路逻辑和时序是否能准确反映真实电路就完 全取决于标准单元库了。流行的EDA综合工具De一 8igIl compiler和Ambit都采用了静态时序分析(sTA) 的方法来计算电路时间延迟。提取出来标准单元的特 性参数,把经过验证的时序信息提供给综合器用于综 合。然而对于同一个设计,相同的约束条件,高性能的 标准单元库不但能够综合出速度更快的门级网表,综 合所需的时间更短;还必须是高可靠性的,能提供准确 的时序信息,使得布局布线之后含有连线延迟的仿真 结果与STA分析结果相差不大。
Lc—sheU>write.1ib golden(产生了golden.db文 件)
准备一个用于验证库mylib.1ib的门级测试电路
网表te虬一circuit。该电路中的单元自mylib库,电路连 接关系如图1。
把每个单元都通过输入、输出PIN连接,除了时钟
信号CK以外其它输入端可以共用,每个输出单独连
关键词:标准单元库;综合;静态时序分析;库验证;非线性时序模型;流片
中图分类号:7rN6
文献标识码:A
文章编号:1671654x(2007)03珈86舭
引言 在半定制的IC设计中,ASIc标准单元库给设计
者提供了一个联系实际芯片和设计的电路实现之间的 纽带。因此高性能的标准单元库对设计出高速稳定的 电路性能起了决定性作用。逻辑功能的正确性和时序 信息的准确程度是首先需要满足的。
态时序分析工具和sPIcE仿真工具对单元的估算值和仿真结果进行比较分析的方法来验证,同时
还给出了具体的操作步骤实例。在沆片验证中,提出了一种非常有效的电路结构。这种电路结构
不但能够准确验证时序,还能极大地减少PAD数量;最重要的特点是:该电路能够完全避免PAD和
非被测单元的引入带来的额外延迟,从而得到准确的被测单元延迟。
库的数量是很大的,而产生的错误的数量也是相 当可观的,但是大量的错误却集中在下面的5类。把 握这些错误能够为快捷的验证库提供很大帮助。
相关文档
最新文档