环形振荡器 ring vco oscillator 锁相环 pll PLL 压控振荡器 振荡器 集成电路 芯片设计 模拟ic设计 [1]没基础的同学,首先学习cadence管方 电路+仿真教学文档工艺gpdk180nm,很适合新手入门 怎么使用pss+pnoise 还有pstab稳定性仿真 怎么仿真出调谐曲线,相位噪声 功耗,噪声贡献仿真 [2]有了上面基础之后,再实操提升进阶 有四种经典不同结构的环形振荡器实际电路,工艺是smic55nm 有testbench还有仿真状态,直接load即可仿真出波形 振荡器频率范围是3GHz以内 相位噪声是-90到-100 dBc/Hz [3]另外,最后会送眼图,jitter,jee测试方面的资料 会送一份一千多页的ADE_XL的User Guide,2018年,IC6.1.8 前仿真,无版图,
(正文开始)
最近在折腾环形振荡器设计的老铁们举个手!这玩意儿在PLL里可是灵魂部件,今天咱们就聊点实在的。刚入门的朋友建议先搞gpdk180工艺练手,别一上来就冲smic55nm,就像让你用微单之前总得先学会用手机拍照对吧?
先给小白指个路:打开Cadence,把工艺库里的nmos和pmos拖出来搭个三级反相器环。重点来了——仿真设置直接决定你今晚能不能早睡。PSS设置里把beat frequency预估到振荡频率附近,比如1GHz就填0.9-1.1G范围。这里有个坑:tstab参数必须给够,我一般设振荡周期的20倍以上,不然起振波形能给你整出心电图效果(别问我怎么知道的)
跑完PSS立马接pnoise分析,关键参数设置看这里:
pnoise start=1G stop=10G lin 100 + relharm=0 + sweeptype=absolute + useprobes=yes这时候相位噪声曲线要是出现"跳水"式下降,八成是噪声源没选对。记得把VCO的电源和地线都加上noise port,尤其要注意衬底噪声耦合路径。进阶玩家可以试试split式噪声分析,把晶体管的热噪声和闪烁噪声贡献拆开看。
环形振荡器 ring vco oscillator 锁相环 pll PLL 压控振荡器 振荡器 集成电路 芯片设计 模拟ic设计 [1]没基础的同学,首先学习cadence管方 电路+仿真教学文档工艺gpdk180nm,很适合新手入门 怎么使用pss+pnoise 还有pstab稳定性仿真 怎么仿真出调谐曲线,相位噪声 功耗,噪声贡献仿真 [2]有了上面基础之后,再实操提升进阶 有四种经典不同结构的环形振荡器实际电路,工艺是smic55nm 有testbench还有仿真状态,直接load即可仿真出波形 振荡器频率范围是3GHz以内 相位噪声是-90到-100 dBc/Hz [3]另外,最后会送眼图,jitter,jee测试方面的资料 会送一份一千多页的ADE_XL的User Guide,2018年,IC6.1.8 前仿真,无版图,
调谐曲线仿真更是个技术活,得用parametric扫描控制电压。VCO增益(KVCO)的计算别傻乎乎用直线拟合,实际芯片里调谐曲线会有弯曲段。建议用spline曲线拟合,代码类似:
vctrl_val = value(VT("/ctrl_voltage") ?result "tran") freq = deriv(phase)/360 kvc0 = slope(freq vs vctrl_val)当看到KVCO数值在几十MHz/V到几百MHz/V之间跳变,说明你的环形结构可能存在非线性工作区。这时候要考虑加线性补偿电路或者换差分延迟单元结构。
搞定了基础操作,咱们上点硬货——四种经典环形振荡器实战。用smic55工艺跑3GHz时,全NMOS结构功耗能飙到15mW,但相位噪声能压到-95dBc/Hz@1MHz。换成伪差分结构后,功耗砍半但需要额外注意共模稳定问题。这里贴个电流控制型环形VCO的关键代码:
I_ctrl = pacos(1.2*VDD/(R*N*C)) delay_cell (in out vctrl) res = R + Kvco*(vctrl - Vcm)实际调试时发现电源抑制比(PSRR)容易翻车,特别是高频段。解决方法是在每个延迟单元加局部退耦电容,同时用衬底驱动技术抵消衬底噪声影响。
最后提一嘴jitter分析,timeaverage函数用起来比直接测周期靠谱。眼图生成记得把抖动成分拆成随机和确定性两部分,用VerilogA模型注入特定pattern来验证。有次仿真出周期抖动只有3ps,实际流片回来测到12ps,后来发现是衬底噪声模型没校准到位...
(全文完,无结尾说明)