1. 课程导入与设计环境搭建
在开始画第一根连线之前,我们需要先建立两个认知:一是PLL与时钟电路在芯片里究竟承担什么角色,二是Cadence Virtuoso这套工具链如何把"想法"变成可仿真的原理图。本章不追求电路细节,而是把后续29章要反复使用的环境、库结构、仿真调用流程一次性搭好,避免后面每做一次仿真都要重新摸索工具。
1.1 PLL与时钟电路在芯片中的角色
现代数字芯片内部几乎不存在"裸时钟"。晶振或外部参考时钟通常只有几十MHz,而CPU、SerDes、DDR接口需要GHz级时钟,且要求抖动极低、相位关系确定。PLL(锁相环)就是完成"频率合成+相位对齐+抖动过滤"的核心模块。它把低频、干净的参考时钟倍频到高频,同时通过环路带宽抑制参考路径上的高频噪声,输出给后级时钟树。
从信号链角度看,一个典型电荷泵型PLL包含五个关键对象:鉴频鉴相器(PFD)比较参考时钟REF与反馈时钟FB的相位差,输出UP/DN脉冲;电荷泵(CP)把脉冲转换成电流,对环路滤波器充放电;环路滤波器(LF)把电流积分成控制电压Vctrl;压控振荡器(VCO)根据Vctrl输出频率;分频器(Divider)把VCO输出除以N后送回PFD。锁定后满足 f_VCO = N × f_REF,且REF与FB相位对齐。
时钟电路则不止PLL本身。分频器、时钟选择器(glitch-free mux)、时钟门控单元、时钟树缓冲都属于时钟网络。它们决定了时钟到达各触发器时的偏斜(skew)与占空比失真。后续章节会分别处理这些模块,本章只需记住:PLL负责"生成",时钟网络负责"分发",两者共同决定芯片的时序余量。
1.2 Cadence Virtuoso平台概览
Virtuoso不是单一软件,而是一组协同工作的工具集合。做PLL设计时,最常打交道的四个组件是:
- Library Manager(库管理器):管理设计库、单元视图(cellview)。一个库对应一个工艺或一个项目,库内每个cell可以有schematic、symbol、layout、spectre等多个view。
- Schematic Editor(原理图编辑器):绘制电路连接,调用symbol,设置器件参数。PLL的顶层、PFD、CP、VCO都各自是一个schematic cell。
- Symbol Editor:为每个子模块创建符号,定义引脚方向(input/output/inout),供上层调用。
- ADE(Analog Design Environment):仿真控制台,负责选择仿真器、设置分析类型、指定输出、启动仿真并查看波形。
仿真器层面,Spectre是精度基准,适合小规模、高精度验证;APS(Accelerated Parallel Simulator)是Spectre的加速版本,支持多核并行,适合PLL这种需要长时间瞬态仿真的场景。两者共用同一套网表和模型,切换只需在ADE中改仿真器名称。
1.3 创建库与原理图
假设我们使用某65nm工艺,库名定为PLL_LAB。操作路径:CIW窗口 → Tools → Library Manager → File → New → Library,选择"Attach to an existing technology library",绑定工艺库tsmc65lp。这样新建的cell会自动继承工艺的器件模型和层定义。
接着创建第一个cell:在Library Manager中选中PLL_LAB,File → New → Cellview,Cell Name填PFD,View选schematic,Tool选Composer-Schematic。进入原理图编辑器后,按i键调用器件,从工艺库中选择晶体管;按w键连线;按p键放置引脚。PFD的输入是REF和FB,输出是UP和DN,引脚方向分别设为input和output。
完成PFD后,需要为其创建symbol:在原理图窗口 → Create → Cellview → From Cellview,工具会自动根据引脚生成符号框。后续CP、LF、VCO、Divider重复同样流程,最后在顶层PLL_TOP中把这些symbol连起来。
1.4 Spectre与APS的基本调用流程
原理图画完后,从Schematic Editor启动ADE L:Launch → ADE L。在ADE窗口中依次完成以下设置:
- 选择仿真器:Setup → Simulator/Directory/Host,Simulator选
spectre或aps。若选aps,需在Simulation → Options → APS中设置线程数,例如+mt=4表示4线程。 - 设置模型库:Setup → Model Libraries,添加工艺库的
.scs模型文件,并指定工艺角(如tt、ff、ss)。 - 选择分析类型:Analyses → Choose,PLL常用三种分析。瞬态分析(tran)用于观察锁定过程,示例设置
stop=20us、step=10ns;AC分析用于看环路稳定性,需在环路中插入iprobe;PSS/Pnoise用于相位噪声,设置beat freq=1GHz。 - 指定输出:Outputs → To Be Plotted → Select on Schematic,点选Vctrl、VCO输出、UP/DN等节点。
- 运行:Simulation → Netlist and Run,或点击绿色三角。仿真完成后自动弹出波形窗口。
以瞬态仿真为例,若参考时钟50MHz、N=80,则锁定后VCO频率应为4GHz,周期250ps。在波形窗口中测量Vctrl,锁定前会有明显的充放电纹波,锁定后趋于平稳。判断锁定的实用方法是:观察UP和DN脉冲宽度,锁定后两者应基本等宽且极窄;若UP持续宽于DN,说明VCO频率偏低,环路仍在向上牵引。
; Spectre瞬态分析示例设置
tran tran stop=20u errpreset=conservative
; APS加速设置
simulator lang=spectre
aps options +mt=4 +aps=1