>
首页 » 技术文章 » EDA软件的几点改进

EDA软件的几点改进

作者:刘在娥 王莹  时间:2006-12-04 19:05  来源:电子设计信息网-www.edires.net
摘要:随着大规模和超大规模集成电路与计算机技术的迅速发展,以电子计算机辅助设计为基础的电子设计自动化技术已渗透到电子系统和专用集成电路设计的各个环节,EDA软件层出不穷。本文以仿真结果与实测结果偏离的现象为出发点,从元件模型和模型参数、数学模型两方面分析了当今流行的EDA软件存在的问题,进而讨论了参数个数与取值、极限与额定参数检查等方面。作为CAD技术的一部分,在分析各种问题的基础上,提出了解决方案。

关键词:EDA;模型;改进

1  问题的提出

随着大规模和超大规模集成电路与计算机技术的迅速发展,以电子计算机辅助设计(CAD) 为基础的电子设计自动化(EDA) 技术已渗透到电子系统和专用集成电路设计的各个环节。然而,在应用各种EDA软件进行电路仿真时,常出现仿真结果与实测结果偏离的情况。目前的EDA程序绝大部分以PSPICE 电路分析程序为内核,常用的有EWB5.0c,PSPICE9.2等。这些软件最大追求目标之一是精度,据此,以下就上述EDA软件所用模型与分布参数几方面作一具体分析。

2  元件模型和模型参数存在的问题及改进方案

2. 1  模型参数个数与取值
随着EDA软件的升级,电路元器件模型不断更新,涉及的模型参数也越来越多。尽管如此,模拟结果还会出现不当之处,原因在于参数取值存在问题。以双极晶体管为例,EDA软件中采用的基本是GP模型。各参数决定了电路元件电流、电压等的取值。在SPICE中,主要模型参数见表1(表中最后一列为常用的2N3940型晶体管的模型参数值) 。


假如所用模型为缺省模型,则由于许多参数值理想化,实际参数数目减少,模型实际变为图1(a)所示的EM1模型。与用于人工估算的微变等效电路相比,考虑了温度对晶体管特性的影响及噪声特性,但各区体电阻均不予考虑,定会影响结果的精度。如果选择实际型号的晶体进行模拟,以2N3904型为例,则模型变为图1(b)所示。此模型已接近GP模型,但仍未考虑B - C结的小电流工作特点,发射极电阻,衬底结电容等因素。

图1  晶体管模型电路
  
上述分析也适用于其他EDA程序。可见,对于缺省参数,因非半导体专业的设计人员常用缺省模型,应使其值比较精确地描述元件各方面的特性。对于给定型号的元器件模型,则应利用各种手段确定精确反映此类元件真实特性的模型参数。必须指出,由于不同的模型参数影响电路的不同特性,因此,在进行仿真时,用户只关心有限的参数,这也要求其他参数的设置尽量合理。

2. 2  极限参数与额定参数检查
由表1可见,虽然模型参数总数其多,种类涉及元件特性的各个方面,但无极限参数,造成程序的容错性不佳。这可从下面对图2所示电路进行仿真的实例看出。仿真所用的741型运放采用双电源供电,分别为±15V ,但仿真时的供电电源明显超出了这个限制。另外,稳压管缺少限幅电阻也是该电路的明显不当之处。然而,仿真软件非但没有报告任何异常,反而仍然给出图2所示的结果。虽然仿真工具的开发者默认用户可避免此例中这类错误,但作为软件,完备性受到了影响。基于此,模型参数应包括极限参数。以晶体管为例,应增加集电极最大允许电流ICM ,集射极反向击穿电压U(BR)CEO,集电极最大允许耗散功率PCM等参数。程序的内部结构相应增加检验上述参数的部分。另外,对于明显的电路连接错误,也应给予相应提示。程序流程图如图3。

图2  有限幅的过零比较器及仿真输出


图3  电路仿真程序流程图

仿真软件中已存在程序块已完成相应的功能,以下以图2电路为例给出改进程序的c + + 源代码。
# include〈fstream〉
# include〈cstring〉
using namespace std ;
∥EDA 软件已有函数声明:
ifstream abstract () ;
∥网单文件生成函数
void spice (ifstream) ;
∥SPICE 电路分析程序
∥以上函数可能与EDA 软件中的函数各不同
bool isSub-sequence(char *p ,char *q) ;
∥判断q 是否为p 的子序列函数
char *word (char *p ,int n) ;
∥返回行p 中第n 个单词
∥以下为新增改进函数
bool connectJudge (ifstream)
∥存在明显连接不当返回1 ,否则返回0
int main() {
  ifstream f ;
f = abstract () ;
if (connectJudge (f) )
  return - 1 ;
spice (f) ;
return 0 ;
}
bool connectJudge (ifstream f) {
char line[100 ] ,junction[20 ] [20 ] ,part [40 ] [10 ] ;
int i = 0 ,k = 0 ,s = 0 ;
bool flag = 0 ;
while (f ,getline (line ,100) )
  if (isSub-sequence (line ,″D″) ) {
∥是否有稳压管
∥保存稳压管两端节点
strcpy(junction[ K] ,word(line ,2) ;)
k + + ;
strcpy(junction[ K] ,word(line ,3) ;)
k + + ;
}
f . seekg(0) ;
for (int m = 0 ;m < k/ 2 ;m + + ) {
  while (f . getline (line ,100) ) {
    if (isSub sequence (line ,junction[2 *m]) ) {  ∥以稳压管端节点为端点
      strcpy(part [ i ] ,word(line ,1) ) ; ∥保存元件名
      i + + ;
    }
    if (isSub sequence (line ,junction[2 *m + 1 ]) ) {
strcpy(part [ i ] ,word(line ,1) ) ; ∥保存元件名
i + + ;
    }
  }
  for (int j = s ;j < i ;j + + )
    if (part [ i ] [o ] = =′R′) {   ∥稳压管连有限流电阻
       s = i ;
       break ;   ∥判断下一稳压管
      }
    flag = 1 ;
    break ;
  }
  return flag ;
}

3  数学模型存在的问题及改进方案

虽然目前的EDA软件的电路图输入以绘图方式进行,但程序根据电路图自动生成与之对应的网单文件。以图4所示单管放大电路为例,PSpice生成的网单文件如下:
****INCLUDING circuit_2SCHEMATICI.net****
*source CIRCUIT_2
R_RI   0   5   1K
V_ Vi 4 0DC 0Vdc AC 1Vac
V _Vcc 106V
Q_Q12 30  Q2N2193A
C_C1 4 3 10u
C_C2 2 5 10u
R_Rb3 2 150K
R_Rc2 1 1k


图4  单管放大电路

可见,网单文件包含电路的所有拓扑信息,即认为电路为集总参数系统,然而,对于许多实际电路,其互连走线密度越来越密,宽度越来越窄,走线就不单纯只是起互连线作用,同时也具有原传输特性,其分布参数对电路延时有很大影响。此外,集成电路中的分布、寄生电容等杂散电容,随着集成化程度的提高,对电路性能的影响日益增强,这就决定了不能把这些电路看成集总参数系统,而应将其看成分布参数系统。

虽然当前一些用于PCB 设计的软件可以进行这方面的分析,但仅从相对独立的角度给出分析结果,电路仿真软件如能与之结合,即布线之后,绘出综合的仿真结果,对电路的设计将大有裨益。这就要求电路的网单文件不仅包括电路的拓扑结构,还应提取出分布参数。另外,描述电路的方程也将由常微分方程变为偏微分方程。沿用标准的网单文件格式:
元件代号元件名端点1 代号 端点2 代号 .. 端点n 代号 元件参数值
如果将均匀传输线作为元件,则其模型中参数将包括传播常数和特性阻抗等,相应的SPICE程序列写的电路方程组中应包含均匀传输线方程。亦可用集总数系统作为模型,目前的许多算法可以应用于这一领域。


相关推荐

武汉争夺半导体产业第三极 引发蝴蝶效应

半导体  EDA  2013-05-28

武汉争夺半导体产业第三极

新思科技  EDA  2013-05-24

新思科技收购微捷码一事达成最终协议

新思科技  芯片设计  EDA  2011-12-02

ARM与Cadence签署了新的EDA技术应用长期协议

Cadence  EDA  2011-10-27

SpringSoft发表Verdi VIA交流平台

SpringSoft  EDA  Verdi  VIA   2011-10-25

MathWorks HDL工具新添Xilinx FPGA硬件验证功能

MathWorks  EDA  Simulator  Link 3.3  2011-06-10
在线研讨会
焦点