一、仿真工具的选择
模拟电路的仿真软件并不多,现在常用的就是三家大的EDA公司的Hspice(Synopsys), Spectre(Cadence), Eldo(Mentor)。Eldo我没用过,不好说。Hspice和Spectre各有特点,Spetre图形界面好,使用容易上手,可视化更好;Hspice还是文本形式。不少人喜欢Spectre(如果可以选择的话),不大喜欢 Hspice。这就象UltraEdit和vi一样,多数人喜欢UltraEdit,可有些人是坚定的vi的拥护者。我有点偏向于后者,就是说我更喜欢 Hspice,也喜欢vi。
Hspice的激励需要手写,网表需要先从电路图导出来,可能还要根据需要作些修改。这些看上去比较烦,但只要用熟了,会发现Hspice的功能很强,使用起来也很灵活。Hspice中的一些使用技巧,我以后会列出一些,但大家要想用好,最根本的办法就是熟读manual,不断尝试,遇到问题多动脑筋。
二、仿真中的注意事项
1. 相信仿真结果
当仿真结果与预想差别比较大、或者功能出错时,可能出问题的地方按照概率大小的顺序来讲一般是:A.激励加错; B.电路(netlist)错(包括尺寸选取不合理);C.仿真中的option选项使用不正确;D.程序不够精确。一般情况下,我们还是要相信仿真结果,尽力查找自身可能的错误。也有可能是电路正确而仿真有问题,比如晶振电路的仿真,有时仿真时不起振,实际情况却是可以起振。这种情况一定要反复确认,不要在这里自信心太足。
2. 怀疑仿真结果
实际芯片的测试结果又往往与仿真值有差异,这可能是由于:A. 寄生效应考虑不够完整和准确;B. 实际激励不同于仿真时所加激励;C. 器件自身的噪声难以准确仿真;D. spice model不够准确;
我们需要根据实际芯片的测试结果调整设计,这很重要。
以上两点并不矛盾,希望在工作中细细体会。
3.仿真的完整性
借用信号完整性的概念,仿真要注意完整性。
仿真不全面,说明考虑问题不周全,该作的仿真没有作。其结果甚至是电路的功能都不正确。这里面的东西比较多,需要学习和积累,是模拟电路设计的一个重要方面,也是模拟电路设计者的经验和价值所在。
4. 注意观察中间节点
一类常见的问题是,当有模拟信号到数字信号的转换时,不仅要看输出的数字信号是否正确,还要看模拟信号是否比较“好”。有时虽然输出的数字信号是正确的,可是如果前一级的模拟信号已经很接近数字信号转换的临界状态,那这样的电路很可能是有问题的。这也是设计裕量不足的一种现象。
其实,对应任何模拟电路设计,都要注意中间节点。再比如稳压管,其控制电压在正常工作时都接近于电源或地电平,说明这里已经基本没有margin,实际结果很可能出问题。
这里建议电路中的每个节点的信号都看一遍,看一下是否合理,比如说应该工作在饱和区的晶体管是否完全工作在饱和区,节点电压是否有不正常的毛刺等。 |