电荷泵锁相环的相位噪声研究
liebian365 2025-03-10 18:07 6 浏览 0 评论
摘 要:传统的计算锁相环相位噪声方法没有考虑热噪声、闪烁噪声及基准噪声等影响因素,且不能较好地对应于实际电路。为了更好地解决这个问题,提出了一种简单的方法先分别计算各影响因素引起的相位噪声,然后获得比较实用的锁相环电路的总相位噪声。该方法使用特殊的叠加理论,统一各影响因素在一个实际的锁相环电路中的相位噪声传递函数,从而得到锁相环的总相位噪声。为了验证提出的计算公式的有效性,用标准的CMOS 0.25 μm工艺设计了输出时钟为48 MHz的电荷泵锁相环。仿真结果表明,实现了带内相位噪声低于-88.6 dBc/Hz,带外相位噪声为-108.4 dBc/Hz@1 MHz。这些电路仿真结果与理论计算结果基本一致,它们的绝对误差低于2.54 dBc/Hz。
0 引言
随着集成电路技术的迅猛发展,电荷泵锁相环(CP-PLL)由于具有易于集成、低功耗、低抖动等优点,被广泛应用于通信系统、无线电系统、自动控制的时钟数据恢复、频率合成、时钟同步等领域。它的噪声源主要分为两类:(1)参考源的相位噪声;(2)锁相环各个模块的内部噪声。然而,如果不能对电荷泵锁相环的输出信号的相位噪声进行计算,必须等芯片流片后用昂贵的频谱仪来测量。为较大程度上节约设计成本,有必要对电荷泵锁相环的相位噪声研究,预估相位噪声是否达到设计指标。
国内外已发表大量关于锁相环的相位噪声分析文献。文献[1-3]虽然是对锁相环系统的相位噪声进行分析,但仅仅给出压控振荡器的相位噪声计算公式;文献[4]只是简要介绍了锁相环系统相位噪声的分析方法,并没有进行更深入的研究。本文将详细分析并计算电荷泵锁相环系统的相位噪声。
1 锁相环系统的相位噪声
锁相环系统中各个模块都会引入噪声到环路中,但可以利用传递函数来分析各噪声源在系统中的特性。
1.1 锁相环系统的噪声源模型
鉴频鉴相器、电荷泵和环路滤波器每个模块PSS收敛困难[5],因此本文将这三个模块作为整体来进行分析。带有噪声源的锁相环线性模型,如图1所示。
由图1可以得到噪声方程:
由信号系统理论可得:式(3)、式(6)相同为低通函数;式(4)为带通函数;式(5)为高通函数,并且幅度为1。
1.2 锁相环相位噪声的计算
本文采用的是二阶无源环路滤波器,如图2所示。
则:
上式中Ip为电荷泵电流,KVCO为振荡器的灵敏度。
因此,由多个噪声源引起的噪声叠加原理[9]可得:
则可以得到锁相环的总相位噪声计算公式:
由式(10)~式(14)可以计算出电荷泵锁相环系统的相位噪声。
锁相环系统的相位噪声环路带宽内主要由参考源相位噪声决定,环路带宽外主要由压控振荡器的相位噪声决定[4]。由文献[6-8]可以得到压控振荡器的计算公式:
2 仿真结果
本文的电荷泵锁相环设计参数:fREF=6 MHz,Ip=20 mA,C1=6.2 pF,C2=55.8 pF,KVCO=10.1 MHz/V,f0=48 MHz,N=8。图3是电荷泵锁相环各个噪声源的传递函数,图中:1为θref(s)和θd(s)的传递函数,2为鉴频鉴相器、电荷泵和环路滤波器噪声vnf(s)的传递函数,3为θVCO(s)的传递函数。从图3中可以看出1为低通函数,2为带通函数,3为高通函数,fc为带宽。图4是电荷泵锁相环的各个噪声源,图中:1为参考源噪声源θref,2为鉴频鉴相器、电荷泵和环路滤波器噪声源vnf,3为压控振荡器噪声源θVCO,4为分频器噪声源θd。电荷泵锁相环的相位噪声主要由参考源相位噪声和压控振荡器的相位噪声决定。
用Cadence软件对整个锁相环系统进行Spectre仿真,得到的相位噪声如图5所示。在Matlab中的理论计算曲线如图6所示,曲线1是参考源的的相位噪声通过锁相环系统环路后的相位噪声;曲线2是电压噪声通过系统环路的相位噪声;曲线3是VCO的相位噪声通过锁相环系统环路后的相位噪声;曲线4是分频器的相位噪声通过系统环路后的相位噪声;曲线5是整个锁相环系统环路总的拟合相位噪声;曲线6是系统环路通过Spectre仿真得到的相位噪声。将此Spectre仿真的总相位噪声导入Maltab中进行比较,以验证计算公式的正确。由式(10)~式(13)得出的各个噪声源的噪声经过环路后的相位噪声,再由式(14)计算得出总的相位噪声,并将Spectre仿真得到的CP-PLL总相位噪声导入其中进行对比,如图6所示。在图中,曲线1是参考源的相位噪声通过CP-PLL系统环路的相位噪声;曲线2是PFD&CP&LPF的电压噪声通过CP-PLL系统环路的相位噪声;曲线3是VCO的相位噪声通过CP-PLL系统环路的相位噪声;曲线4是分频器的相位噪声通过CP-PLL系统环路的相位噪声;曲线5是CP-PLL系统环路的拟合相位噪声;曲线6是CP-PLL系统环路的Spectre相位噪声。由Matlab拟合出的总相位噪声曲线与Spectre仿真得到的总相位噪声基本吻合,最大误差不超过2.54 dBc/Hz。因此,可以由本文的模型和计算方法进行相位噪声的优化研究。
3 结论
本文详细推导了四级差分环形振荡器的相位噪声计算公式,给出了差分环形振荡器延迟单元的电流模噪声模型。基于此模型得到的相位噪声计算公式,更准确地预估环形振荡器的相位噪声。
在CMOS 0.25 μm工艺下,设计了整数型48 MHz的锁相环系统。通过Matlab进行设计和优化系统的参数,建立了各噪声源的仿真电路模型,用Spectre仿真得到各噪声源的相位噪声 (电压噪声) 。同时,比较和分析了Matlab模拟的相位噪声与Spectre仿真得到的锁相环总的相位噪声,并研究了各噪声源对系统相位噪声的影响,实现了带内相位噪声低于-88.6 dBc/Hz,带外相位噪声为-108.4 dBc/Hz@1MHz。这些电路仿真结果与理论计算结果基本一致,它们的绝对误差低于2.54 dBc/Hz。
参考文献
[1] 毕胜兰,戴宇杰,张小兴.电荷泵锁相环系统相位噪声分析[J].南开大学学报,2008,41(3):101-104.
[2] 孙添平.电荷泵锁相环的设计及其相位噪声优化[D].武汉:华中科技大学,2007.
[3] 赵春.基于噪声分析的电荷泵锁相环设计[D].成都:电子科技大学,2002.
[4] Ali Hajimiri.Noise in Phase-Locked Loops[C].Mixed-Signal Design,2001,SSMSD.2001 Southwest Symposium on,2001:1-6.
[5] 张涛.锁相环频率合成器建模、设计与实现[D].武汉:华中科技大学,2006.
[6] Ali Hajimiri,LEE T H.A general theory of phase noise in electrical oscillators[J].Solid-Stote Circuits,IEEE Journal of,1998,33(2):179-194.
[7] Hajimiri A,LIMOTYRAKIS S,LEE T H.Jitter and phase noise in ring oscillators[J].Solid-Stote Circuits,IEEE Journal of,1999,34(6):790-804.
[8] Ali Hajimiri.Jitter and Phase Noise in Electrical Oscillators[D].Stanford:electrical engineering from Stanford University,1998.
[9] 李炜.锁相环电路的设计及相位噪声分析[D].天津:天津大学,2005.
[10] 严杰锋.电荷泵锁相环的模型研究和电路设计[D].上海:复旦大学,2006.
- 上一篇:原理图checklist
- 下一篇:FFmpeg+SDL视频播放器-图形界面版
相关推荐
- 英特尔发布 SVT-AV1 0.9 开源编解码器,性能提升近一倍
-
IT之家1月23日消息,根据外媒Phoronix报道,1月21日,英特尔与OpenMedia开放媒体联盟,合作发布了SVT-AV10.9版本编解码器,针对CPU编解码...
- 微软要求CPU必须支持SSE 4.2,否则Windows 11 24H2无法启动
-
自Windows11Build26080更新以来,微软就要求用户使用支持SSE4.2的处理器,才能启动Windows1124H2操作系统。这是自Windows11首次推出以来,增加的第二...
- 32、64位版本!揭Ubuntu 14.10系统性能
-
1Ubuntu14.10新平台性能比拼从phoronix.com的消息获悉,Ubuntu的支持人BryanQuigley正在考虑将Ubuntu16.04作为最后一个32位发行版本。2016年4月...
- MCP Server 的 SSE 模式和 Command 模式的详细解读
-
来自用户的提问:什么是SSE模式和Command模式...
- 让CPU更高效 扩展指令集那点事
-
在CPU的一代一代“进化”中,除了频率、缓存乃至核心结构的变化外,有一个不太起眼的升级经常会被小伙伴们忽略,就是“扩展指令集”。指令集很多小伙伴大概耳熟,它就是指挥CPU工作的指令。不过扩展指令集又是...
- Redis高并发缓存架构性能优化实战
-
场景1:中小型公司Redis缓存架构以及线上问题实战线程A在master获取锁之后,master在同步数据到slave时,master突然宕机(此时数据还没有同步到slave),然后slave会自动...
- 万字长文,Redis的十六种实际案例代码!
-
开篇:Redis的隐藏技能树"又双叒叕是缓存击穿?""Redis不就是个缓存吗?""为啥这个功能还要用Redis实现?"如果你的团队里还有人这么想,那这篇文章就是为他们准备的!Redis不仅仅是...
- Qt毫秒级读取Excel文件
-
网上很多QT读取Excel文件方式都是如下形式,太慢了,打开文件+读取文件要6s以上,实在是太慢了!QAxObjectexcel("Excel.Application");exce...
- 五,网络安全IDA Pro反汇编工具初识及逆向工程解密实战
-
一.IDAPro工具简介及初识1.IDAPro简介IDAPro(InteractiveDisassemblerProfessional)简称“IDA”,是Hex-Rays公司出品的一款交互式...
- 手把手教你用20行代码实现植物大战僵尸秒杀僵尸的功能
-
前言:外挂的本质其实就是找到进程中的某个变量或者某行代码的内存地址,然后进行修改,完成其想要完成的功能。这是最基本的要求,当然如果想要深入去学习制作外挂的话,还有很多东西很多内容,首先,你要懂得汇编,...
- inc-by-one之高级漏洞利用技术
-
Author:Netfairy0x00前言什么是inc-by-one?比如有这样的一条指令:incdwordptr[eax+8],这条指令执行的效果是使eax+8地址处的值加1,类似于c语言*(...
- 趣味数学与编程|猴子吃桃问题的倒推与递归
-
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。...
- 软件测试 | 全局变量和局部变量有什么区别?
-
它们之间主要的区别是变量的作用范围不同。全局变量在全局范围内都有效,而局部变量只在声明变量的作用域内有效。全局变量是属于实例的,在初始化对象的时候初始化,生命周期与该实例相同,之所以叫全局变量是因为该...
- C语言变量可以定义在任意位置?那么到底放在哪个位置才最好呢?
-
C语言程序开发不像Python,若是需要使用变量,必须先定义。仔细想一想,C语言这么要求的原因也是容易理解的,至少C程序可以事先知道需要为该变量分配多少内存,这其实也是C语言程序更可控的原因之一。C...
- 国产芯片寄存器必须以汉语命名,以促进汉语化编程普及十四亿人
-
64位模式下,处理器现在只能支持48位的地址,但是理论上,地址最大为64位。从寄存器来看,64位模式与32位最主要的区别如下所示:·16个64位通用寄存器(32位模式只有8...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)