基于层次法实现EOS芯片的后端设计
扫描二维码
随时随地手机看文章
1 引言
集成电路(Integrated Circuit, IC)是指在一半导体基板上,利用氧化、蚀刻、扩散等方法,将众多电子电路组成各式二极管、晶体管等电子组件,做在一个微小面积上,以完成某一特定逻辑功能,达成预先设定好的电路功能要求的电路系统。
IC设计是将系统、逻辑与性能的设计要求转化为具体的物理版图的过程,也是一个把产品从抽象的过程一步步具体化、直至最终物理实现的过程。
IC设计主要包括两个方面:(A)前端设计 (B)后端设计。前段设计是指设计人员根据系统所要求的功能与时序产生相应的逻辑网表,后端设计是指根据网表产生相应的版图。
后端设计是整个集成电路(IC)设计过程中与产品研制和生产直接相关的设计过程,是集成电路设计的重要组成部分,后端设计的目的是将与工艺无关的通过硬件描述语言(HDL)表示的设计实现成与特定工艺相关的版图。后端设计直接关系到芯片的设计周期、生产成本和产品质量。后端设计以往通常是人工设计中耗时最多,差错率最高的设计过程,也是集成电路设计发展较快,自动化水平较高的领域。在超深亚微米工艺条件下,由于设计复杂度上升和新工艺带来的物理特性变化,后端设计在很多方面需要进行改进以适应新的设计环境。
2 传统的展平的后端设计方法
后端设计的主要流程包括布图规划(floor plan)、电源规划(power plan)、布局(placement)、时钟树综合(clock tree)、布线(routing)、验证仿真到流片[1]。
传统的展平法流程中,首先需要将前端生成的逻辑网表展平,并将设计中的标准单元作为叶节点,不同功能的模块所包含的标准单元都在同一个层次上。在平面设计流程中,各个IP模块是打散(smash)排列的,不需考虑各个模块的功能与位置关系,并利用工具进行自动的布局布线[2]。展平法是将设计一次性的进行综合、布局布线。展平法的优点是流程简单,同时时序性能好,这是因为它能对整个设计进行比较全面的优化。展平法的缺点是设计大小受限于综合和布局布线工具的能力,如果设计规模太大,综合和布局布线可能得不到结果或者结果很差,主要体现在布线布不通或者时序非常难收敛,而且迭代的时间非常长。
3 层次式后端设计方法
层次法是将设计分成若干个模块,对这些模块分别进行物理实现,然后把这些模块组合成一个完整的设计[3]。图 1显示了层次法设计法的流程。首先,根据逻辑关系将设计分成各个模块,然后将各个模块进行综合,得到各个模块的门级网表(netlist),再将各个模块的门级网表组合成整个芯片的门级网表,将整个芯片的门级网表根据物理关系分成若干个模块,同时通过时序分块(timing budget)得到每个模块的时序要求,根据每个物理模块的门级网表和时序要求,实现每个模块,最后将这些实现的模块集成为一个完整的设计。
图1 层次法后端设计流程
层次法设计包含以下基本步骤:
(1) 数据准备(Data Preparation)
准备好后端设计所需要的数据:网表(netlist),时序约束文件(sdc),单元库(cell library),时序库(tlf)等等。
(2) I/O PAD放置
根据芯片外管脚的定义和模块数据流向手工放置I/O PAD的位置,也可以通过编写TDF(top design format)文件,把PAD 位置进行限制,用自动布局布线工具读入这个文件即可。
(3) 布局规划(Floorplan)
根据设计的数据流向和功能模块的考虑,以及经验值,给出“core utilization”等参数的值的设置,如果之后的布线出现拥塞,可以适当调整这些参数的设置。
(4) 宏单元放置(Marco cell placement)
对模拟模块或者RAM,ROM等宏单元提前放置,一般根据数据流和功能要求放置,如果没有要求可以放置在靠近外围,这样不会影响到标准单元的布线。
(5) 电源(Power)
在PAD连上电源环给I/O供电,芯片内部还要在水平和垂直方向给出多组电源组,这些电源组都会连上沟道(row)的电源,以达到IR DROP的要求。
(6) 标准单元放置(Standard cell placement)
标准单元被放置在预先设置好的沟道(row)里面,这种放置可以时时序驱动的(timing driven),也可以是功耗驱动的(power driven)。
(7) 时钟树生成(Clock tree synthesis)
由于时钟端的驱动能力有限,而且时序的好坏也是一个芯片的成败的关键,在所有的时钟驱动端加入一些缓冲器(Buffer)。
(8) 布线(Routing)
芯片的布线有总体(Global routing)布线和详细布线(Detail routing)两步,如果布线有很大的拥塞(congestion),需要重新布局。
(9) 寄生参数提取(RC extraction)
利用寄生参数提取软件提取线网的寄生电阻和电容,并转换为延时值存到SDF(stand delay format)文件中。
(10) 静态时序分析STA(static timing analysis)
静态时序分析是运用软件计算芯片的时序是否符合设计所要求的时序,如果违反可以进行工程变更(ECO)来修正。
(11) 工程变更ECO(engineering change order)
工程变更是对版图的局部修改,并完成从布局到STA的步骤的统称,一般是加入一些单元,或者替换一些单元来达到对时序的修改。
(12) 设计规则检查DRC(design rule check)和版图与电路图比较LVS(layout versus schematic) [4] 。
层次法设计具有许多优点,主要是它可以对模块施加灵活而严格的约束,可以允许多个物理设计人员并行工作,提高物理设计的并行性,能够减少一些重复的迭代工作,由于增加了许多对功能模块的操作,还可以节约系统资源。层次法设计也有其局限性,主要是设计过程复杂,对含有多个IP模块的设计需要对每个模块进行优化工作,层次法设计对于规模不大的设计优化功能并不明显。
4 芯片实现
随着波分复用技术和高速以太网技术的发展,骨干网的带宽呈几何级数增长,已达到了吉比特甚至更高的水平。而连接骨干网和用户网的接入网的速率却没有太大的提高,已成为网络发展的瓶颈。要想实现高速、可靠的接入,使终端用户充分利用骨干网的巨大容量,必须采用新的高速接入技术。SDH技术已非常成熟,其安全性好,可靠性高;用SDH传输网络承载以太网IP包以实现网络用户的远程接入或异地局域网互连,我们称之为EOS(Ethernet over SDH), 是一种非常方便的实现方案。
EOS芯片用于实现EOS方案的主要ASIC芯片,它的规模是6百万门(不含RAM),它采用0.18um的CMOS工艺。它的规模已经接近展平法的极限,经过对比试验,展平法实现一次布局布线到寄生参数的提取需要40-50个小时完成。而采用层次法,迭代时间将会减小到20个小时以下。
EOS芯片的设计平台采用的是cadence公司集成后端设计工具Encounter,其中中心部分为设计输入,encounter菜单按照流程设计,使用很方便。该工具集成了几乎完整的芯片后端设计流程工具,其中包括优化综合工具(RTL Compiler)、布局工具(Amoeba Placement)、布线工具(trial route,Nano route)、时序验证工具(vstorm PE)、串扰分析工具(CelticIC)、寄生参数抽取3D工具(Fire&Ice),同时对于如纳米布线器、串扰分析工具、电源分析工具也可以单独使用,可以适合不同用户层面的需求,所以使用非常方便[5]。
层次法设计的时候模块划分要考虑芯片之间的连接关系,还要考虑模块门数的大小,太大和太小的模块都不适合划分为模块来单独布局布线。以下是一些划分模块的基本要点:
(1)模块不宜太大或者太小,一般以30万门到80万门之间最合适,最大不要超过200万门。
(2)模块被重复的次数多,有利于实现模块化的优势。
(3)模块对外的pin脚不宜过多,如果过多,顶层的布线和规划会十分困难。
图3 顶层布局布线图
根据以上几个要点,我们可以把芯片分成以下几个模块:STM,LCAS,VC4,Channel,GB。这里要提到的一点是,对于层次法设计,在顶层布线的时候,底层模块是作为一个黑盒子来使用的,但是它还是包含时序的信息。如图3就是顶层最后的布线图。
在顶层和底层模块完成布线之后就要进行模块的组装,把布好线的模块调用到顶层视图里面来,把模块里面的布线全部显示出来,图4就是模块组装后最终的布线版图。
图4 最终全芯片版图
5 结论
采取层次法的后端设计方法可以有效的提高设计效率,尤其是对应超大规模的设计,它的优点是显而易见的。随着集成电路的规模不断的增加,设计复杂度也不断的提升,层次法的后端设计方法会越来越多的广泛应用并且得到不断改进和优化。
参考文献:
[1](加)马丁(Martin k.)著.数字集成电路设计.北京:电子工业出版社,2002.9
[2]EncounterTM User Guide. Version 4.1.Cadence Reference Book, 2004.
[3]First Encounter Ultra Lab Manual. Version 4.1.Cadence Reference Book, 2004.
[4] (美)John P.Uyemura著. 周润德 译. 超大规模集成电路与系统导论. 北京:电子工业出版社,2004.1
[5] EncounterTM Menu Reference. Version 4.l.Cadence Reference Book.2004
[6]夏宏美,李成诗,韩芳,赖宗声. 深亚微米超大规模集成电路的静态时序分析[J]. 微计算机信息. 2006.8