首页 » 科学 » 一个“小白”的PLL进修实录——锁相环从入门到进阶到“放弃”(更新版)_电容_阵列

一个“小白”的PLL进修实录——锁相环从入门到进阶到“放弃”(更新版)_电容_阵列

萌界大人物 2025-01-14 11:16:11 0

扫一扫用手机浏览

文章目录 [+]

帖子地址: http://bbs.eetop.cn/thread-606264-1-1.html

以下是整理之后的正文(为了便于阅读,不同时段的更新用分割线做了分割)

一个“小白”的PLL进修实录——锁相环从入门到进阶到“放弃”(更新版)_电容_阵列 科学

实在这个题目只是一个幌子(现在还没到进阶这一步,怎么能放弃),作为一个小白

既然选定了做pll,就开始要进一步来确定是做哪方面运用的pll。
首先,在通信领域的pll非常广,但是绝大部分还是集中在1-5G这个比较常用的波段。
由于本科的毕设和导航系统干系,以是贼心不去世,毅然决然就要选做导航的射频前真个本振旗子暗记
哈哈!


好任性。



好啦!


好啦!


不扯那些没用的了,说一下开这个贴的初衷呗,紧张希望把接下来对付pll学习知识以及动手建模,电路仿真,最好还有电路测试,这个发展周期做一个记录,更主要的是希望在这里能得到前辈的指示,还有同样和我一样开始学习pll新人能相互谈论,共同进步。

XOR FPD:

1、在相位偏差特性上具有高线性度。

2、完备避免了去世区问题

3、更高的PFD噪声和参考杂散

Tristate PFD:

1、UP和DOWN的失落配降落了线性度

2、在reset路径增加延迟单元来避免去世区问题

在Σ△ Fractional-N FS中,选择XOR FPD,由于它的高线性度避免折叠Σ△量化噪声,通过提高参考频率,电荷泵噪声和参考杂散馈通的影响会降落。

分解为两个设计阶段:

一. 设计G(f)来实现须要的闭环特性二. 设计A(f)来实现须要的G(f)

第一阶段 设计G(f)来实现须要的闭环特性

A 带宽、阶数、形状

fo为闭环带宽,fz为开环零点,3dB带宽为2πfp,阶数为滚降特性n

形状取决于滤波器种类(巴特沃斯、贝塞尔、切比雪夫)

对形状的影响最大的成分是主极点

B 类型

定义:开环通报函数的滤波器个数,一样平常为1型或2型,type 1 具有更快的稳定韶光Type2 许可滤波器的输出实现任意直流值,同时强制相位偏差达到0稳定值。
积分器可以实现任意值的直流电平转换

更低的pll带宽可以降落噪声

更高的vco增益可以提高频带调谐宽度

更低的环路滤波器增益可以降落pll带宽

更低的环路滤波器增益可以提高vco增益

Type1 pll没有足够的环路滤波器增益,导致环路滤波器输出 有限,也便是vco的输入范围有限

Type1 pll须要DA来进行掌握电压的粗调,环路滤波器进行细调

Type2 pll具有积分器的环路滤波器可以任意设定直流输出,从而自动调谐全体频率范围

Type2 pll会产生尖峰(peaking)在闭环时,并且增加稳定韶光。
缘故原由在于peaking 值和稳定韶光与开环零点和闭环带宽的比值有关(fz/f0比值提高将增加peakiing 幅度和超调量,在阶跃相应中),一样平常是1/10-1/6

环路滤波器设计

分为三个步骤

A、选择传输函数

B、选择拓扑构造

C、选择传输函数的值

A、选择传输函数

电荷泵电流设定比较自由,它影响环路滤波器的增益。
对pll噪声性能的哀求也将影响电荷泵电流大小,更大的电流将产生更低的鉴相器噪声。
环路滤波器的值或者功耗约束了电荷泵最大电流

B、选择拓扑构造

无源构造:噪声小、功耗低

有源构造:电荷泵不须要宽电压范围、三阶pll不须要电感

In general, there are two design rules that should be followed when using an active loop filter implementation. First, the output of the charge pump should always feed directly into a high-Q capacitor (i.e. a capacitor with minimal series resistance) in order to attenuate its high frequency content before it feeds into the loop filter opamp. The reason for doing so is that the opamp has limited bandwidth and can exhibit nonlinear behavior if it is directly driven with the high frequencies that are present in the charge pump output. The second rule is that the feedback of the opamp should be configured to achieve unity gain from the opamp terminals to its output. By doing so, the input referred noise of the opamp is not amplified in its influence on the loop filter output. The active topologies shown in Figure 11 achieve both of these desired characteristics.

C、参数估计

噪声性能

紧张来源:鉴相器噪声和vco噪声

鉴相器噪声:自身白噪声和杂散,参考频率和分频器的抖动,电荷泵噪声,和参考频率杂散(可忽略)

vco噪声:本身构造的热噪声 在低频时,由闪烁噪声影响,滚降高于-20dB每十倍频,但由于pll动态特性的高通特性,基本滤除了闪烁噪声。

前段韶光根据别人论文的Verilog—A建模的pll代码,我在AMS里仿真了,但是以为有些抽象。
以是参考了论坛的一些前辈的建议,选择先利用cppsim工具进行建模,可能这样对环路函数更有直不雅观的感想熏染,当然有些大神建议MATLAB乃至手算,我抱着好用的态度还是先试试cppsim吧。

这周先通过《cppsim_vppsim_primer5》文档大体理解cppsim这一套软件其次阅读《PLL Design Using the PLL Design Assistant Program》,先容了用该软件来设计pll的流程,摘录了条记发在了前面。
理解了设计流程后,通过《Fractional-N Frequency Synthesizer Design》

学了cppsim的基本操作以及在cppsim上设计和仿真小数分频频率综合器的流程之后,开始学《CppSim/VppSim Primer for Cadence》教程,但是在调用cppsim时,出错:未定义功能-runcppsim,也便是说,该当是我在配置cppsim时,有路径或者什么其他问题

上图是教程中的,但是我在操作中,没有涌现第二张图 ,而是报错undefined function - runcppsimForm这个问题好纠结啊,弄了好久还没弄好,求途经大神指示指示

在昨天仿真锁相环时涌现了一个奇葩问题。
定义电荷泵的输出电流为100uA,而后面滤波器的电压服是不才降。

也便是说电荷泵这个模块是在抽取电流,而不是输出电流。
这个非常的奇葩,我在仿真的时候探测电荷泵输出电流端口的电流大小,显示的是100uA。
于是我其余搭建一个测试电路,用这个电荷泵的输出端加电阻负载(电阻另一端接地),末了创造电阻对地的电压是负的。
而测试电荷泵输出端口的电流还是显示100uA,也就证明了,这里端口电流大小如果为正,那么代表的是外部输入电荷泵的电流(把稳,电流方向是外部向模块内部),只管在模块内部定义这个端口为输出端口。
但事实上,电流的方向不是你定义为输出便是对外部输出的方向,而是相反的。

“奇葩思维”的缘故原由是,我们利用Verilog-A描述措辞,是描述电路,系统也是将它理解为一个电路模块,而真正的电路模块的端口是一个导线,导线是没有方向的。
因此我们默认对一个电路的端口注意灌输电流的方向为正。

对空想模型进行瞬态仿真,得到环路稳定的韶光是25+微秒,对付空想模型来说,这个韶光是不是太长了?而且环路稳定前的振荡间隔太长,是不是由于我把环路带宽调的太小了(选了100K)。
还有,对付空想模型我还可以仿真其他什么参数呢?

25M参考频率,输出3G的瞬态仿真

在pll的Verilog-A建模后,在仿真时,环路滤波器的电压(vco掌握电压)的过冲非常明显,该当怎么调度。

说是不知不觉一个月就过去了,可是在黑板上写了倒计时,开始写的40天(回家倒计时)到本日还有11天,每天把数字擦去写上,还是能觉得到韶光过得好快。
而与韶光并不对等的便是我的成果。
差不多一个月吧,也该总结一下了。

大概花了一周多韶光在cppsim上,然并软!
末了还是选择Verilog-a建模,大概花了一周韶光算了环路参数以及仿真出环路结果。

后面大概又花了一周做非空想建模,也便是考虑相位噪声,抖动,以及电流失落配。
但是没有实现相位噪声建模。

后面大概又花了一周做△Σ调制器,包括理论学习和建模,清楚的记得数模稠浊仿真的方法整整搞了两天,末了创造不是混仿的方法不对,而是数字模块写的不对,这是由于没提前在modelsim中仿真数字模块导致的,原来太自傲数字模块的代码了。
心塞的是,目前这个模块还没写出可靠的代码。
决定暂时搁置。

接下来开始vco的学习与设计,而vco这一块将是接下来的大任务。

细想一下,前面除了走了一些弯路之外,有一个问题是做东西的效率并不高。
须要调度,但是又无从调度,心塞!


有时候会总在一个问题上抠,末了创造问题不在那里!


以是多试试其他方法,多找找其他问题很主要!




经由这一段韶光的pll学习与设计,喔!
仅仅是建模。
现在积累了一些问题有待办理

1、在ken kundert的《Predicting the Phase Noise and Jitter of PLL-Based Frequency Synthesizers》还是不能精确地定义phase类型的端口,以及用white_noise和flicker_noise函数来仿照白噪声和闪烁噪声。

2、在整数分频时,环路虽然稳定了,但是稳定前的过冲电压非常大,高到2.5v,而我电路准备用smic .18的库,以是电路级的掌握电压只可能到1.8v(乃至由于考虑电荷泵等,实际掌握电压到1.4v),不知道会不会到电路级这个模型就崩了?

3、在设计小数分频的△Σ调制器模块中还是有问题,别人的代码不能直接用,修正后,减少量化位数,环路有稳定的迹象,但是掌握电压颠簸太大。
自己根据池保勇的论文中的构造写的代码就完备不能出结果。

4、以上的问题准备暂时不花大量韶光来做,先把vco的学习与设计提上日程,这关系到下半年的流片韶光。

网友 bbbenjamin 提问:

LZ你好,我做了一阵子PLL,一些建议:

1. Cadence自带的ahdl库中有PLL各模块的时域模型,可以参考。
噪声函数可拜会verilog-A的ref,有较详细的解释。

2. 整数环的带宽过小会有较大过冲,可以先用稍大带宽,待锁定检测OK或者等一段韶光之后,环路稳定,再切回窄带宽。
实际CPPLL中过冲大,则CP会进入非线性区,输出电流变小。

3. Sigma-delta代码参考《Integrated Circuit Design for High-Speed Frequency Synthesis》第四章和第九章。

4. 你在后续学习电路过程中碰着的大部分问题,该当可以在Razavi的射频微电子第二版中找到办法。
当然,还有其他的,如果你有些韶光,不妨一读:

Design Methodology for RF CMOS Phase Locked Loops

Phaselock Techniques 3rd

Phase-Locked Loopsesign,simulation and applications

Jitter, Noise, and Signal Integrity at High-Speed...

PLL Performance, simulation and design

CMOS PLLs and VCOs for 4G Wireless 等等等等

作者回答:

感激指示!
个中第一个问题用Verilog-A定义phase端口依旧无法定义!
可能是本身软件的问题!
个中第二个问题用vco掌握电压有过冲的问题,我在把vco换成电路级,就没有过冲了!
(不过我不太懂明白为啥)!
个中第三个问题暂时没有做!

最近在做多频带VCO时,创造在设计电容阵列时,涌现一个问题。
由于我希望频带间隔同等。
而f=1/2PI(LC)^(1/2),如果要担保频率是线性的,那么电容阵列变革是非线性的,是一条理想的曲线。

但是电容阵列值该当是符合这个公式。
Ctune=K0C0+K1C1+K2C2+K3C3+K3C3+K4C4+Cbias,想问用什么样的办法求出各个电容组,而且实际阵列值与空想曲线拟合度更高!

上图是根据f与c的关系得到的空想曲线(纵坐标是C,横坐标是掌握位)网友 hughhuang 提问:

我以为你试图通过让电容非线性变革来担保KV的线性变革是不可取的,由于随着工艺尺寸的减小,很难担保电容器件制作出来的详细数值,尤其是版图不能担保很好地同等性的时候,但相比拟例可以很好地担保(参考电流镜),以是常日做法是采取不同增益的电容阵列,比如CT、FT,乃至有人采取比FT更小KV的电容阵列,用大的电容阵列担保range,用小的电容阵列担保KV线性度(正常的KV曲线只要取的间距足够小,那么可以近似认为是线性的)。
我的建议仅供参考,希望多多谈论共同提高。

作者回答:

我的意思是,常日我们把电容阵列做成按比例增长的,如果电容是按比例增加(也便是线性的),那么出来的频率带的间隔就不是同等的(条件是我们希望每条频带的增益基本不变),比方说第一条频带与第二条频带之间相差80M,而第十五条与十六条的频带之间就相差40M。
也便是频率越高,频带越密集,频率越低,频带越稀疏!
也便是你说的用大的电容阵列来担保频率范围同等性。

如果大电容阵列来担保频率范围同等性,那么电容阵列就该当是非线性的。
你的意思是否是,再增加一组小电容阵列来合营大电容阵列,使得末了总的电容值变革是非线性?

采取非线性电容阵列后得到较为空想的电容阵列值(波折的),并且通过与电感构成LC振荡电路,进行s参数扫描得到与空想的频率范围靠近的直线。

现在想问一下,如果采取非线性的电容阵列有什么弊端?或者二进制权重电容阵列为什么是比较好的选择?

前面两张图都是通过S参数扫描得到的电容值和谐振频率。
但是将设计好的LC Tank并入交叉耦合MOS对中之后,进行PSS仿真,得到的谐振频率大大缩水,该当是什么缘故原由呢?(还是我的设计方法本来就错了?)

上图中,灰色的是pss仿真得到的谐振频率,而橙色是LC Tank的s参数扫描的谐振频率(也便是Y11的虚部为零)版主 JoyShockley 回答:

有论文便是用的非线性的电容阵列;以使得频率线性。

但为了简便,和layout 方便,采取二进制电容阵列。

DCO 中,有Coarse bank (二进制) 和Fine Bank (温度计码);

当PLL开始掌握Fine bank 的时候,频率变革范围不大,近似线性。

在DCO 中,由于这样做太麻烦,电容设计自由度有限,难道几十bit 一个一个去调吗? 电容mismatch,会使得想的和得到的不一致。

我看到如果要符合空想的非线性,最好是利用温度计编码(粗调也用它),但是温度计编码的位数即是掌握线的个数(32条掌握线就要32个开关,而二进制只须要5个开关),这样代价有点高,我的做法是在二进制的根本上,再增加三位开关电容,也便是将空想的非线性曲线分割成两端去逼近的!
在后半段,将增加的三位开关电容闭合,从而形成新的一组二进制电容阵列。

上一篇涌现了频率缩水的问题,紧张是由于对管的寄生电容的影响,因此重新设计电容阵列,方法1:原来的电容阵列因此600M的调频范围去设计的,末了仿真得到的调频范围只有360M,因此增大设计冗余度,以1G的调频范围来打算出新的电容阵列值,末了仿真得到的调频范围为480M。
依旧不知足600M的哀求;

方法2:仍旧按照600M的调频范围来打算电容阵列值,在实际电路中采取两倍的电容打算值,得到的频率范围有600M;

设计了采取二进制权重法的电容阵列来比拟线性度和相噪,可以看出线性度得到较好的提高,但是相噪却差了1dB旁边;

剖析缘故原由:该当是线性化须要6组电容开关,并且为了节省面积,利用与或逻辑重复利用了一些电容阵列,因此相对二进制权重法阵列的4组开关,多出了很多有源器件。
相噪因此降落!

后来想了想,把根本知识的学习条记挪到我的个人eetop上的博客去了,这篇帖子紧张用来设计谈论,post一些设计中的问题以及办理方法!

eetop上个人博客地址---打铁匠---http://www.eetop.cn/blog/1264080

在博客上会记录每次看书看论文的学习条记,欢迎大家示正!

自从2016.06.26在eetop上发了《锁相环从入门到进阶到放弃》的帖子至此已经约好永劫光了,也便是从那个时候开始动手进入锁相环的学习环节。
当然在这五个半月中间,撤除暑假回家和出差等等花去一个半月,统共在这个项目中投入了4个月,完成了第一阶段--建模,第二 阶段--电路设计,到目前为止,PFD、CP、Divider、VCO整数分频锁相环的所有基本模块的基本电路敲定,环路锁定。

下面进入第三阶段--电路性能优化,虽然基本电路出来了,能够锁定,但是预估性能还是间隔目标差很远的。
以是全体第三阶段尤为主要,如果说第二阶段的电路设计更多的是学习基本知识,而第三阶段更多是看重思考,很多细节问题将暴露出来。
该当说,这一阶段的任务会更加艰巨的。

第三阶段--电路性能优化细分任务:

1、根据目前电路的噪声做全体pll的相位噪声拟合

2、探求打破口,也便是找到须要优化的模块

3、前仿tt工艺角性能达标后,进行其他工艺角仿真

4、前仿所有工艺角达标后,进行版图设计

5、根据后仿结果,优化电路以及版图

与第三阶段还有一些并行任务

1、整理设计的宽带vco的内容,完成专利申请

2、整理之前的频率合成器VerilogA建模的内容,完成一篇水文。

前一阶段暴露的问题

1、本身电路中,能用到模电的知识并不是很多,个中PFD和分频器基本全是触发器,以及用数字方法设计的电路。
电荷泵用了最大略的电流镜,vco最基本的交叉耦合。
期间没有涉及到一个放大器的设计,以是在接下来的设计中,要刻意引用更多仿照模块,以便对仿照电路更深更全的学习。

2、对付根本知识的学习过程中,须要更多的回归书本,而不是去找一大堆论文,往后要提醒自己探求更得当的资料。

3、在帖子中,曾许诺要一周一次分享与谈论学习过程中的问题,然而之后并没有做好这一点,往后要更多的整理记录学习的内容,及时在eetop上分享与谈论。

前天把Divider的电路设计完,替代了原来VerilogA模块,跑了一下环路,结果很意外,直接就锁定了。
之后改变分频比,涌现了不能锁定的征象,立时根据问题办理了多模分频器的一个bug。
比预想的情形还是好很多,原来以为更换完电路之后,要花个好几天来调试电路才能锁定。
没想到不须要怎么调试电路。
这解释了建模真的很主要啊!


好久没来更新了,前段韶光一贯做AFC,陷进去好久,特殊是这样数模稠浊的仿真开始学还是挺麻烦的。
由于我的AFC有一部分是Verilog来写的,在混仿的时候还是建议大家采取AMS吧,虽然开始学的时候比spectreVerilog要繁芜一点,但是学会之后,功能要强大许多,特殊是debug模式来查看数字模块的内部旗子暗记。

好不容易熬到第二阶段了,由于要单独流片VCO,对付单独流片VCO的话,它的赞助电路以及版图布局优化我还是没有履历,希望大神们指示一下。

点击阅读原文查看论坛原帖

标签:

相关文章