spice模型(SPICE的器件模型)
一、Spice模型和Pspice模型有什么区别
SPICE模型是由SPICE仿真器使用的基于文本描述的电路器件,它能够用数学预测不同情况下,元件的电气行为。SPICE模型从最简单的对电阻等无源元件只用一行的描述到使用数百行描述的极其复杂子电路。
SPICE模型不应该与pSPICE模型混淆在一起。pSPICE是由OrCAD提供的专用电路仿真器。尽管有些pSPICE模型是与SPICE兼容的,却并不能保证其完全兼容性。SPICE是最广泛使用的电路仿真器,同时还是一个开放式标准。
SPICE模型由两部分组成:模型方程式(Model Equations)和模型参数(Model Parameters)。由于提供了模型方程式,因而可以把SPICE模型与仿真器的算法非常紧密地联接起来,可以获得更好的分析效率和分析结果。
现在SPICE模型已经广泛应用于电子设计中,可对电路进行非线性直流分析、非线性瞬态分析和线性交流分析。被分析的电路中的元件可包括电阻、电容、电感、互感、独立电压源、独立电流源、各种线性受控源、传输线以及有源半导体器件。SPICE内建半导体器件模型,用户只需选定模型级别并给出合适的参数。
采用SPICE模型在PCB板级进行SI分析时,需要集成电路设计者和制造商提供详细准确描述集成电路I/O单元子电路的SPICE模型和半导体特性的制造参数。由于这些资料通常都属于设计者和制造商的知识产权和机密,所以只有较少的半导体制造商会在提供芯片产品的同时提供相应的SPICE模型。
SPICE模型的分析精度主要取决于模型参数的来源即数据的精确性,以及模型方程式的适用范围。而模型方程式与各种不同的数字仿真器相结合时也可能会影响分析的精度。除此之外,PCB板级的SPICE模型仿真计算量较大,分析比较费时。
二、简述spice的四种level的区别
HSPICE
先来说说HSPICE,记得我们前面讲过的批处理运行吧。在当时的大公司里,这是电路仿真标准的运行方式,但这么做的效率太低了。设计者需要尽量短的时间看到仿真结果,然后修改电路参数再做仿真。如此多次以达到最佳结果。有俩个孪生兄弟ShawnHailey及KimHailey,当时都在AMD做设计,看到了这里面的问题。与其让几百个客户排队等一个银行柜员,为什么不让每一个客户都有一个柜员呢?问题就是商机。他们决定跳出来开自己的公司。于是78年,Meta-Software成立了,他们把改进的SPICE变种取名为HSPICE(你现在明白了吧,为什么要以H开头?这可是兄弟俩姓的第一个字母啊)。他们把SPICE2从大型机移植到了VAX小型机上,后来又移植到Sun工作站上。就这样,借着计算机硬件改朝换代的东风,越来越多的公司开始使用HSPICE了。直到如今,这个HSPICE成了工业界的”金标准“。只要你做个仿真器,人们一定会跟HSPICE比结果的。而且,在SPICE前面加一个字母成了时尚。到今天,有人开玩笑说A-SPICE一直到Z-SPICE都已经被人用过了(当然,HSPICE仍然是最出名的)。
有人可能会问:要是我当时也把SPICE移植到小型机上,我是不是也可以成功?呵呵,成功的要素有很多,光用一条是远远不够的。比如说用户的反馈就是相当重要的一条。举个例子,HSPICE是第一个把器件模型库卡(.LIB)和结果测量卡(.MEASURE)做进去的。像这样的例子还有很多。这些虽然不是什么革命性的技术创新,但它们很实用,能大大提高用户的使用效率。甚至某些时候,对用户来说,这样的小改进比创新的算法更重要。
前面我们提到了七八十年代有很多的 MOSFET器件模型。HSPICE把能拿到的器件模型都收进去了。所以,HSPICE的MOSFET器件模型是最全的(不信的话,你就去拿本HSPICE的MOSFET模型手册读一下–注意,它是一本独立的手册。也就是说,光是它里面的七八十个MOSFET模型就是一本书了)。但这样还不够。Meta还开发了自己的MOSFET模型:Level28。他们跟用户的工艺线紧密联系。在工艺线流片之前,相应的器件模型参数已由芯片加工厂(foundry)提供给芯片设计者了。如果你是设计者,你还能不用它吗?这样做的结果直接导致了HSPICE用户群急速的扩大。就像滚雪球一样,一旦超过了临界质量(criticalmass),它自己就会越滚越大。据Meta-Software的人说,在公司巅峰的时候,他们的销售员就是一台传真机。你只要把传真机号码告诉客户,他们就把订单发来啦(那时候的钱真好赚啊,当然公司里肯定不止一台传真机)。从78年成立到96年这18年期间,公司一共卖出了一万一千多套HSPICE,它的年成长率达到了25-30%。
1996年Meta-Software被Avant!收购。到2001年,Avant!又被Synopsys收购。关于Avant!的故事有很多。这个公司(包括它的头JerryHsu)就像EDA业界的一匹黑马。它的故事足可以写另一个长篇了。这里且按下不表。
Meta-Software兄弟俩中的老大,ShawnHailey,已于2011年去世。在此之前,他把自己的名字改成了AshawnaHailey。
PSPICE
PSPICE像HSPICE一样,PSPICE的故事也跟它的名字有关。首先,这第一个字母“P”并不是其创始人的名字。事实上,创始人的名字WolframBlume里根本没有字母“P”。那这字母“P”到底是什么意思呢?对了,它就是PC。PSPICE的发展跟PC的发展是密不可分的。但这并不是PSPICE的初衷。
时间回到1984年,那时WolframBlume从加州理工(CalTech)毕业加入南加州一家半导体公司。工作中,他听到很多抱怨,说公司内部的SPICE速度太慢了。这位老兄也不含糊,立马对其SPICE来了一个详尽的分析。结果发现,大部分时间花在了算 MOSFET模型的方程上(记得前面我们讲的MOSFET的复杂性吧)。他一想,如果能用硬件来并行处理这些方程,岂不就可以加快仿真速度了吗(呵呵,又是一个看到商机的主)?恰恰那个时候英特尔推出了支持硬件并行的8085/8086/8087。说干就干。这位老哥创立了MicroSim公司。又是在这时,IBM推出了基于Intel芯片的IBM-PC。另一个机会又来了:只要把SPICE从大型机上移植到PC上就行了。这事儿比起第一个事儿简单太多了。可是,人们当时认为PC就是个游戏机而已,没人拿它来做什么正经事儿(呵呵,看看现在不还是这样吗?)。所以,这位老哥并没有把这第二件事看得太重,而是集中绝大部分精力和资源去做硬件并行。
当时的IBM-PC有640KB内存。最大的数组只允许64KB内存。而SPICE是用一个巨长的数组来存储所有的数据。把SPICE的数据放到IBM-PC的结构,用这位老哥的话说,就像把一只鲸鱼塞进一个金鱼缸里。但他们做到了(中间略去他们N个睡不着的工作之夜)。并行硬件的确加快了方程的处理,可他们也快没钱了。这位老兄忽然想到,咱不是把SPICE移植到PC上了吗?咱就先卖着这个软件,用卖它的钱继续开发咱的并行硬件。就这样,PSPICE就开始在PC上出现了。
最初这位老兄想卖硬件加速器的PSPICE版本,可结果恰恰相反,俩年后,纯软件的PSPICE卖出去了一千多套,而硬件加速器只卖了俩套。到这时候,这位老兄也明白了。做硬件吃力不讨好,市场并不需要。他把卖出去的俩套硬件加速器又自己买了回来(当然又半卖半送给人家N套纯软件的版本)。
同学你看,一个高新复杂的技术并不一定会做出一个卖座的产品。反过来,一个貌似简单的技术可能很受市场的欢迎。另外,PSPICE虽然不是赚钱最多的,但它的用户数绝对是最大的(遍及全世界五大洲)。你可以下载一个免费的PSPICE用。当然,只限于十个晶体管。但这对一般学生的学习来讲,大部分情况下已经够用了(想一想当年的大型机也就只能算这么多)。你如果在网上搜一搜,就会发现阿拉伯语(以及其他语言)的PSPICE教材。你如果是在校生的话,很可能也在用PSPICE。
下面是PSPICE第二版的封面。
MicroSim1998年被OrCAD收购。OrCAD在2000年又被Cadence收购。
Spectre
Spectre话说89年,伯克利毕业了最后一批做SPICE研究的学生。其中一个叫 KenKundent。Ken非常有才气。他在伯克利的研究成果后来成为了安捷伦的微波仿真软件。同时他的傲气也不小。在加入了Candence后,他看到HSPICE卖的很火,就决定做个新的仿真工具去取代它。这就是Spectre。据说他用了俩个星期就写出了第一个版本(呵呵,不愧是伯克利SPICE大本营出来的)。SPECTRE比HSPICE要快俩三倍,还具有更高的精度及更好的收敛性。但它并没能取代HSPICE。为什么呢?一个原因是兼容性。SPECTRE的输入格式跟HSPICE有很大不同。Ken计算机编程的功底很深,他设计的Spectre的输入格式像C语言一样。虽然从计算机语言角度看,Spectre的输入比HSPICE的输入更规范,但SPICE的用户是电路设计者,他们才不管你的语言多么优美,只要好用就行。另外,如果你是个电路设计者,花了几年功夫好不容易才学会了一种语言格式,用它已经写了成百上千个电路网表,而且它们都工作的好好的,为什么要去换成另外一个呢?另外,还有一个更重要的原因,就是用户对HSPICE的信赖。这种信赖不是一时半会儿就能建立起来的。它是经过几十年,成千上万遍仿真,几百次tapeout(送出去流片)才能形成的。怎么能说换就换呢?
Ken琢磨着,既然更快更好还没办法取代SPICE,那我们就得做点SPICE没有的东西。做什么呢?恰好在九十年代中期,一种标准的设计语言VHDL开始向模拟电路扩展,这就是VHDL-AMS(VHDL的模拟电路及数模混合电路描述语言)。(这里再插一句,最早的数模混合电路描述语言是MAST,它是Analogy公司的仿真器Saber里面使用的。VHDL-AMS是基于欧洲Anacad公司开发的HDL-A语言发展而来的。后来Anacad的仿真器成为Mentor的Eldo)。但当时还没有Verilog的AMS扩展(原因是VHDL主要在欧洲使用。而Verilog主要在美国使用)。Ken就想,好吧,我们也来做个标准的设计语言到Spectre里。这就是Verilog-AMS(Verilog的模拟电路及数模混合电路描述语言)。不过这事儿说起来容易做起来难。首先,既然你是标准,那就要大伙儿都同意。让大伙儿都同意的事是要花时间的,没那么快。其次更重要的,是你要让模拟电路设计者来学习并使用这个语言。这可是比登天还难的事儿。如果你是一个模拟电路设计者,你想想你在学校的课本上看到的是运放的电路还是它的描述语言?当然是电路了。至少到今天为止,还没有一本模拟电路的教科书是只用描述语言的。你再看看数字电路的教材,几乎全部都是 VHDL或 Verilog描述语言(呵呵,如果你还用晶体管来设计数字电路,那你的年龄够大了)。另外,当你做模拟设计的时候,你是在搭晶体管电路呢,还是在写描述语言?对模拟电路设计者来说,用语言而不用电路来做设计是不可想象的。反过来,对数字电路设计者来说,用电路而不用语言来做设计也是不可想象的。
Spectre-AMS做出来后,Ken发现当时的感兴趣者寥寥无几(呵呵,这哥儿们专找硬骨头啃)。那怎么办?在公司做产品是要卖钱的。Ken有点儿绝望了。这时,他想到了回去做他在学校做的老本行:射频电路仿真。至少这个功能别的SPICE还没有。他把这个想法告诉了当时Candence的市场经理JimHogan。Jim做了个市场调查。那时射频电路设计市场几乎不存在,只有几家做镓砷电路的算搭点边儿。当Jim把这调查结果告诉Ken,Ken也无可奈何的耸耸肩。Jim对Ken看了好一会儿,说,管它呢,你就做去吧。谁知道这一次却是歪打正着了。九十年代中后期正是无线通信市场腾飞的时候。很多在学校用Spectre-RF的毕业生加入了新的做射频电路芯片的设计公司。这些公司必须要用Spectre-RF做射频仿真。而Spectre-RF是Spectre的一个选项。因此,Spectre也就借着Spectre-RF的东风开始流行起来了。后来,HSPICE和Smart-Spice也跟风在自己的SPICE中加进了RF的选项。这也算是Spectre对SPICE的功能扩展做的贡献吧。
Smart-Spice
Smart-Spice是Silvaco公司的产品。说到Silvaco,就不得不说它的创始人 IvanPesic。Ivan来自黑山共和国(Montenegro欧洲巴尔干半岛的一个小国家)。像所有第三世界国家的穷学生一样,通过自己的勤奋努力来到美国。来美国之后,他先开了一家修车店。直到攒够了钱,才在1984年成立了Silvaco。他有一个儿子。可能是年幼时受了老爸的修车店的熏陶,决定长大了当个汽车修理工。因此学习也不上进。怎么让这小子好好学习呢?简单。有一天,老Ivan把儿子带到了圣荷塞(SanJose,硅谷一大城市)一个最破的修车店的马路对面,对儿子说:你就坐在这儿,看看汽车修理工一天的工作是什么样的。自从那一天结束以后,儿子的学习成绩就全变成A了。
说到IvanPesic,我们还不得不说他打官司的故事。Silvaco的历史上与N家公司打过官司(而且大部分都赢了)。在此我们只讲讲与Meta-Software(后被Avant!并购)的官司。话说八十年代末到九十年代初,Meta-Software和它的HSPICE如日中天,这其中它自己的Level28模型起了重要作用。Silvaco最初的产品是 TCAD(TechnologyCAD),并不是SPICE。这时它也准备开发自己的Smart-Spice,但它拿不到HSPICE的Level28模型。怎么办?Silvaco采用了一个瞒天过海的迂回战术。Silvaco有个不错的模型参数提取软件叫Utmost。它就找到Meta-Software说,你看,如果把你们的Level28模型公式放到我们的Utmost中,就会有更多的用户用你们的HSPICE。Meta一想也对,就把Level28模型给了Silvaco。没成想,过了二年,Silvaco自己的Smart-Spice出来了,而且里面还带着Level28模型。这下Meta-Software气坏了。就把Silvaco告上了法庭。也就在这个前后,Avant!并购了Meta-Software。但Avant!只看到了HSPICE这只下金蛋的鹅,却忽略了Meta-Software跟Silvaco的官司。也许是因为Avant!恰恰正在和Cadence打着一场更大的官司,从而忽略了这个小案子。不管是什么原因,当法庭开庭要宣判的那一天,Avant!居然没有人出庭。这下法官可气坏了。好啊,竟敢藐视本法庭,来啊,判Avant!输,并赔Silvaco俩千万!本来Silvaco上庭前战战兢兢的,盼望着和解就不错了。这下到好,不光不用和解了,还得了一大笔钱。呵呵,人们都说国外重视知识产权。这种重视其实是来自于众多这样的动不动就成百上千万的官司。所以同学,如果你是学理工出身的,那你不妨去学学法律。如果你是学文科出身的,那你不妨去学学理工。估摸着在不久的将来,国内这样的涉及知识产权的大官司也会越来越多。做为一个懂高科技的律师(或者一个懂知识产权法律的工程师)会很抢手的。
但是,一个公司如果光靠打官司,那也是赢得不了客户的。说实话,Smart-Spice做得还是蛮不错的,价格又便宜。Smart-Spice还是第一个“基于使用时间许可证”(use-timebased license)的工具。这对许多小公司或个人用户是个好消息。如果你没几万美元去买高大上的商业SPICE,或者你就只需跑几次仿真,那就可以最少花十几美元用Smart-Spice完成你要做的事。这就像买车还是租车一样。卖车店能赚钱,租车店也会有很多顾客的。这不也是一个很好的商业模式吗?
IvanPesic于2012年因癌症在日本去世。如今,他本来想当汽车修理工的儿子已经继承了老爸的事业,接替掌管Silvaco了。
Aeolus-AS
我们应该感到骄傲–这是我们中国本土的SPICE。虽然名字叫起来很拗口。光从名字上也看不出这是SPICE。它是由北京华大九天开发的。至于为什么起这样一个名字,还是请华大的刘总来解答吧(呵呵)。本人并没有用过这个工具。下面的几句话是从华大的网页上摘下来的,也算给他们做个广告吧。“它是新一代高速高精度并行晶体管级电路仿真工具,能够在保持高精度的前提下突破目前验证大规模电路所遇到的容量、速度瓶颈。Aeolus-AS能够处理上千万个元器件规模的设计,仿真速度也比上一代晶体管级电路仿真工具有大幅提升,同时支持多核并行。”
还有一类是工业界但非商业(也就是不拿出来卖的)SPICE。通常它们都是在公司内部开发使用的。一般只有拥有fab的大公司(像Intel,前Infenion,前Motorola,Fujitsu等)才能负担得起一个开发团队。这种公司内部的SPICE基本都会有自己的器件模型。在这里我们就不多说了。
三、什么是SPICE模型
SPICE(Simulation Program with Integrated Circuit Emphasis)。随着I/O开关频率的增加和电压电平的降低,I/O的准确模拟仿真成了现代高速数字系统设计中一个很重要的部分。通过精确仿真I/O缓冲器、终端和电路板迹线,您可以极大地缩短新设计的面市时间。通过在设计之初识别与问题相关的信号完整性,可以减少板固定点的数量。传统意义上,SPICE分析用在需要高准确度的IC设计之类的领域中。然而,在PCB和系统范围内,对于用户和器件供应商而言,SPICE方法有几个缺点。由于SPICE仿真在晶体管水平上模拟电路,所以它们包含电路和工艺参数方面的详细信息。大多数IC供应商认为这类信息是专有的,而拒绝将他们的模型公诸于众。虽然SPICE仿真很精确,但是仿真速度对于瞬态仿真分析(常用在评估信号完整性性能时)而言特别慢。并且,不是所有的SPICE仿真器都是完全兼容的。默认的仿真器选项可能随SPICE仿真器的不同而不同。因为某些功能很强大的选项可以控制精度、会聚和算法类型,所以任何不一致的选项都可能导致不同仿真器的仿真结果的相关性很差。最后,因为SPICE存在变体,所以通常仿真器之间的模型并不总是兼容的;它们必须为特定的仿真器进行筛选。SPICE模型是由SPICE仿真器使用的基于文本描述的电路器件,它能够用数学预测不同情况下,元件的电气行为。SPICE模型从最简单的对电阻等无源元件只用一行的描述到使用数百行描述的极其复杂子电路。SPICE模型不应该与pSPICE模型混淆在一起。pSPICE是由OrCAD提供的专用电路仿真器。尽管有些pSPICE模型是与SPICE兼容的,却并不能保证其完全兼容性。SPICE是最广泛使用的电路仿真器,同时还是一个开放式标准。什么是电磁干扰(EMI)和电磁兼容性(EMC)电磁干扰(Electromagnetic Interference),有传导干扰和辐射干扰两种。传导干扰是指通过导电介质把一个电网络上的信号耦合(干扰)到另一个电网络。辐射干扰是指干扰源通过空间把其信号耦合(干扰)到另一个电网络。在高速PCB及系统设计中,高频信号线、集成电路的引脚、各类接插件等都可能成为具有天线特性的辐射干扰源,能发射电磁波并影响其他系统或本系统内其他子系统的正常工作。自从电子系统降噪技术在70年代中期出现以来,主要由于美国联邦通讯委员会在1990年和欧盟在1992提出了对商业数码产品的有关规章,这些规章要求各个公司确保它们的产品符合严格的磁化系数和发射准则。符合这些规章的产品称为具有电磁兼容性EMC(Electromagnetic Compatibility)。什么是信号完整性(signal integrity)信号完整性是指信号在信号线上的质量。信号具有良好的信号完整性是指当在需要的时候,具有所必需达到的电压电平数值。差的信号完整性不是由某一单一因素导致的,而是板级设计中多种因素共同引起的。主要的信号完整性问题包括反射、振荡、地弹、串扰等。什么是反射(reflection)反射就是在传输线上的回波。信号功率(电压和电流)的一部分传输到线上并达到负载处,但是有一部分被反射了。如果源端与负载端具有相同的阻抗,反射就不会发生了。源端与负载端阻抗不匹配会引起线上反射,负载将一部分电压反射回源端。如果负载阻抗小于源阻抗,反射电压为负,反之,如果负载阻抗大于源阻抗,反射电压为正。布线的几何形状、不正确的线端接、经过连接器的传输及电源平面的不连续等因素的变化均会导致此类反射。什么是串扰(crosstalk)串扰是两条信号线之间的耦合,信号线之间的互感和互容引起线上的噪声。容性耦合引发耦合电流,而感性耦合引发耦合电压。PCB板层的参数、信号线间距、驱动端和接收端的电气特性及线端接方式对串扰都有一定的影响。什么是过冲(overshoot)和下冲(undershoot)过冲就是第一个峰值或谷值超过设定电压——对于上升沿是指最高电压而对于下降沿是指最低电压。下冲是指下一个谷值或峰值。过分的过冲能够引起保护二极管工作,导致过早地失效。过分的下冲能够引起假的时钟或数据错误。什么是振荡(ringing)和环绕振荡(rounding)振荡的现象是反复出现过冲和下冲。信号的振荡和环绕振荡由线上过度的电感和电容引起,振荡属于欠阻尼状态而环绕振荡属于过阻尼状态。信号完整性问题通常发生在周期信号中,如时钟等,振荡和环绕振荡同反射一样也是由多种因素引起的,振荡可以通过适当的端接予以减小,但是不可能完全消除。什么是地电平面反弹噪声和回流噪声在电路中有大的电流涌动时会引起地平面反弹噪声(简称为地弹),如大量芯片的输出同时开启时,将有一个较大的瞬态电流在芯片与板的电源平面流过,芯片封装与电源平面的电感和电阻会引发电源噪声,这样会在真正的地平面(0V)上产生电压的波动和变化,这个噪声会影响其它元器件的动作。负载电容的增大、负载电阻的减小、地电感的增大、同时开关器件数目的增加均会导致地弹的增大。由于地电平面(包括电源和地)分割,例如地层被分割为数字地、模拟地、屏蔽地等,当数字信号走到模拟地线区域时,就会产生地平面回流噪声。同样电源层也可能会被分割为2.5V,3.3V,5V等。所以在多电压PCB设计中,地电平面的反弹噪声和回流噪声需要特别关心。在时域(time domain)和频域(frequency domain)之间有什么不同时域(time domain)是以时间为基准的电压或电流的变化的过程,可以用示波器观察到。它通常用于找出管脚到管脚的延时(delays)、偏移(skew)、过冲(overshoot)、下冲(undershoot)以及建立时间(settling times)。频域(frequency domain)是以频率为基准的电压或电流的变化的过程,可以用频谱分析仪观察到。它通常用于波形与FCC和其它EMI控制限制之间的比较。什么是阻抗(impedance)阻抗是传输线上输入电压对输入电流的比率值(Z0=V/I)。当一个源送出一个信号到线上,它将阻碍它驱动,直到2*TD时,源并没有看到它的改变,在这里TD是线的延时(delay)。什么是建立时间(settling time)建立时间就是对于一个振荡的信号稳定到指定的最终值所需要的时间。什么是管脚到管脚(pin-to-pin)的延时(delay)管脚到管脚延时是指在驱动器端状态的改变到接收器端状态的改变之间的时间。这些改变通常发生在给定电压的50%,最小延时发生在当输出第一个越过给定的阈值(threshold),最大延时发生在当输出最后一个越过电压阈值(threshold),测量所有这些情况。什么是偏移(skew)信号的偏移是对于同一个网络到达不同的接收器端之间的时间偏差。偏移还被用于在逻辑门上时钟和数据达到的时间偏差。什么是斜率(slew rate) Slew rate就是边沿斜率(一个信号的电压有关的时间改变的比率)。I/O的技术规范(如PCI)状态在两个电压之间,这就是斜率(slew rate),它是可以测量的。什么是静态线(quiescent line)在当前的时钟周期内它不出现切换。另外也被称为"stuck-at"线或static线。串扰(Crosstalk)能够引起一个静态线在时钟周期内出现切换。什么是假时钟(false clocking)假时钟是指时钟越过阈值(threshold)无意识地改变了状态(有时在VIL或VIH之间)。通常由于过分的下冲(undershoot)或串扰(crosstalk)引起。