1、设计再利用
数百万门规模的系统级芯片设计,不能一切从头开始,要将设计建立在较高的层次上。需要更多地采用IP复用技术,只有这样,才能较快地完成设计,保证设计成功,得到价格低的SOC,满足市场需求。
设计再利用是建立在芯核(CORE)基础上的,它是将已经验证的各种超级宏单元模块电路制成芯核,以便以后的设计利用。芯核通常分为三种,一种称为硬核,具有和特定工艺相连系的物理版图,己被投片测试验证。可被新设计作为特定的功能模块直接调用。第二种是软核,是用硬件描述语言或C语言写成,用于功能仿真。第三种是固核(firmcore),是在软核的基础上开发的,是一种可综合的并带有布局规划的软核。目前设计复用方法在很大程度上要依靠固核,将RTL级描述结合具体标准单元库进行逻辑综合优化,形成门级网表,再通过布局布线工具最终形成设计所需的硬核。这种软的RTL综合方法提供一些设计灵活性,可以结合具体应用,适当修改描述,并重新验证,满足具体应用要求。另外随着工艺技术的发展,也可利用新库重新综合优化。布局布线、重新验证获得新工艺条件下的硬核。用这种方法实现设计再利用和传统的模块设计方法相比其效率可以提高2一3倍,因此,0.35微米工艺以前的设计再利用多用这种RTL软核综合方法实现。
随着工艺技术的发展,深亚微米(DSM)使系统级芯片更大更复杂。这种综合方法将遇到新的问题,因为随着工艺向0.18微米或更小尺寸发展,需要xx处理的不是门延迟而是互连线延迟。再加之数百兆的时钟频率,信号间时序关系十分严格,因此很难用软的RTL综合方法达到设计再利用的目的。
建立在芯核基础上的系统级芯片设计,使设计方法从电路设计转向系统设计,设计重心将从今大的逻辑综合、门级布局布线、后模拟转向系统级模拟,软硬件联合仿真,以及若干个芯核组合在一起的物理设计。迫使设计业向两极分化,一是转向系统,利用IP设计高性能高复杂的专用系统。另一方面是设计DSM下的芯核,步入物理层设计,使DSM芯核的性能更好并可遇测。
2、低功耗设计
系统级芯片因为百万门以上的集成度和数百兆时钟频率下工作,将有数十瓦乃至上百瓦的功耗。巨大的功耗给使用封装以及可靠性方面都带来问题,回此降低功耗的设计是系统级芯片设计的必然要求。设计中应从多方面着手降低芯片功耗。
(1)在系统设计方面,降低工作电压是一方面,但太低工作电压将影响系统性能。比较成熟的方法是采用空闲(1d1e)模式和低功耗模式,在没有什么任务的情况下使系统处于等待状态或处于低电压低时钟频率的低功耗模式。采用可编程电源是挟取高性能低功耗的有效方法。
(2)在电路组态结构方面尽可能少采用传统的互补式电路结构, 因为互补电路结构每个门输入端具有一对P、 NM0S管,形成较大的容性负载,CMOS电路工作时对负载电容开关充放电功耗占整个功耗的百分之七十以上,因此深亚微米的电路结构组态多选择低负载电容的电路结构组态,如开关逻辑,Domino逻辑以及NP逻辑,使速度和功耗得到较好的优化。
(3)低功耗的逻辑设计,一个数百兆频率的工作的系统不可能处处都是几百兆频率工作,对于电路中那些速度不高或驱动能力不大的部位可采用低功耗的门,以降低系统功耗。因此在逻辑综合时就将低功耗优化设计加进去,在满足电路工作速度的前题下,尽可能用低功耗的单元电路。
(4)采用低功耗电路设计技术, MOS输出电路几乎都采用一对互补的P、 NMOS管,在开关过程中,在瞬间存在两个器件同时通导,造成很大功耗,对系统级芯片引出腿多,电路频率高,这一现象更存严重,回此在电路设计时应尽可能避免这一问题出现以降低功耗。
3、可测性设计技术
系统级芯片是将芯核和用户自己定义的逻辑(UDL一起集成,芯核深埋在芯片中,芯核不能事先测试。只能在系统级芯片被制造出来后作为系统级芯片的一部份和芯片同时测试。因此对系统级芯片测试存在许多困难,首先是芯核是别人的,选用芯核的设计者不一定对芯核十分了解,不具备对芯核的测试知识和能力。再加之芯核深埋在芯片之中,不能用测试单个独立芯核的方法去处理集成后的芯核测试。只能通过某种电路模块的接入将芯核和外围测试资源接通,常用的方法有以下几种:
(1)并行直接接入技术,它是将芯核的I/O端直接接至芯片的引出端,或者通过多路选择器实现芯核I/O端和芯片引出端公用。对芯片内箝入芯核比较少的芯片或有丰富引出端可利用的芯片往往用这种方法。并行直接接入的优点是可直接不利用独立芯核的测试方法测试片上箝入的芯核。
(2)串行扫描链接入法,本方法是在芯核四周设置扫描链,使芯核的所有I/O都能间接的不时)围接通。通过扫描链,可以将测试图形传至测试点,也可以将测试响应结果传出。边界扫描技术就是一种特定的接入方法。串行扫描方法的优点是节约引出端口。
(3)接入功能测试机构,这种方法是在芯核周围接入逻辑模块以产生或传播测试图形。片上自测试是其中一种,在片上接入测试资源,实现对特定芯核的测试。自测试降低了外围接入模块的复杂性,只需简单的测试接口,绝大多数存贮器测试可用此方法,将自测试逻辑和存贮器芯核设计在一起。
一个完整的系统级芯片测试应包括芯核内部测试,以保证每个芯核正确无误。还应通过周围逻辑电路进行跨芯核的测试,以及对用户自定义逻辑电路的测试。芯片设计时可测性设计的任务是将测试装置和被测系统级电路通过DFT的测试线路连成一个统一的机构。 可将各个芯核的接入路径和芯片总线相连,也可将需控制和需观察的测试点接在扫描链中。形成一个统一的可为测试装置控制的整体。
4、深亚微米SOC的物理综合
由于深亚微米时互连线延迟是主要延迟因素,而延迟又取决于物理版图。因此传统的自上而下的设计方法只有在完成物理版图后才知道延迟大小。如果这时才发现时序错误,必须返回前端,修改前端设计或重新布局,这种从布局布线到重新综合的重复设计可能要进行多次,才能达到时序目标。随着特征尺寸的减少,互连线影响越来越大。传统的逻辑综合和布局布线分开的设计方法已经无变得无法满足设计要求。必须将逻辑综合和布局布线更紧密的联系起来,用物理综合方法,使设计人员同时兼顾考虑高层次的功能问题、结构问题和低层次上的布局布线问题。物理综合过程分为初始规划、RTL规划和门级规划三个阶段。
在初始规划阶段,首先完成初始布局,将RTL模块安置在芯片上,并完成I/O布局,电源线规划。根据电路时序分折和布线拥挤程度的分析,设计人员可重新划分电路模块。通过顶层布线,进行模块间的布线。并提取寄生参数,生成xx线网模型,确定各个RTL模块的时序约束,形成综合约束。
RTL规划阶段是对RTL模块进行更xx的面积和时序的估算。通过RTL估算器快速生存门级网表,再进行快速布局获得RTL模块的更xx描述。并基于这种描述对布局顶层布线、管脚位置进行精细调整。{zh1}获得每一RTL模块的线负载模型和xx的各模块的综合约束。
门级规划是对每一RTL级模块独立地进行综合优化,完成门级网表,{zh1}进行布局布线。对每一RTL模块和整个芯片综合产生时钟树。还进行时序和线扔挤度分析,如果发现问题,可进行局部修改。由于物理综合过程和前端逻辑综合紧密相连,逻辑综合是在布局布线的基础上进行,因此延迟模型准确,设计反复较少。
5、设计难技术
设计验证是设计工作中十分重要的一环,电路规模越大系统越复杂占用验证时间越长。目前市场上已经有了适合不同设计领域和设计对象的CAD工具但如果用这些工具来验证系统级芯片设计需将它们安需要组合,并集成在同一环境中。 模拟电路模拟需要晶体管级模型,大部分模拟工具都是从SPICE衍生出耒,由于要求解电路方程,电路越复杂模拟时间越长。利用并行结构分别进行数值解算和利用模型进行模拟,可大大提高模拟速度,能对数万元器件电路乃至芯核进行模拟。但要对整个数百万门规模的SOC进行模拟还是有困难的。另一方面深亚微米系统级芯片线网延迟超过门延迟,工作频率数百兆,信号间的打扰,信号完整性分析也必须通过晶体管级的模拟才能确定。而数字信号模拟只需逻辑模型,模拟速度快,规模大。由此看来,物理设计后提取各模块晶体管和连线参数,首先进行模块级验证,在引基础上再通过支持多种不同模型的模拟器联合模拟以解决SOC设计中的验证问题。
在系统级芯片上,几乎都要用到微处理器以及专门的软件和硬件。硬件和软件之间是密切相关的。但在系统被做出之前,软硬件之间的相互作用通常是很难xx测出的。一些设计错误也不会明显表现出来。为了解决这一问题,必须采用硬件/软件协同验证技术。