第三章 查找、调试DC工作点
在运行模拟器、验证网表正确调入后,下一步应找到电路的工作点。查找工作点的步骤如下:
1、执行DC分析
2、评估工作点
3、制定下一步
如果Saber找到所期望的工作点,那么就可以继续进行设计分析的过程,如果没有找到,需要调整设计或DC分析的自变量,并重新运行DC分析。
工作点是一组数值,这些数值定义了在time=0,并且将所有随时间变化的参数以及它们的衍生物设置为0,噪声源和ac源设置为0时,非线性系统的稳定状态。由于所有衍生物设置为0,所以所有随时间变化的元件可以从电路中有效移走(如:电容器视为开路,电感视为短路,所有与时间有关的源有效移走)。在电气电路中,该分析制定了设计的DC偏置值。用DC分析,让Saber计算工作点,存储结果到初始点文件中。
初始点文件有两个作用:
● 它包含了用于其它分析的工作点,Saber用工作点作为时域分析的首个数据点。对小信号频率分析,Saber在工作点周围应用小正弦信号。
● 提供快速检查,以查出可能不正确的部件参数。虽然大多数电路图工具有电气规则检查来验证设计的连接性,但是这些工具不能查出来指定的元件参数,如:如果100kΩ的电阻器上忘记“k”,或者与DC电源连接反向了,设计将会通过检查,但是逻辑是不正确的。
执行DC分析
1、打开DC分析对话框(Analyses>Operating Point>DC Analysis)
2、验证DC分析面板的内容
大多数情况下,Saber用默认设置就可以制定工作点。通常,用默认设置运行DC分析,然后估算结果初始点,决定是否需要修改设计或DC分析处。
3、设置送入到Transcript中的信息
Saber提供下列两处来控制在DC分析过程中,Transcript的反馈信息:
▲ Monitor:如果设为0,Transcript将报告分析的整个执行时间;如果设为-1,Transcript将报告执行概要和时间;如果设为正数,Transcript将报告电路系统的总体信息、运算法则、CPU时间等。
▲ Debug:对Saber计算的每个可能方案进行统计,该特点通常用于当Saber用默认设置不能找到工作点或者要知道设计在工作点上是否收敛。图3-1为工作点分析的面板。
4、设置DC初始点和结束点文件名称,这些地方包含电路开始状态和DC分析结果的文件
▲ Starting Initial Point File:包含在DC分析开始时,所有设计变量的初始值。默认文件名(zero),设置所有连续时间变量(模拟)为0,如果在数字管脚上,事件驱动(数字)或者不定义或者为一个初始值。
▲ Ending Initial Point File:包含在DC分析完成处的节点值,用该文件作为其它Saber分析的初始点文件,如时域(瞬态)和小信号频域(ac)。默认情况下,Saber为该文件命名dc。如果要完成几个重复DC分析,用前一个结束点文件作为下一个运行的初始点文件。该技术减少分析执行时间和增加收敛比率,因为Saber在每个重复上,不得不使所有设计变量为0。下表显示为多个DC分析重复的命名方法:
- 20 -
DC重复分析
DCIP
DCEP
一
Zero
Dc1
二
Dc1
Dc2
三
Dc2
Dc
5、验证DC分析面板中的其它设置
大多数情况下,Saber用默认设置会找到DC工作点。
6、执行DC分析
点击Apply按钮,执行DC分析。成功的DC分析会创建一个End Point File处指定的初始点文件,包含系统中每个节点的电压和电流。
图3-1 工作点分析面板
评估工作点
因为一些设计可包含多个正确的工作点,所以应该评估DC分析的结果,评估工作点,步骤如下:
1、显示工作点报告对话框
在SaberGuide用户界面内,选择Results>Operation Point Report下拉菜单,可以显示在一个工作点报告中的DC分析结果。
2、验证该面板中的内容
通常情况下,该框中默认设置是可以评估工作点
▲ 指定要显示的初始点文件
如果要显示不同的或多个初始点文件,作以比较,可以在Input File Form处指定要显示的初始点文件。
▲ 指定要显示的信号
通过添加节点到Signal List处,可以指定其它节点,在同一信号列表中要加入多个信号,用空格隔开。
●Current Block:当前电路块中的所有信号
●All Toplevel Signals:顶层电路中的所有信号
●All Signals:所哟信号
●Get Selected Signals:从电路中选取的信号
●Append Selected Signals:追加从电路中选取的信号
▲ 显示错误评估信息 - 21 -
当在Display Initial Point Error处指定时,Saber为每个显示的信号写出一个错误评估,除了初始节点值外。错误计算是DC算法的一部分,Saber从dc_err文件中选取信息,不能显示dc_err文件本身。错误值仅对系统变量(如:节点电压)有效,对评估没有用。
3、显示报告
点击Apply按钮执行该框,默认情况下,Saber显示大多数最近计算的工作点文件的值到Report Tool中,当值显示时,可以评估初始点,以决定是否它是有效的。
制定下一步
如果DC分析结果如所期望,那么可以继续其它设计过程:
● 校正DC分析
● 分析初始点是怎样随独立源的变化而变化的
● 验证时域规范
● 用AC分析验证小信号频域规范
如果DC分析结果不是所期望的,从信息中查找原因,可以作如下操作:
● 如果未指定参数导致不正确的DC工作点,用Edit>List/Alter菜单,在网表中改变参数,重新运行DC分析
● 如果是连接性问题导致不正确的DC工作点,必须在电路图中修改问题,重新网表化电路图,将设计重新调入到Saber中,然后重新运行DC分析
● 如果Saber用默认值没有找到工作点,用下节描述的方法调整DC分析自变量
● 如果Saber找到一个不是所期望的工作点,用后面提到的方法调整DC分析自变量
难找到DC工作点时的调整方法
如果Saber用默认值没有得到一个解决方案,可以用下列过程找到工作点:
1、如果得到一个错误的信息,表达一个奇特的矩阵(如:ALG_SINGULAR_JACOBIAN,MAST_NO_NUM EQUATION或者MAST_NO_NUM_REFERENCE),很可能是电路中有错误,用所提供的错误信息,解决问题,重新运行DC分析。
2、验证dcerr文件是否在本目录中创建,不要混淆一个成功的DC分析所创建的dcerr文件和dc_err文件。
3、验证dcerr文件是否包含合理的结果,用Display命令可以显示工作点(di dcerr)。如果dcerr文件不包含合理的结果,看第四步,否则用调试模式和把dcerr文件作为分析的输入来重新运行DC分析。
Dc(debug yes,dcip dcerr
如果DC分析仍然不能找到一个解决方案,检查transcript中的输出,看是否设计是收敛的。
4、检查信号是否在解决方案中解决,如果没有,增加DR_Tsettle和重复动态蔓延收敛,例如:dc(dr_tsettle 1,algstep n algstart dyn_r,debug yes
如果信号仍然没有解决,重复该步,dc_tsettle会是一个较大的值。如果在达到dr_tsettle后,收敛振动,失败,用dcerr文件中的值作为初始点。
5、用一个系数3增加密度,减少截断错误到5m,重新运行动态蔓延收敛,例如:
dc(den 3 , dr_terr 5m , dr_tsettle 1, algstep n , algstart dyn_r , debug yes
Saber找到错误的工作点时
对有多个稳定工作点的系统,如锁存器、触发器、计数器,未偏置的DC分析在多个工作点间或许会“感到困扰”。另一方面,依靠设计,DC分析找到一个工作点或许没问题,但是找到的工作点未必是想要的。对于这些情况,可以用DC分析的Holdnodes,在特殊的
- 22 -
工作点处给DC分析一个“推进”。在制定了让Saber找到解决方案后,重新运行DC分析。看图3-2的例子:
图3-2
该电路有一个不稳定和两个稳定的工作点,两个稳定的工作点是:
● 节点C1是高电平,节点C2是低电平
● 节点C2是高电平,节点C1是低电平
如果运行DC分析,然后用Display命令看结果,如下:
dc
di dc
结果显示如表中A部分:
A
B
time 0
--