spice的变异与进化
spice最初是用来做小型电路仿真的。电路中的元器件数也就几十最多到几百个。随着电路规模越做越大,电路种类越来越多,人们会问:spice能不能跑得更快一些,能运行的电路更大一些?自然而然的,spice的变种就出现了。我们在这儿讲三个方面:第一是快速仿真,第二是数模混合仿真,第三是扩展应用。
先说说快速仿真(fastspice)。这也是市场最大,发展最多的一块儿。因为spice是把整个电路放到一个矩阵中来解。人们就想能不能把电路分成小块单独解,然后再把各块之间联接起来,这样不就快了吗?的确,对数字电路,确实可以用分割的方法。因为数字电路的信号是有方向的,我们可以在没有直流通路的地方把它分开(例如在两个串联的反相器中间)。另外就是数字信号是离散的,我们可以把它分成几段。分的段越大,时间步长也就能越大,需要解的次数就少了(当然结果也就没那么精确了)。还有就是器件模型。我们前面讲过如今的mosfet模型非常复杂,要花很多时间去算,那能不能把它简化呢?可以。事实证明对数字电路以及数模混合电路(像pll,memory,serdes)来说,用表格模型(tablemodel)来代替复杂的方程模型是个不错的选择。通过这些简化,快速仿真可以比原来的spice快几十到上百倍,而精度是在spice的5-10%之内。像epic的powermill(后来成为synopsys的nanosim),anagram的adm(后来成为avant!的starsim),celestry(后来成为cadence)的ultrasim,nassda(后来成为synopsys)的hsim,等等。最近比较流行的是magma(现在是synopsys)的finesim,bda(现在是mentor)的afs,proplus的nanospice。
其次来说说数模混合仿真。当一个系统中既有模拟电路,又有数字电路,人们自然就会想到把spice和数字仿真器(如synopsys的verilogvcs,cadence的nc,mentor的modelsim)联在一起运行。spice去算模拟电路部分,数字仿真器去算数字电路部分,它们之间用数模/模数转换器(ad/da)连接。注意这种运行方式跟上面的快速仿真不同。这样的混合仿真需要两个仿真器。但这样的构架有缺点。主要的问题是数模转换没有一个标准。市面上有很多spice以及verilog仿真工具,每一个工具的转换界面都不一样,这就造成混合仿真的界面非常复杂。因此,最近发展的混合仿真都采用数模一体化的构架,大大简化了转换界面,而且用户只需在一个环境下就可进行混合仿真。这样的工具有cadence的virtuoso-ams,synopsys的hsim-plushdl,silvaco的harmony,华大的aeolus-ads等。
最后再来说说spice的扩展应用。虽说spice是针对集成电路(ic)开发的,但它的应用已扩展到系统级(systemlevel),主要是电路板(pcb)级的仿真。那系统级仿真与集成电路仿真有何区别呢?它们不都是电路吗?呵呵,没错,它们都是电路,但区别还是蛮大的。主要是它们的规模与尺寸的不同。我们知道,集成电路是集成在芯片上的。其器件尺寸现在已做到纳米级。而系统级的尺寸还在毫米,厘米,甚至米的数量级。学过电磁的同学都知道,当器件的尺寸大于信号波长的时候,就要考虑分布的场效应了。拿一段导线做例子。一段在芯片上的导线,你可以把它看作一个电阻。而一段电路板上的导线,你就必须用传输线(transmission line)来代表它,否则误差就太大了。如果信号的频率再高,那就要用s参数了(s-parameter)。由此,电路仿真发展出一大分支,这就是所谓的“信号完整性”工具。像agilent的ads,mentor的hyperlynx,以及 cadence的orcad和allegro。
spice今后的道路
从70年代初到如今的四十多年里,spice从只能仿真十几个节点/器件到今天可以仿真上百万个节点/器件的电路,这是一个非常惊人的成就。但这个成就的主要原因是摩尔定律。前面我们讲过自从90年代中期,spice本身就没有太大的变化了。这怪就怪(不,应该是感谢才对)spice的先驱们。他们奠定了一个坚实的基础,使得我们后面的人都没什么可做的了(呵呵,这不是好事吗)。的确,要改变spice的基石,例如改进的节点分析法(modifiednodal analysis),稀疏矩阵解法(sparse matrix solver),牛顿-拉夫逊迭代(newton-raphsoniteration),隐性数值积分(implicitnumerical integration),等等,确实不容易。说到底,spice是一个解非线性常微分方程的工具。你要想从根本上有个革命性的改变,那你还是从数学上着手吧。
spice是一个非常通用的工具。虽然集成电路是它的着重点,但我们看到它也被广泛应用到了系统级,电源级,甚至延伸到了不同领域的仿真。我们前面讲到了数模混合(mixed-signal),但它还是在电路的范畴内。可不可以把它扩展到其他领域(mixeddomain/multiple discipline),比如机械,热力,甚至生物领域?答案是可以的。例如,在电路领域中,我们解的是跨过两个节点的电压和通过一个支路电流。而在机械领域中,我们解的是两个点的位置和力。从早期saber的mast语言,到现在的工业标准verilog-ams和vhdl-ams都已经支持不同领域的描述。这就给跨领域的仿真带来了可能。虽然verilog-ams还没有被模拟电路设计者广泛采用,但它很可能先从另一个地方发扬光大。比如,微机电系统(mems)很有可能是下一个大的应用领域。
另外一方面,虽然spice可以解很多类型的电路,但它的运算速度也因此受到了制约。每一种电路都有它自己的特点,比如数字电路信号的离散性,存储器(ram)结构的重复性,等等。我们可以在spice的基础上,利用这些电路的特点来开发特制的“spice”以提高仿真的效率。前面说的快速spice仿真工具就属于这一类。它们的通用性不如spice,但它们针对某一类电路的仿真效率是非常高的。
最后一方面,我们从spice的发展可以清晰得看到,软件的发展是与硬件的发展密不可分的。现在的处理器基本上都是多核,多线程的,新一代的商业spice也利用了这些新的处理器架构。最新的图形处理器(gpu)更是达到了上百个核,上万个线程。并行的开发工具像开放计算语言(opencl),cuda也逐渐成熟。高性能计算(hpc)以及云计算也在日益普及。spice能否利用这些新的的环境来提高仿真效率呢?呵呵,这个问题就需要你来解答了。
下面的图给出了主要spice的发展过程。其中的代号如下:ucb:伯克利,geda:gnu eda,meta:meta-software,snps:synopsys,µsim:microsim,cdn:cadence,ment:mentor
下面的图给出了主要快速仿真工具的发展过程,“+”代表并购。
注意这些快速仿真工具都是商业化的。目前还没有一个开源的快速仿真工具具有像伯克利spice那样广泛的影响力。
异步设计之Verilog时序分析
蒸汽清洗机非接触式液位检测方案
SQL的定义、组成及基本语法
TOF激光雷达的类别
几个关于充电电池错误认识
电路仿真:什么是SPICE模型!SPICE的变异与进化
神经网络加速+GPU能够提供强有力的算力,为人工智能赋能
380交流接触器型号怎么区分(实物接线图)
轮到英特尔酷睿i7被轰成渣?AMD 12核心Ryzen处理器曝光
直播预告丨Qorvo 分享 UWB 最新消息和应用
shijidianli10kv交联电缆交流耐压试验标准条件
戴尔新发布DC to USB-C转换器
HDXL-A输电线路工频参数测试仪接线测量方法
TCL集团发布2021年全年业绩报告
精细电子线材企业新亚电子发布2022第一季度报告
海尔磁悬浮空调 PCB企业心享云服务
磐石测控:定制系列新能源充电枪测试机的数据分析?
博杰股份斥资9亿元收购哈挺中国,迈入高端数控机床市场
采用可编程逻辑器件实现三线制同步串行通信的应用设计
赛微电子的MEMS业务实现快速增长