news 2026/9/24 3:34:41

Cadence IC618+180nm PDK双平衡吉尔伯特混频器仿真全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cadence IC618+180nm PDK双平衡吉尔伯特混频器仿真全流程

前阵子做课程项目,正好需要把一个双平衡吉尔伯特混频器完整的跑通。我选了Cadence IC618这个版本,配套180nm PDK,从画原理图到仿真,一路踩了不少坑,最后总算把转换增益、波形和收敛问题都理顺了。这篇就是记录我实际操作的全过程,不绕弯子,直接按步骤来。如果你手上也有一份180nm PDK,想用IC618仿真双平衡吉尔伯特混频器,又不知道从哪下手,照着这篇文章走一遍,基本能把整个流程摸清楚。适合刚接触射频仿真的研究生、准备毕设的电子类学生,以及要从版图前仿真开始学混频器设计的工程师。

1. 设计目标与整体思路:为什么非要选这个结构

1.1 双平衡吉尔伯特混频器的核心工作过程

吉尔伯特混频器的本质是“跨导级把电压变成电流,开关级把电流按本振频率换向,负载再把电流变回电压”。一个典型的CMOS双平衡结构包含三部分:底部尾电流源管M7、射频输入差分对M1/M2、以及顶部交叉连接的本振开关管M3到M6。

射频信号加在M1/M2的栅极上,它决定了两条路径里电流的差值。本振信号控制M3到M6,周期性地让电流从左路跑到右路。因为开关是交叉连接的,输出负载两端得到的电流差等于射频电流乘以一个+1/-1的周期方波。理想方波做傅里叶展开后,一次谐波的系数是4/π,混频时能量分散到各个边带上,最终落在中频上的等效系数是2/π。所以理想转换增益可以写成:

Av_cv = (2 / π) * gm * RL

这里的gm是M1/M2的跨导,RL是单端负载电阻。这个公式特别重要,因为它告诉我们两件事:第一,跨导越大增益越高;第二,负载电阻越大增益越高。但实际电路中这两个参数都受电源电压和线性度限制,不可能无限加。

1.2 双平衡结构相比单平衡到底好在哪

选双平衡而不是单平衡,主要看中三点。首先是本振到输出的泄漏,双平衡结构里LO信号在输出端会相互抵消,尤其偶次谐波理论上可以消掉,这对后级IF处理很有帮助。其次是射频到输出的偶次失真,双平衡也能抵消一部分,能有效降低二阶交调分量。第三是端口隔离度,整体要比单平衡好很多,这在系统链路里非常关键。

代价也很明显:多了一组开关管,堆叠管数增加了,对电源电压要求更高。180nm工艺用1.8V电源,设计时只要把偏置点安排好,还是能跑得比较好。很多刚接触电路的同学容易纠结“为什么非要用4个开关管”,其实就是用面积和电压余量换隔离度和线性度,在射频接收机里这笔买卖是划算的。

1.3 180nm PDK加IC618的组合为什么经典

Cadence IC618是目前模拟RF设计比较常用的平台,界面和仿真器集成度比老版本舒服不少。ADE Explorer、Calculator、波形窗口和PDK的适配都很成熟,对于混频器这种需要进行瞬态和频谱分析的结构,操作起来顺手。

180nm工艺虽然不是最先进的,但它的PDK成熟、模型稳定,而且学校和企业里资源多。对学习混频器来说,180nm的阈值电压、迁移率、功耗和速度都比较“友好”,不会因为工艺过于先进导致一堆二阶效应干扰学习。所以我个人觉得,如果是第一次上手混频器仿真,180nm PDK加IC618是一个很稳的起点。

2. 环境准备与PDK配置

2.1 软件栈和版本注意事项

我使用的环境是Cadence IC618,仿真器是Spectre,PDK是180nm RF CMOS工艺库。实际版本号不重要,但尽量保证MMSIM版本和IC618匹配,否则仿真器可能起不来。安装PDK时,需要把PDK的库路径加到启动目录下的cds.lib或者lib.defs里。很多PDK安装包会自带cds.lib,安装完成之后会提示你把某个路径加到用户目录里。

在开始画电路之前,先检查三个东西:Library Manager里能不能看到PDK库,原理图库里有没有nch、pch、电阻和电容;Model Library配置里有没有指向PDK的spectre模型文件;Create Symbol的时候能不能正常生成。如果这三步都没问题,环境基本就算通了。

2.2 新建库并挂接PDK

打开IC618,进入Library Manager,然后执行:

File -> New -> Library

库名我习惯叫mixer_tb,然后选择“Attach to an existing technology library”,在列表里选中PDK提供的工艺库。如果PDK安装正确,这里会看到对应的technology库。这个步骤不能省,否则后面画原理图会提示缺少工艺文件,或者器件模型加载不进去。

新建完成后,在mixer_tb库下面新建一个cell,命名为gilbert_mixer,工具类型选schematic。进入原理图编辑器之后,就可以从PDK库里调用晶体管了。

2.3 模型库和仿真器设置

画图只是第一步,真正仿真时要把PDK的模型装进Spectre。在ADE L或者ADE Explorer里选择:

Setup -> Model Libraries

把PDK的xxxx.lib或者spectre.scs文件加进去,路径一般类似$PDK_DIR/models/spectre/。有些PDK还有SS、TT、FF角文件,也要一并加好,仿真时通过section选择。这里最容易出问题的是只把原理图库挂上,忘记加载模型库,最后仿真报一堆“device not found”或者“model undefined”。这个问题我后面单独写一节,因为遇到的人真的非常多。

3. 电路参数设计与原理图绘制

3.1 先定指标和拓扑参数

我设计的混频器用于2.4GHz射频接收机,本振频率2.5GHz,中频取100MHz,电源电压1.8V。目标转换增益大概10dB左右,电流功耗控制在2.5mA以内,这样整个单元功耗约4.5mW,作为教学和初版验证比较合适。

参数项设计值说明
VDD1.8V180nm工艺标准电源
RF频率2.4GHz射频输入信号
LO频率2.5GHz本振信号
IF频率100MHz取LO与RF之差
尾电流Itail2.5mA由M7决定
负载电阻RL600Ω每边一个多晶电阻
M1/M2尺寸20μm/0.18μm射频跨导管
M3-M6尺寸16μm/0.18μm本振开关管
M7尺寸40μm/0.18μm尾电流源管

这些参数不是随便写的。180nm工艺下,NMOS阈值电压大约0.45V,电子迁移率约400μA/V²。如果让M1/M2每管流过1.25mA电流,宽长比取20μm/0.18μm,计算出来的gm大概在10.5mA/V左右。按公式(2/π)gmRL计算,理论转换增益约12dB,留了一点裕量给寄生和开关损耗,实际仿真结果会更低一些,这很正常。

3.2 偏置点和管子尺寸的具体计算

M7作为尾电流源,栅极接直流偏置。我希望它工作在饱和区,Vdsat取0.2V以上,这样对共模扰动不敏感。用饱和区电流公式估算:

Id = 0.5 * μnCox * (W/L) * (Vgs - Vth)^2

取Vgs=0.7V,Vth=0.45V,过驱动电压0.25V,μnCox约400μA/V²,W/L取40μm/0.18μm,计算得到Id约2.8mA。实际仿真时如果发现电流偏大或偏小,只需要微调M7的栅极电压即可。

M1和M2是电流截止的核心,gm要尽量大,但也不是越大越好。管子太宽会引入大寄生电容,直接影响射频输入端的高频特性和本振开关速度。经过折中,我把M1/M2总栅宽取20μm,采用4根5μm的finger,也就是叉指结构。这样既能降低栅电阻,又能改善匹配。

M3到M6开关管不用做太宽,16μm/0.18μm就够。开关管太宽虽然导通电阻小,但寄生电容大,会加大本振到输出的耦合,且开关工作点切换时间长。在180nm下,这个尺寸在0.6V本振摆幅下能够比较快地切换,仿真下来没有明显挂起。

负载电阻用PDK里的多晶电阻,阻值600Ω。选600Ω是因为它带来的直流压降是:

Vdrop = 1.25mA * 600Ω = 0.75V

所以输出共模点大约在1.05V,这个电压足够保证上面的开关管和下面的跨导管都处于饱和区。如果RL加到1000Ω,增益会高,但输出共模只剩0.55V,线性度和工作点都会出问题。

3.3 原理图连线细节

画原理图时,我建议严格保持对称。M3和M4是一对开关,源极接M1的漏端;M5和M6是另一对开关,源极接M2的漏端。M3漏端和M5漏端接同一个负载电阻R1,M4漏端和M6漏端接另一个负载电阻R2。输出差分信号从两个负载的下端取出,记为if_out_p和if_out_n。

本振信号要交叉连接:LO正相接到M3栅和M6栅,LO反相接到M4栅和M5栅。这个交叉如果不仔细很容易画错,画完后最好检查一下网络名:两个LO输入必须在开关管栅极处交换,不然输出到本振的隔离度会明显变差,仿真波形也会对不上。

底部M7的漏端接到M1和M2的公共源端,M7源端接地,栅极接Vbias。Vbias用直流电压源提供,电压从DC仿真结果里读,不够就调。为了让电路先跑通,我没有加ESD保护和输入匹配网络,属于纯混频器核心验证,这个阶段不需要。

3.4 测试激励怎么加

射频输入是差分信号。用一个直流电压加正弦波的source会比较直观,我习惯把RF正端和负端各放一个vsource:

VRF_P (rf_in_p 0) vsource type=sine dc=0.8 ampl=20m freq=2.4G VRF_N (rf_in_n 0) vsource type=sine dc=0.8 ampl=20m freq=2.4G phase=180

RF信号幅度用20mV峰值,相当于差分幅度40mV。实际功率大约是-30dBm级别,对于第一次验证足够小,不会引起明显压缩。差分的好处是共模噪声和电源扰动在理想仿真里能抵消一部分,更接近真实双平衡工作状态。

本振信号类似,但幅度要大得多,保证开关管完全切换。我取直流0.9V,峰值0.6V,也就是LO高点1.5V、低点0.3V:

VLO_P (lo_in_p 0) vsource type=sine dc=0.9 ampl=0.6 freq=2.5G VLO_N (lo_in_n 0) vsource type=sine dc=0.9 ampl=0.6 freq=2.5G phase=180

如果有条件,更规范的做法是用port加上拉下网络。但仿真初期用理想电压源就行,关键是把工作流程跑通。

4. 仿真实操:从瞬态到指标测试

4.1 先用DC仿真检查静态工作点

所有东西画完,我强烈建议先跑DC,不要直接跑瞬态。在ADE里选择:

analyses -> dc

把输入电压源设为正常值,勾选“Save DC Operating Point”。仿真结束后,打开results里的DC Operating Points,查看以下关键节点的电压:

  • M7的漏极电流,也就是尾电流,应该接近2.5mA;
  • M1/M2的漏极电压,对应开关源节点,大概在0.8V上下;
  • 两个输出节点Vout_p和Vout_n,应该都在1.05V左右;
  • 所有MOS管都工作在饱和区。

如果DC工作点不对,问题多半出在偏置或者管子尺寸。我遇到过输出共模点掉到0.5V以下的情况,查下来是RL画成了3000Ω,而不是600Ω。这种低级错误在原理图阶段不会报错,但一到DC就藏不住了。

4.2 瞬态仿真配置与波形观察

DC没问题以后,再加瞬态分析:

analyses -> tran

设置stop time为100ns,maxstep为10ps。2.5GHz本振的周期是0.4ns,10ps步长意味着一个周期采样40个点,精度足够。如果后续要看噪声或者更精细的频谱,可以把maxstep改到2ps,但仿真时间会翻倍。

跑完之后,在输出栏里plotif_out_pif_out_n,再在Calculator里做一次v(if_out_p) - v(if_out_n)。混频器输出通常是差模信号,单端波形会因为共模和本振泄漏而显得很乱,差分波形才干净。波形幅度应该是包络为10ns周期的信号,因为IF是100MHz,对应10ns;同时载波和本振频率附近的高频分量也存在,看起来像调制波,这是正常的。

4.3 用FFT读取转换增益

快速验证转换增益,最直接的办法就是对差分输出做FFT。打开Calculator:

vt = v(if_out_p) - v(if_out_n) fft(vt)

计算窗口我习惯选最后20ns到80ns这一段,避免起始瞬态影响。FFT点数取4096,窗函数用Hanning,这样频谱泄漏小。读取100MHz处的幅度值,这个值就是输出中频分量的峰值。

输入差分RF幅度是40mV峰值。如果FFT读出的100MHz分量是160mV峰值,转换增益就是:

gain = 20 * log10(160 / 40) ≈ 12dB

这个数可以跟手算的公式对照。理想情况是12dB左右,实际能做到5到8dB已经很正常,因为开关非理想、寄生电容和偏置都会吃掉一部分增益。如果差得太多,先查本振摆幅是否足够大,再查负载电阻实际阻值。

4.4 用PSS加PAC做更规范的变频增益

瞬态加FFT适合快速看结果,但如果要扫频或者测压缩点,还是用PSS加PAC更高效。逻辑是这样:本振是大信号,用来做周期稳态;射频是小信号,用来做交流分析。所以在PSS里只让LO源作为大信号参与,RF源在PSS阶段基本不起作用,然后在PAC里把RF作为小信号源,扫描2.39GHz到2.41GHz,最后看输出在100MHz处的响应。

具体操作时,在ADE里加PSS分析,beat frequency设成LO频率2.5GHz,harmonics数量给7,让本振的几次谐波被计算到。PSS收敛后,再加PAC分析,输入选择RF正负端口,输出选择差分输出,边带频率填100MHz。跑出来的曲线在2.4GHz频点上的值,就是该RF频率到IF端口的变频增益。

不同版本Cadence的菜单名稍微有差异,但原理都是“大信号定周期工作点,小信号算传递函数”。如果PSS不收敛,可以把tstab时间加长,或者先让LO幅度从0慢慢爬升,这是常用的收敛技巧。

4.5 1dB压缩点和线性度怎么快速看

混频器不是放大器,但同样关心输入功率大了之后增益会不会压缩。想快速估1dB压缩点,可以把RF信号幅度设成一个变量,比如RF_amp,然后在ADE里做parametric sweep。从20mV开始扫到200mV,每个点跑一次瞬态,再用FFT读取100MHz分量,最后画出转换增益随输入幅度的变化。

增益比小信号值跌了1dB对应的输入幅度,就是输入1dB压缩点。实际仿真中,这通常发生在输入RF幅度接近尾电流摆幅限制的时候。180nm下这个电路大概在-10dBm到-5dBm之间,比理论值低是正常的。

至于IIP3,需要双音测试。RF端口同时加2.4GHz和2.401GHz两个小信号,中频会落在99MHz和100MHz,再看三阶交调分量。这个在瞬态里仿真比较慢,有条件直接用HB或者QPSS。教学阶段先把转换增益和压缩点搞定就够用了。

4.6 噪声仿真先不要急

混频器噪声仿真比LNA复杂,因为要区分SSB和DSB,还涉及折叠噪声。如果你只是想验证混频功能,可以先跳过pnoise。等转换增益和线性度都正常了,再用pnoise分析,输入端口选RF,输出端选中频,噪声类型选sources,基于PSS结果跑。第一次跑出来噪声系数会偏大,不用慌,先看数量级对不对。

5. 常见问题与排查技巧实录

5.1 仿真报“器件未定义”或者“model undefined”

这个是我见过最多的问题。明明原理图里管子画得好好的,一仿真就报找不到器件。绝大多数情况是模型库没加载,或者加载的库不对。解决思路就两步:

  • Setup -> Model Libraries里检查PDK的makefile路径是否存在;
  • 到技术库设置里确认当前schematic所依赖的工艺库是PDK库,而不是一个空库。

另外一个坑是多库混用。比如从analogLib拖了一个nmos,又用PDK的RFnm,两者模型名不同,Spectre没法统一。建议全部使用同一PDK的射频管子,别混搭。

5.2 瞬态仿真不收敛

混频器开关管多,瞬态不收敛确实常见。我常用的处理手段是按优先级来:

  • 先把maxstep调小,比如从10ps改成5ps;
  • 把tran的tstab加长,不要一上来就看输出,先让电路稳定;
  • 给偏置电压源不用阶跃信号,用带一定上升时间的脉冲或sine自然爬升;
  • 如果还不行,在PSS里先跑一个LO-only的状态作为初始条件。

如果电路里加了理想电容,建议在关键节点并联一个很小的电阻到地,比如1GΩ电阻提供直流路径,也能显著改善收敛性。但要注意别影响工作点。

5.3 跑完波形看不到100MHz中频

如果输出端只有2.5GHz或者直流,没有100MHz,先别急着调电路,从测试条件排查。第一,确认RF和LO频率之差确实是100MHz;第二,确认你plot的是两个输出端的差,而不是单端;第三,确认本振直流偏置是否让开关管正常导通。

我自己遇到过一版LO直流给到0.5V,低点直接是负的?DD?,开关管基本处于亚阈值区,输出几乎没中频。后来把DC提到0.9V,波形立刻正常。开关级工作状态是整个混频器最敏感的地方。

5.4 工作点不对导致输出共模漂移

输出共模点如果严重偏离计算值,可能是负载电阻值画错,也可能是尾电流没达到设计值。快速定位方法:把RL短路掉,只跑DC看M7电流;如果M7电流对了,再把RL接上看输出共模。这样能区分是电流源问题还是负载问题。

表里列几个我常见的现象:

现象可能原因处理方法
输出共模太低RL太大或尾电流太大降低RL或调低M7偏置
输出共模太高RL太小或尾电流不够增大RL或调高M7偏置
增益几乎为零本振没切换或偏置错误查LO直流和摆幅
波形严重不对称本振交叉连错检查M3-M6接线
直流仿真就报错模型没加载检查Model Libraries

5.5 仿真速度慢到无法忍受

混频器瞬态仿真确实慢,尤其是跑100ns加FFT。如果只是验证基本功能,可以先把stop time降到50ns,只保留后20ns有效数据做FFT。MAXSTEP不要无脑设成0.1ps,那样会等死人。用10ps,对于2.5GHz来说已经够采样了。如果要做参数扫描,优先选PSS或者QPSS,不要在tran里做大规模扫描。

6. 最后再分享几个实操习惯

混频器这种带开关的电路,麻烦点不在原理有多难,而在怎么让仿真稳定、让你看到的结果可信。我个人习惯是把所有管子先放在同一个cell里,用最干净的电源和地,不做复杂的打线。确认每个管子的工作点都对以后,再逐步加入匹配、ESD、寄生等模块。直接上来画完整电路往往问题叠问题,很难排查。

尾电流源M7我一开始用的理想电流源,虽然仿真跑得通,但后来换成真实NMOS管后发现输出共模偏了0.2V。所以建议第一次调试可以先用理想源定位功能问题,但最终仿真一定要换回PDK管子,否则工作点参考价值很低。

还有一个小技巧:仿真的波形截图里最好把LO和RF频率也plot出来,这样能直观看到开关切换是否正常。有时候不收敛或者增益偏低,从时域波形一眼就能看出是开关没切换,不用反复看数值。

如果能忍受收敛问题,不妨把这场仿真从头到尾做完。等熟练了,你还会发现Cadence IC618里很多自动化工具能帮你省时间,但在那之前,手算、原理图、DC、瞬态、FFT这个链路必须亲自走通。混频器设计是个“仿真多、玄学也多”的事,只有自己踩过一遍坑,后面做接收机链路才心里有底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 3:34:06

陶瓷电容DC偏压效应与X5R材料特性深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 3:25:44

STM32做USB Host扩展多路CH340虚拟串口的完整方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 3:23:24

企业员工离职邮箱处置规范:避坑、合规、资产保全指南

在职场管理中,员工离职是每家企业都会遇到的常规人事工作。大多数企业重点回收电脑、工牌、门禁卡这类实物资产,却常常忽略企业邮箱这一份核心数字资产。客户沟通记录、项目往来邮件、商务合同凭证全部沉淀在邮箱之中,一旦处置不当&#xff0…

作者头像 李华
网站建设 2026/9/24 3:19:39

GitHub热榜项目筛选指南:五个共同点识别靠谱开源项目

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华