一、EXL仿真
1. 绘制教程
- 当我们使用EMX仿真提取的时候,会遇到各种各样的问题,很不方便。
- 这里我们介绍一种新的方法——EXL。可以更灵活的跑仿真。
- 我们以带有中和电容的差分电路为例进行介绍
- 在使用EMX的是偶,port是连不到晶体管外围金属上的。因此会搞得版图很乱
- 在新版的Cadence中,更推荐另一种方法是EXL方法,这个方法跟EMX内置仿真器都是一样的,但是它不会破坏原有的版图结构,可以实现更灵活的跑仿真的配置。
进入Layout EXL
- 下面演示新的操作流程
- 首先进入这个界面的时候,需要选择Layout EXL
导入proc文件
- 首先要选择一些conner,这是与EMX设置衬底(proc文件)是差不多的。
- 导入tsmcN65.proc文件
- 选到所在的文件夹下,就会自动取读取该文件夹下的proc文件
- 然后保存
- 新建新的cellview
仿真的设置
-
这里有个细节是,金属线通常在EMX在0.5的情况下,才能仿的比较准。这些我们都是可以在仿真设置中调的。
-
在这里可以设置它的频率范围,及其步进
-
EMX的mesh和thickness都要设置为0.5
选择版图中的symbol
-
如果全点勾的话,就是全提取,那么就是黑箱
-
首先点击右侧栏的左下角的按钮
-
勾选上对应的symbol
-
这里如果版图中的子电路是有symbol的,那么就会显示在右栏中,就可以作为黑盒子排除掉
设置port
-
第二个界面是port界面,点击这个按钮,就是全自动识别版图中的port
-
如果默认的晶体管管心位置不对,是可以在右侧栏更改的
-
然后点击这个按钮,用到衬底取识别这些层
-
选完port之后,可以把这里的某些pin直接设置为reference
-
在做完所有port设置后,点击保存
EMX仿真预览图
- 然后我们要去查看现在仿真EMX时什么样子的,点击这个按钮
- 然后就可以看到,它其实就是把你内部的黑盒子的东西全部去除掉,值保留下了port。
- 这样就不会有长条的port伸出来,看起来会很别扭。
外部添加port
-
外部添加的底层port是被调用的,这是不能被自动识别出来的,需要手动输入P1的port
-
但是我们又不想把图弄得太脏,不想去打散。
-
我们可以这么做,在这里加入port,选择M9层
-
然后点击port
-
然后在port窗口就能识别到了,取名字为INp,
-
加入了之后可以发现,实际的EMX仿真就被刷新了
-
千万不要将port名字带符号,如IN+,否则会出现下面这种情况,会显示错误
开始EMX仿真
-
点击simulation
-
然后点击生成仿真电路图
-
返回library manager中,可以发现工作目录下已经有对应原理图了
-
生成了跟EMX完全一样的原理图了
-
而且这些图是可以过LVS的,因为它的机制本身就是和LVS的QRC绑定在一起的。
-
其保存的路径是相对的路径,也就是保存在原理图所在的路径下
-
仿真完之后的结果会在这个界面以S参数的形式显示
2. 示例
- 将中轴线连在一起
需要看的论文
- 需要看ISSCC2024东京工业大学王川的论文对应的PPT行会有怎么画的详细步骤,在太赫兹的专栏里面。
- 地用底层金属是没关系的
二、ADS dynamic link仿真
ADS dynamic link
- 然后使用ADS 的dynamic link进行动态链接。
- 调用成下面这样的电路图
大信号仿真
- 这里有个很关键的概念是,反向错频率信号输入。这个对应于virtuoso的仿打信号输出阻抗的电路,用了1个pss+pac完成。
- virtuoso的pss对应于ADS就是harmonic balance。RFfreq就是基波频率
- 然后转到small-sig,勾选上
- 它可以在原有的打信号的基础上提供一个频偏的小信号,那么这个时候就可以用小信号在输出端反向注入这个晶体管,就可以得到它的输出阻抗。
- 为什么要偏移一个频率呢?
- 在正常电路分析的时候,应该置零所有信号源,然后再输出加一个交流电流源去看它的电压产生的值,用这个电压值去除以电流值就可以得到它的输出阻抗Zout。但是现在有个问题,此时的输出阻抗是受输入信号功率影响的,所以仿真的时候,输入功率是必须被强制加上去的,因此是不能置零的,因为它会直接影响Zout的值。
- 但是如果不把它置零的话,就会导致一件事情,元件内部的晶体管的gm依然会存在的,gm的频率是RFfrequency。那么从输出端往左看,绝对不是原本的Zout,而是包括了GM*Zout的响应的,因为Vgs没有置零。
- 所以我们需要做的是,我们知道现实世界中是随着频率无限连续变化的。我们可以让他稍微比RFfrequency错位一个1k赫兹或者一个可以被忽略的频率。我们可以认为20GHz+1kHz的输出阻抗近似等于20G的输出阻抗,这是可以的因为其是光滑变化的。但是在20G+1K这个频率显示是没有gm和vgs的,因为其对应的是sinwt,而不是sin(w+1)t。因此我们注入一个sin(w+1)t的电流源去观察其电压,但是此外我们还需要排除掉这个Zload,因为其是两个并联的。这样得到的就是真正的输出阻抗了
-
这里有Zinput和Zoutput
-
Zoutput的表达式就是加了一个小信号和大信号的情况下去进行的提取,
-
这里SM的意思就是在访问small singal里面产生的数据,相当于这个基频也有频偏的。
-
Iload(1,1)表示带有频偏的基频。
-
这里我们用它的电压除以电流,得到的就是输出阻抗与50欧姆并联的结果。
-
然后转化为Rho(ρ)
-
然后就可以显示下面这张图了。不同频率和不同功率对应的曲线。
-
这里可以通过左上角的滑块去调节频率和功率
-
输出阻抗随着输入功率变化的曲线,随着功率的变化,其显然是沿着功率圆在转的。
-
实线(蓝色)不同的位置,随着功率变化,沿着某些圆在转
-
如果我们看这里的等电导圆,我们可以现在从小信号到打信号,其电导是增加的。
-
它的原因是,当漏极信号电压摆幅增加的时候,管子(比如在C类工作,其近似关闭的状态),其Rout是一个较大的值。但是随着功率的增加,信号摆幅也增加了,管子会强行被交流信号给冲开,因此会构成蓝色这样的曲线。这个曲线显示在S参数的反射系数圆上,但他并不是用反射系数来仿真参数的。
-
可以看到在某些偏置点下,输入阻抗(红色点)随着功率的变化,在放大器的模式下,其实是基本不变的。这是因为中和电容屏蔽了Cjd的弥勒效应的影响。而弥勒效应会通过gm进一步影响输入阻抗的虚部,如果把它屏蔽了就只剩下Cjs的影响了。这个情况依然会因为信号功率产生一定的影响,其原因是真正的输入电容cgs,是有栅氧化电容和氧化层下面到body的电容共同决定的。所以它在小信号和大信号不同偏置的时候表现出不同的电容容值
-
实际去做匹配的时候,有两种方式,一种是负载牵引。比如倍频器(二倍频)做一个负载牵引,根据牵引的结果来去选择,从50欧姆匹配到负载牵引匹配出来的值
-
比如这里对中和电容做了负载牵引。会得到PAE圆(相当与时从管子的漏极向右看,得到了一个最优输出功率的值)
-
在偏置在A类的情况下,可以看到有明显的增益压缩,随着输出功率的增加,增益在往下掉。
-
这里需要我们做个实验,将管子偏置在A类,比如Vth是0.3,把vgs设为0.4,如何构造一个上翘的增益曲线。
-
如何利用这样上翘的增益曲线去增大放大器的线性呢?
-
可以看这个模板
-
或者这个模板
-
第二个是关注AM和PM,如果做一些星座图高阶的PA会用到。就是如果输入功率在变化的时候,从输入传输到输出会有个相位延迟or相位响应。如果把变压器也考虑进去,而不只是考虑有晶体管的话,对于一个级联的放大器来说,它的相位频率响应是如何用解析解表达的。
-
引起AM-PM的转化,就是输入信号AEM变大的时候,它会调制PA的相位,产生相位随功率的变化,这种变化会对星座图非常不好的。会让整个星座图在不同的输入功率的情况下进行旋转,跟飞镖的形状,那么这样就全失真了。
-
如何克服这样的现象呢?我们可以往变压器上插入一些变容管的,让其自适应随着
-
此外还有额外的作业是,当得到大信号这个平面曲线后,如何做到自动匹配呢?
-
从仿真的图里面调一个measure equation出来,
-
然后把刚才的两个公式原封不动的抄进来,它的仿真结果出现在dataset数据文件里面。
- 找到ds文件
- dataset中是可以直接访问到上次提取的文件。
- 然后就可以直接把Zoutput带入到term里面
- 如果有相应的数据这里会有弹出的选项可以选。
- 那么在这个term中相当于同时把功率和频率都带进去了。
- 然后再调入一个变量进来,叫做RFpower
Loadpull
- 然后开启优化,同时对频率和功率进行优化扫描。就可以让其收敛。如果不优化就要用PPT最后一页的公式
- 实际上很简单,就是在漏极加上额外的并联电容,可以使得那个圆在功率圆上收敛。
查看案例example
- 最后做一件事情,加上这些寄生之后,与理想的原理图性能相差了多少。
- 点击这里example有很多射频的案例
- ADS中是有现成的example的,因此我们可以直接调用这些example