本文整理自 作者:胭脂扣(EETOP username)发在EETOP的论坛连载。去年EETOP微信推送过。之后论坛里又有了相应的更新,现在重新整理更新给大家。 帖子地址: http://bbs./thread-606264-1-1.html 以下是整理之后的正文(为了便于阅读,不同时段的更新用分割线做了分割) 其实这个题目只是一个幌子(现在还没到进阶这一步,怎么能放弃),作为一个小白(小编注:标题里小白加了引号,现在的作者应该早已不是小白了),从这学期开学和导师说了,毕设的方向是PLL,之所以比通常研二上学期才定毕设方向要早半学期,是因为老师和我都知道对于现在自身的基础以及这边实验室能提供的条件都有限,所以希望我自己早点选定方向,早点开始。 对于选择方向,是在去年年底就开始考虑了,权衡了自己导师的生物医学芯片的难度和自己的兴趣,最后还是决定选自己感兴趣的射频方向,以及综合了自己之前稍微有点数字电路的基础,所以选择数模混合的射频方向,从而在今年开学初和导师定了做pll。 既然选定了做pll,就开始要进一步来确定是做哪方面应用的pll。首先,在通信领域的pll非常广,但是绝大部分还是集中在1-5G这个比较常用的波段。因为本科的毕设和导航系统相关,所以贼心不死,毅然决然就要选做导航的射频前端的本振信号。哈哈!!!好任性。。。。 XOR FPD: 1、在相位误差特性上具有高线性度。 1、UP和DOWN的失配降低了线性度 在Σ△ Fractional-N FS中,选择XOR FPD,由于它的高线性度避免折叠Σ△量化噪声,通过提高参考频率,电荷泵噪声和参考杂散馈通的影响会降低。 分解为两个设计阶段: 一. 设计G(f)来实现需要的闭环特性 第一阶段 设计G(f)来实现需要的闭环特性 B 类型 环路滤波器设计 B、选择拓扑结构 C、参数估计 前段时间根据别人论文的Verilog—A建模的pll代码,我在AMS里仿真了,但是觉得有些抽象。所以参考了论坛的一些前辈的建议,选择先使用cppsim工具进行建模,可能这样对环路函数更有直观的感受,当然有些大神建议MATLAB甚至手算,我抱着好用的态度还是先试试cppsim吧。 这周先通过《cppsim_vppsim_primer5》文档大体了解cppsim这一套软件其次阅读《PLL Design Using the PLL Design Assistant Program》,介绍了用该软件来设计pll的流程,摘录了笔记发在了前面。 学了cppsim的基本操作以及在cppsim上设计和仿真小数分频频率综合器的流程之后,开始学《CppSim/VppSim Primer for Cadence》教程,但是在调用cppsim时,出错:未定义功能-runcppsim,也就是说,应该是我在配置cppsim时,有路径或者什么其他问题 上图是教程中的,但是我在操作中,没有出现第二张图 ,而是报错undefined function - runcppsimForm 在昨天仿真锁相环时出现了一个奇葩问题。定义电荷泵的输出电流为100uA,而后面滤波器的电压却是在下降。 对理想模型进行瞬态仿真,得到环路稳定的时间是25+微秒,对于理想模型来说,这个时间是不是太长了?而且环路稳定前的振荡间隔太长,是不是因为我把环路带宽调的太小了(选了100K)。还有,对于理想模型我还可以仿真其他什么参数呢? 25M参考频率,输出3G的瞬态仿真 在pll的Verilog-A建模后,在仿真时,环路滤波器的电压(vco控制电压)的过冲非常明显,应该怎么调整。 说是不知不觉一个月就过去了,可是在黑板上写了倒计时,开始写的40天(回家倒计时)到今天还有11天,每天把数字擦去写上,还是能感觉到时间过得好快。而与时间并不对等的就是我的成果。差不多一个月吧,也该总结一下了。 接下来开始vco的学习与设计,而vco这一块将是接下来的大任务。 经过这一段时间的pll学习与设计,喔!仅仅是建模。现在积累了一些问题有待解决 1、在ken kundert的《Predicting the Phase Noise and Jitter of PLL-Based Frequency Synthesizers》还是不能正确地定义phase类型的端口,以及用white_noise和flicker_noise函数来模拟白噪声和闪烁噪声。 网友 bbbenjamin 提问: LZ你好,我做了一阵子PLL,一些建议: 作者回复: 谢谢指点!其中第一个问题用Verilog-A定义phase端口依旧无法定义!可能是本身软件的问题!其中第二个问题用vco控制电压有过冲的问题,我在把vco换成电路级,就没有过冲了!(不过我不太懂明白为啥)! 最近在做多频带VCO时,发现在设计电容阵列时,出现一个问题。因为我希望频带间隔一致。而f=1/2PI(LC)^(1/2),如果要保证频率是线性的,那么电容阵列变化是非线性的,是一条理想的曲线。 但是电容阵列值应该是符合这个公式。Ctune=K0*C0+K1*C1+K2*C2+K3*C3+K3*C3+K4*C4+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 回复: 有论文就是用的非线性的电容阵列;以使得频率线性。 在DCO 中,因为这样做太麻烦,电容设计自由度有限,难道几十bit 一个一个去调吗? 电容mismatch,会使得想的和得到的不一致。 我看到如果要符合理想的非线性,最好是使用温度计编码(粗调也用它),但是温度计编码的位数等于控制线的个数(32条控制线就要32个开关,而二进制只需要5个开关),这样代价有点高,我的做法是在二进制的基础上,再增加三位开关电容,也就是将理想的非线性曲线分割成两端去逼近的!在后半段,将增加的三位开关电容闭合,从而形成新的一组二进制电容阵列。 上一篇出现了频率缩水的问题,主要是因为对管的寄生电容的影响,因此重新设计电容阵列,方法1:原来的电容阵列是以600M的调频范围去设计的,最后仿真得到的调频范围只有360M,因此增大设计冗余度,以1G的调频范围来计算出新的电容阵列值,最后仿真得到的调频范围为480M。依旧不满足600M的要求; 方法2:仍然按照600M的调频范围来计算电容阵列值,在实际电路中采用两倍的电容计算值,得到的频率范围有600M; 设计了采用二进制权重法的电容阵列来对比线性度和相噪,可以看出线性度得到较好的提高,但是相噪却差了1dB左右; 分析原因:应该是线性化需要6组电容开关,并且为了节省面积,使用与或逻辑重复利用了一些电容阵列,因此相对二进制权重法阵列的4组开关,多出了很多有源器件。相噪因此降低! 后来想了想,把基础知识的学习笔记挪到我的个人eetop上的博客去了,这篇帖子主要用来设计讨论,post一些设计中的问题以及解决方法! 自从2016.06.26在eetop上发了《锁相环从入门到进阶到放弃》的帖子至此已经约好长时间了,也就是从那个时刻开始着手进入锁相环的学习环节。当然在这五个半月中间,除去暑假回家和出差等等花去一个半月,总共在这个项目中投入了4个月,完成了第一阶段--建模,第二 阶段--电路设计,到目前为止,PFD、CP、Divider、VCO整数分频锁相环的所有基本模块的基本电路敲定,环路锁定。 下面进入第三阶段--电路性能优化,虽然基本电路出来了,能够锁定,但是预估性能还是距离目标差很远的。所以整个第三阶段尤为重要,如果说第二阶段的电路设计更多的是学习基本知识,而第三阶段更多是注重思考,很多细节问题将暴露出来。应该说,这一阶段的任务会更加艰巨的。 前一阶段暴露的问题 前天把Divider的电路设计完,替代了原本VerilogA模块,跑了一下环路,结果很意外,直接就锁定了。之后改变分频比,出现了不能锁定的现象,马上根据问题解决了多模分频器的一个bug。比预想的情况还是好很多,原本以为替换完电路之后,要花个好几天来调试电路才能锁定。没想到不需要怎么调试电路。这说明了建模真的很重要啊!!! 好久没来更新了,前段时间一直做AFC,陷进去好久,特别是这样数模混合的仿真开始学还是挺麻烦的。因为我的AFC有一部分是Verilog来写的,在混仿的时候还是建议大家采用AMS吧,虽然开始学的时候比spectreVerilog要复杂一点,但是学会之后,功能要强大许多,特别是debug模式来查看数字模块的内部信号。 好不容易熬到第二阶段了,因为要单独流片VCO,对于单独流片VCO的话,它的辅助电路以及版图布局优化我还是没有经验,希望大神们指点一下。 |
|
来自: 毕杰lb7q1kq7pr > 《待分类》