>
随着深亚微米CMOS技术的快速发展,越来越多的功能模块和模拟、混合信号模块被集成到同一个芯片上。因此,带有寄生效应的设计复杂性增大了,给设计验证带来了越来越严峻的挑战。传统的SPICE模拟器,例如Spectre,广泛应用于模块级设计,但是它们却不适用于需要考虑寄生效应的芯片级模拟。Cadence推出的Fast SPICE模拟器——UltraSim则能够支持带寄生元件的10万门以上规模的复杂电路设计。
本文首先介绍了混合信号模拟面临的挑战,以及UltraSim如何应对这些挑战,然后介绍NXP如何使用UltraSim对一个LCD源驱动器设计进行全芯片的晶体管级验证,以及通过NXP与Cadence的合作,成功实现了电路的布局后验证。电路的布局前模拟可以发现并纠正电路设计中可能存在的问题;布局后模拟能够在考虑版图RC寄生参数的情况下验证芯片时序。
模拟/混合信号模拟的挑战
高度的集成为模拟/混合信号电路的模拟和相关模拟器带来了很多新的挑战,主要包括:
* 急剧增长的电路规模和复杂性要求模拟器具有更大的容量与更快的速度;
* 人们越来越注重如何缩短设计/研发周期,以及如何实现一次性流片,这要求模拟器能够处理寄生效应;
* 深亚微米器件中的二阶效应变得越来越突出,例如亚阈漏流、短沟道效应、热载流子效应等;
* 模拟/混合信号设计中的噪声与交叉耦合问题;低电压设计中的IR压降和电迁移问题;
* SoC内置的电源产生电路导致不同模块之间的交叉耦合问题更加严重,而在传统的混合信号模拟方法中,模拟模块和数字模块是分别进行模拟的,无法反映这种效应;
* 在流片前准确进行布局后模拟已变得越来越重要,这种模拟能够反映互连延迟、串扰、衬底效应、地弹等物理问题。
对全芯片进行晶体管级的布局前模拟和布局后模拟是应对上述各种挑战的理想解决方案。但是,由于模拟容量和速度的局限性,用于模块设计的传统晶体管级SPICE模拟器无法满足全芯片模拟的需要。
UltraSim技术简介
传统的SPICE模拟器(例如Spectre、PSPICE)有一些人所共知的局限性,例如模拟容量小(大约只能支持5万有源器件),对较大设计的模拟速度较慢。为了克服这些局限,Cadence推出了第二代SPICE模拟器,即所谓的Fast SPICE模拟器,采用了电路划分、多速率模拟和压缩表模型等技术。
众所周知,传统的SPICE模拟器采用一个矩阵进行电路模拟,随着电路规模的增大,其计算量将呈指数级增加,模拟速度也会大幅度降低。相反,Fast SPICE模拟器通过划分技术将大矩阵分解为多个较小的矩阵,以减少计算量,并通过事件驱动技术忽略备用数据块,进一步减少了计算量。
电路划分的另外一个好处是能够实现多速率模拟。一般而言,不同的电路模块可能具有不同的工作频率。根据这一特点,Fast SPICE模拟器分别采用不同的模拟步骤模拟不同的模块。这种技术不但避免了工作在较低频率下的模块被反复计算,而且能够确保采用正确的步骤计算较高频率的模块。
压缩表模型是Fast SPICE模拟器采用的另外一项关键技术。传统的模拟器一般采用复杂的公式计算MOSFET或BJT的参数,这会占用大部分的CPU时间。而在Fast SPICE模拟过程中,模拟器在瞬态分析之前就会产生表格模型,然后在模拟过程中通过查表的方式大大加快了模拟速度。Fast SPICE模拟器提供了多种表格模型,能够满足各种不同的模拟精度与速度的需求。
作为新一代Fast SPICE模拟器,Virtuoso UltraSim采用了诸如层次化同构和自适应电路划分等多项新技术。UltraSim每次只计算同构子模块的一个样本,从而避免了重复性计算,提高了模拟容量和速度。UltraSim具有与SPICE一样的精度,完全兼容SPICE模拟器;简洁的选项设置机制简化了模拟定制过程;改进的RC简化算法实现了精确而快速的布局后模拟。此外,UltraSim完全集成在Cadence的标准模拟电路仿真流程中,能够与Voltage Storm、Signal Storm之类的EDA工具配合使用。
兼容性
Cadence MMSIM(多模式模拟)中的所有模拟引擎(Spectre、SpectreRF、AMS Designer和UltraSim)都通过CMI(公共模型接口)读入器件模型,共用同一种VerilogA引擎(见图1)。这种方式避免了由于不同模拟器之间的不兼容性而导致的不准确、不稳定问题。此外,作为混合信号模拟引擎,UltraSim支持多种输入/输出,例如Spectre、结构式Verilog,支持各种Spice网表、所有的标准模型、专用CMI模型、VerilogA、SpectreHDL、VEC/VCD/EVCD和传统SPICE的后处理方法(测量与各种波形输出)。
图1 MMSIM的共享组件
布局后模拟功能
由于需要处理大量的RC寄生参数,电路的布局后模拟通常比布局前模拟更具挑战性。UltraSim采用了特殊的RC简化技术,能够有效减少RC寄生参数的数量(最高达90%),同时将精度损失控制在1%~3%以内。相比传统的RC简化技术,UltraSim算法能够大大缩短模拟时间,降低内存开销,同时又保持较高的模拟精度。UltraSim的RC简化技术不是简单地过滤掉小电容和电阻,而是采用等效的简化电路代替原来复杂的RC网络,并且能够根据最高的信号频率自动调谐电路,以确保模拟精度。
UltraSim支持各种布局后模拟流程和后布局网表格式,例如SPICE格式、Extracted View、展平、层次化的DSPF或SPEF网表、DPF和Node CAP文件。而且,UltraSim的RC缝合技术使设计师可以对指定的模块选择性地添加RC寄生参数(见图2),提高了模拟的灵活性。例如,为了在模拟过程中以较快的速度准确估计某些寄生效应,某些数字模块采用了行为级模型,而另外一些重要的模拟模块包含了寄生参数。在UltraSim中,设计师只需要通过设置postl选项来配置RC简化程度。这种功能能够自动调整RC简化的相关参数。当然,有经验的设计师也可以根据自己的需要随意调整这些参数。
图2 布局后模拟流程和RC缝合技术
适用性
模拟/混合信号模拟的准确性取决于模型的准确性和模拟器的容错能力。在使用UltraSim时,设计师通常只需设置模拟的模式和速度,以实现最佳的精度和速度。对于高级设计师而言,可以根据电路的特性,合理地运用这些选项,能够进一步提高模拟的性能。
基于UltraSim的LCD源驱动器验证
对于大尺寸LCD中所使用的高压(13.3V)CMOS源驱动电路,本文选择UltraSim进行全芯片验证。该器件包括一个移位寄存器、一个两级数据锁存器和带模拟输出缓冲的DAC。
为了模拟基准测试程序和比较的需要,本文采用了两种可能的组合模型:SpectreS网表+HspiceS模型,以及SpectreS网表+Spectre模型。SpectreS/Spectre网表是由ADE(模拟设计环境)产生的,使用SPICE激励。HspiceS模型是Spectre模型经过一定的简化转换而来的。
对于布局前模拟网表,总的元件数量大约为1M。表1列出了各种元件的数量。传统的SPICE工具,例如Spectre,模拟这种规模电路所需的内存开销太大,而且模拟速度极慢, 不可能完成仿真。
对于布局后模拟(后仿),包括650K寄生电容在内,总的单元数增加到了1.66M。高频数字模块使用版图提取的视图(带寄生RC),而其他模块使用电路原理图。
布局前模拟
由于该系统是混合信号电路,在全局上使用UltraSim的混合信号模式(MS)。对于局部设置,模拟模块采用模拟模式(A),数字模块采用DF(数字快速)模式。模拟模式不进行电路划分,适用于纯模拟电路。DF模式具有非常快的模拟速度,但是精度相对较低,适用于数字电路的模拟。
.usim_opt sim_mode=ms
.usim_opt sim_mode=a #datainput_g186 #clockinput_g184
.usim_opt sim_mode=df speed=7 # coredigital_g147
采用上述设置,UltraSim在5个小时内完成了85ms的瞬态模拟,并产生了正确的结果(见图3)。
图3 LCD源驱动器输出信号
在使用UltraSim进行模拟的过程中,本文发现了一些有关网表和模型的问题。
a)语法与网表问题
对于SpectreS网表+HspiceS模型的组合,UltraSim没有问题,只是Spectre的语法和SPICE的语法在处理参数传递、subckt重复定义和名字大小写等方面有所不同。
对于Spectre网表+Spectre模型的组合,从悬空接点的警告可以发现SPICE激励与spectre网表之间存在匹配问题。在纠正这些错误之后,UltraSim得到了预期的模拟结果。
b)SpectreS网表+HspiceS模型组合的二极管模型问题
对于SpectreS网表+HspiceS模型的组合,某些信号出现了错误的状态(例如y_1)。经过对这一问题的追踪,发现HspiceS模型中二极管的极性出错了。此外,SPICE二极管模型是从Spectre JUNCAP模型转换而来的,Spectre JUNCAP模型中的某些参数(例如AS、AD PS、PD)被保留下来,但是由于与SPICE语法不兼容而被忽略了。因此,二极管的实例化没有得到期望值,而是使用了缺省值。
为了避免修改模型文件,这里采用UltraSim的选项(.usim_opt dcut=1)截止二极管,在这一选项下看到了预期的正确功能。
值得注意的是,由于第三方模拟器忽略了二极管,且由于错误的参数转移指令将二极管的面积处理为零,因此,它碰巧得到了正确的模拟结果。
布局后模拟
布局后模拟的UltraSim设置如下:
.usim_opt sim_mode=ms
.usim_opt sim_mode=a #datainput_g186 #clockinput_g184
.usim_opt sim_mode=df postl=3 #core_digital_rcx_g111
在布局后网表中,数字模块core_digital_rcx_g111使用了版图提取的视图,其中包含超过600K个寄生电容。在调用UltraSim RC算法时,应该指定postl参数。当设置postl=3时,电容数量减少到20K以下,从而加快了模拟速度,减少了内存消耗,同时又保持了较好的精度。
结语
作为Fast SPICE工具,UltraSim通过电路划分、多速率模拟、改进器件模型等技术,克服了传统SPICE模拟器在模拟容量和速度方面的局限性。只需通过简单而直接的选项设置,就能够快速对全芯片进行仿真。而且,高效的RC简化技术使得UltraSim非常适用于快速而精确的布局后模拟。通过LCD源驱动器验证,表明UltraSim是一款能够同时胜任布局前与布局后全芯片验证的模拟工具。■