首页/新闻资讯/正文详情

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

发布时间:2026/9/24 3:34:47 来源:云帆数科 栏目:资讯中心
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仿真器是SpectrePDK是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取Vgs0.7VVth0.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漏端接同一个负载电阻R1M4漏端和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正端和负端各放一个vsourceVRF_P (rf_in_p 0) vsource typesine dc0.8 ampl20m freq2.4G VRF_N (rf_in_n 0) vsource typesine dc0.8 ampl20m freq2.4G phase180RF信号幅度用20mV峰值相当于差分幅度40mV。实际功率大约是-30dBm级别对于第一次验证足够小不会引起明显压缩。差分的好处是共模噪声和电源扰动在理想仿真里能抵消一部分更接近真实双平衡工作状态。本振信号类似但幅度要大得多保证开关管完全切换。我取直流0.9V峰值0.6V也就是LO高点1.5V、低点0.3VVLO_P (lo_in_p 0) vsource typesine dc0.9 ampl0.6 freq2.5G VLO_N (lo_in_n 0) vsource typesine dc0.9 ampl0.6 freq2.5G phase180如果有条件更规范的做法是用port加上拉下网络。但仿真初期用理想电压源就行关键是把工作流程跑通。4. 仿真实操从瞬态到指标测试4.1 先用DC仿真检查静态工作点所有东西画完我强烈建议先跑DC不要直接跑瞬态。在ADE里选择analyses - dc把输入电压源设为正常值勾选“Save DC Operating Point”。仿真结束后打开results里的DC Operating Points查看以下关键节点的电压M7的漏极电流也就是尾电流应该接近2.5mAM1/M2的漏极电压对应开关源节点大概在0.8V上下两个输出节点Vout_p和Vout_n应该都在1.05V左右所有MOS管都工作在饱和区。如果DC工作点不对问题多半出在偏置或者管子尺寸。我遇到过输出共模点掉到0.5V以下的情况查下来是RL画成了3000Ω而不是600Ω。这种低级错误在原理图阶段不会报错但一到DC就藏不住了。4.2 瞬态仿真配置与波形观察DC没问题以后再加瞬态分析analyses - tran设置stop time为100nsmaxstep为10ps。2.5GHz本振的周期是0.4ns10ps步长意味着一个周期采样40个点精度足够。如果后续要看噪声或者更精细的频谱可以把maxstep改到2ps但仿真时间会翻倍。跑完之后在输出栏里plotif_out_p和if_out_n再在Calculator里做一次v(if_out_p) - v(if_out_n)。混频器输出通常是差模信号单端波形会因为共模和本振泄漏而显得很乱差分波形才干净。波形幅度应该是包络为10ns周期的信号因为IF是100MHz对应10ns同时载波和本振频率附近的高频分量也存在看起来像调制波这是正常的。4.3 用FFT读取转换增益快速验证转换增益最直接的办法就是对差分输出做FFT。打开Calculatorvt 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.5GHzharmonics数量给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 Libraries5.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这个链路必须亲自走通。混频器设计是个“仿真多、玄学也多”的事只有自己踩过一遍坑后面做接收机链路才心里有底。

相关推荐

Palantir本体存储深度拆解:选型指标与分层架构实战
Palantir本体存储深度拆解:选型指标与分层架构实战

/* 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:34:35

Arnis:用OpenStreetMap、NASA数据与GitHub驱动Minecraft的跨域数据引擎
Arnis:用OpenStreetMap、NASA数据与GitHub驱动Minecraft的跨域数据引擎

/* 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:34:35

单电阻FOC中的移相本质:ADC采样时序调整原理与实践
单电阻FOC中的移相本质:ADC采样时序调整原理与实践

/* 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:34:29

IT支持远程效率提升:一个软件替代三个工具
IT支持远程效率提升:一个软件替代三个工具

文章目录先拆需求:远程这件事其实分四类远程协助:不用共享账号的临时连接远程文件:不开桌面直接拿东西异地组网:把内网搬到你面前工具链收敛的实际收益小结做 IT 支持和运维的,大概率都有过这种经历:电脑里… · 2026/9/24 4:17:44

Anthropic发布Opus 5.5,OpenAI同日推两款平价GPT-6
Anthropic发布Opus 5.5,OpenAI同日推两款平价GPT-6

尽管人工智能失控的担忧不断,但两大AI模型厂商并未放慢脚步:Anthropic PBC今日发布了Claude Opus 5.5,并将价格下调20%;几分钟后,OpenAI Group PBC也推出了两款新的GPT-6模型——Sol和Luna,价格仅为上一代同… · 2026/9/24 4:17:38

天问Block图形化编程:STC单片机零基础入门实战指南
天问Block图形化编程:STC单片机零基础入门实战指南

/* 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 4:17:32

全球高考网盘资料
全球高考网盘资料

全球高考资源合集 01(后续会慢慢上传文件) 文件大小: 5.7GB下载链接: https://pan.quark.cn/s/efbb06857895 零分交卷但我惊艳全球&高考失利但我逆天改命(58集)胡曦&张雷含 文件大小: 1.4GB下载链接: https://pan.qua… · 2026/9/24 4:17:01

OV5640实战:从SCCB寄存器配置到DVP与MIPI双接口720p@60调试手册
OV5640实战:从SCCB寄存器配置到DVP与MIPI双接口720p@60调试手册

/* 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 4:16:37

拆解500元AI工牌:ESP32-C3芯片成本不到40元
拆解500元AI工牌:ESP32-C3芯片成本不到40元

/* 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 4:16:30

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码