【模拟集成电路】鉴频鉴相器设计(Phase Frequency Detector,PFD)
鉴频鉴相器设计(Phase Frequency Detector,PFD)
- 前言
- 一、 PFD的工作原理
- 二、 PFD电路设计
- (1)PFD电路图
- (2)D触发器电路图
- (3)与非门(NAND)电路图
- (4)或非门(NOR)电路图
- (5)反相器(INV)电路
- 三、PFD仿真测试
- PFD测试电路图
- (1)A超前B
- (2)B超前A
- 参考文献:
- 各部分链接链接:
前言
本文主要内容是对鉴频鉴相器(Phase Frequency Detector,PFD) 模块设计设计进行阐述,包括工作原理、电路结构、仿真结果各部分内容。
一、 PFD的工作原理
PFD 作为 PLL 中的关键模块,完成比较输入参考频率freff_{ref}fref与反馈频率fdivf_{div}fdiv的频率与相位的工作,将相位差以电压通断的形式传输到 CP 中,进而对环路滤波器充电和放电。常见的三态鉴频鉴相器的输入输出端口定义如图4-2-1所示。
其状态转换图可以用图4-2-2表示,对于理想的三态鉴频鉴相器而言, UP 和 DN 信号不会同时为高电平。它具有三种工作状态:
状态1:当freff_{ref}fref信号的相位超前fdivf_{div}fdiv信号时,PDF的输出 UP 为高电平矩形脉冲,且脉冲宽度与两输入信号的相位差相对应,在f_ref信号上升沿到来时矩形脉冲开始,在fdivf_{div}fdiv信号上升沿到来时矩形脉冲结束,此时 DN 一直为低电平;
状态2:当fdivf_{div}fdiv的相位超前freff_{ref}fref时,PFD的输出DN为高电平矩形脉冲,且脉冲宽度与两输入信号间的相位差相对应,f_div信号上升沿到来时矩形脉冲开始,freff_{ref}fref信号上升沿到来时矩形脉冲结束,而输出 UP 一直为低电平;
状态3:当信号freff_{ref}fref和fdivf_{div}fdiv完全相位相同时,UP 和 DN 信号一直都是低电平。
状态3:当信号freff_{ref}fref和fdivf_{div}fdiv完全相位相同时,UP 和 DN 信号一直都是低电平。
根据上述的状态转换原理,PFD的输出脉冲的宽度就可以用来量化两输入信号freff_{ref}fref和fdivf_{div}fdiv之间的相位差。图4-2-3给出了上述的工作波形图。
典型的三态 PFD 的结构如图4-2-4所示。它由两个带有复位端的上升沿触发的D触发器和一个逻辑与门组成,D 触发器的数据端 D 总是接高电平。该鉴频鉴相器通过freff_{ref}fref和fdivf_{div}fdiv的时钟上升边沿触发,产生高电平的 UP 和 DN 矩形脉冲信号。UP 和 DN 通过与门提供给D触发器的复位信号 Reset,当 UP 和 DN 均为高电平时复位信号使之恢复为电平。
但在实际的电路中往往会有第四态的出现,以freff_{ref}fref超前于fdivf_{div}fdiv的状态为例:在fdivf_{div}fdiv到来将 UP 信号复位的时刻,DN信号出现了很短暂的脉冲。在当信号freff_{ref}fref和fdivf_{div}fdiv完全相位相同时,UP和DN信号也都会出现这样很短暂的脉冲。出现的原因是,在实际电路中由于存在器件的开关延时,造成了 PFD 的 UP 和 DN 信号通过逻辑与门产生 Reset 信号有一定时间的滞后,并且Reset 信号对 D 触发器的复位同样有一定时间的滞后。和理想状态的区别是由于实际电路中器件的延时造成的。因此,从UP和DN信号被Reset信号通过 D 触发器复位为低电平的过程中产生了 UP 和 DN 信号都为高电平的第四种状态。那么,此时 PFD的工作状态为:
状态1:UP=0,DN=0
状态2:UP=1,DN=0
状态3:UP=0,DN=1
状态4:UP=1,DN=1
考虑到信号复位存在一定的响应时间,所以经过δt时间后,输出的UP和DN才会变成0,其状态转换图如图4-2-5所示:
这种PFD的输出 UP 和 DN 在一段时间内同时处于逻辑高电平时的第四态会使电荷泵的充放电开关同时打开,因而不仅会增加锁相环的功耗,同时会加剧电荷泵的电源噪声,器件热噪声等对 PLL 的相位噪声的恶化。此外还会加剧电荷泵充放电电流失配这一非理想因素给锁相环带来的相位杂散等负面影响。
评价PFD好坏的主要有如下特征:克服死区、高速、低功耗、低噪声和宽线性范围。在实际设计中要折中速度和死区两方面因素来考虑。为了提高PFD电路的速度,减小复位脉冲的脉宽是关键,但对于后接电荷泵的锁相环会导致死区,在实际设计时既需要复位脉冲来克服死区,为了提高速度又尽量减小复位脉冲的宽度。
二、 PFD电路设计
图4-2-6是本次设计的 PFD 实现电路,它由两个边沿触发、带复位功能的 D 触发器、一个与非门和一个反相器组成。针对 PFD 电路中存在的死区效应,我们对传统的 PFD 电路结构进行了优化设计,在复位电路的输入端加上了一个延时单元。该延时单元的作用是,当PFD的两输入信号同频同相时,输出的脉冲有足够的宽度(延迟时间)使电荷泵的充放电开关打开(关断),从而避免死区效应的发生。在加入了该延时电路后,PFD 的输出信号上会出现微小的窄脉冲延时信号,即使在锁定状态下,该脉冲信号依然会存在。如果该脉冲信号过小,将会造成电荷泵输出端电压出现毛刺。因而这个延迟时间必须考虑电荷泵开关的打开与关断时间。同时,在设计尺寸时,采用小尺寸的 MOS 管作为开关管,目的是尽可能减小开关管的寄生电容,减少 MOS 器件的开关时间,从而改善死区。D 触发器实现 PFD 电路的原理图如图4-2-7所示,其中的两个 RS 锁存器交叉耦合。图4-2-8、4-2-9、4-2-10分别给出了 PFD 所用到的模块的具体实现电路。
(1)PFD电路图
(2)D触发器电路图
(3)与非门(NAND)电路图
(4)或非门(NOR)电路图
(5)反相器(INV)电路
三、PFD仿真测试
本文的电路仿真基于 TSMC 0.18μm 工艺库,运用仿真工具 Cadence Spectre 仿真软件进行仿真的,该工艺的电源电压为1.8V。本次 PFD 仿真的测试图如4-2-11所示,脉冲发生器 V16、V17 分别接鉴频鉴相器的 A、B端,分别代表的是参考信号freff_{ref}fref和 VCO 输出信号fdivf_{div}fdiv。
PFD测试电路图
图4-2-12给出了当信号 A 相位超前于 B 信号时的仿真结果。根据上述原理可知,当 A 超前 B 时,在 QA 端将会产生一个跟相位差相关的高电平,直到 B 上升沿到来之时结束恢复为低电平,由于逻辑门传输的延时问题,QB 端在 B 信号上升沿到来时也会有一个短暂的脉冲。仿真的结果表明实验仿真与理论分析一致。
(1)A超前B
同理,信号 B 相位超前信号A相位时仿真结果如图4-2-13所示,其中,脉冲 QA 的存在时必要的,该脉冲传递给 CP 后,经过低频滤波产生恒定的静态电平,使得 VCO 处于合适的静态点 VDD/2,从而确保 VCO 有最大的调频范围。经分析知仿真结果与原理相符。
(2)B超前A
参考文献:
[1]李智群, 王志功. 射频集成电路与系统[M]. 科学出版社,2008.
[2]毕查德・拉扎维. 模拟CMOS集成电路设计[M]. 西安交通大学出版社, 2003.
[3]聂礼通. 射频锁相环中鉴频鉴相器和电荷泵的设计[D].东南大学,2016.
[4]谢吉辉. CMOS锁相环频率综合器的研究与设计[D].重庆邮电大学,2020.
[5]阮予. 超宽频锁相环频率综合器的关键技术研究[D].西安电子科技大学,2020.
分割线 |
各部分链接链接:
频率综合器(Frequency Synthesizer,FS)设计 链接:【模拟集成电路】频率综合器(Frequency Synthesizer,FS)设计
电荷泵(CP)设计 链接:【模拟集成电路】电荷泵(CP)设计
压控振荡器(VCO)设计 链接:【模拟集成电路】宽摆幅压控振荡器(VCO)设计
环路滤波器(LPF)设计 链接:【模拟集成电路】环路滤波器(LPF)设计
分频器(DIV_TSPC)设计 链接:【模拟集成电路】分频器(DIV_TSPC)设计
相关文章:

【模拟集成电路】鉴频鉴相器设计(Phase Frequency Detector,PFD)
鉴频鉴相器设计(Phase Frequency Detector,PFD)前言一、 PFD的工作原理二、 PFD电路设计(1)PFD电路图(2)D触发器电路图(3)与非门(NAND)电路图&…...

【Linux】进程间通信介绍 | 管道
🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉进程间通信…...

这次说说腾讯的一场 35K—55K 的 Android 高工面试
一、面试的由来 事情是这样的,因为跟公司发展一些想法的不同,早在十月份的时候就有了跳槽的想法,但是碍于老大的面子就一直就没有跟人事说出口,打算着等到年后金三银四在试试跳槽。 但是发生一件事终于让我忍不住了,…...

Jenkins第一讲
目录 一、Jenkins 1.1 敏捷开发与持续集成 1.1.1 敏捷开发 1.1.2 持续集成 1.2 持续集成工具 1.2.1 jenkins和hudson 1.2.2 技术组合 1.2.3 部署方式对比 1.3 安装Jenkins 1.3.1 下载Jenkins的war包 1.3.2 开启Jenkins 1.4 Jenkins全局安全配置 1.5 使用Jenkins部…...

变分推断 | MATLAB实现VBMC变分贝叶斯蒙特卡洛模拟的贝叶斯推断
变分推断 | MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断 目录 变分推断 | MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断效果一览基本介绍研究内容模型描述模型设计参考资料效果一览 基本介绍 MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断。变分贝叶斯蒙特卡洛(VBMC)是…...

代码随想录【Day25】| 216. 组合总和 III、17. 电话号码的字母组合
216. 组合总和 III 题目链接 题目描述: 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k 3, n 7 输…...

web中git漏洞的形成的原理及使用
目录 1.Git漏洞的成因 1.不正确的权限设置: 2.代码注入漏洞: 3.未经身份验证的访问: 4.非安全传输: 5.跨站脚本攻击(XSS): 2.git泄露环境的搭建 git init: git add࿱…...

【SPSS】单样本T检验分析详细操作教程(附案例实战)
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...

计算机网络笔记、面试八股(三)—— HTTPS协议
本章目录3. HTTPS协议3.1 HTTPS协议简介3.2 SSL/TLS协议3.2.1 SSL/TLS功能的实现3.3 HTTP和HTTPS的区别3.4 HTTPS协议的优点3.5 HTTPS协议的缺点3.6 HTTPS协议的工作流程3.7 HTTPS是如何解决HTTP的缺点的3.7.1 解决内容可能被窃听的问题——加密3.7.1.1 方法1.对称加密3.7.1.2 …...

浅谈liunx init.d 和 rc.local 两种起动方式
浅谈liunx init.d 和 rc.local 两种起动方式 以rabbitmq 举例 (一).init.d 方式 开机自动重启设置 1.在/etc/init.d 目录下新建一个 rabbitmq [rootlocalhost init.d]# vi rabbitmq具体脚本如下所示: #!/bin/bash # # chkconfig: 2345 …...

元宇宙+教育,正在引发哪些剧烈变革?机会在哪里?丨圆桌实录
图片来源:由无界AI绘画工具生成2月23日,温州元宇宙创新中心为2023年第一批申请入驻的项目企业举办了签约仪式。温州临境网络科技有限公司、温州好玩文化产业有限公司、温州云兮科技有限公司(筹)等企业完成签约。这意味着ÿ…...

追梦之旅【数据结构篇】——详解C语言实现顺序队列
详解C语言实现顺序队列~😎前言🙌预备小知识🙌队列的概念及结构😊1.顺序队列头文件编写🙌2.Queue.c文件的编写🙌1)队列的初始化函数实现😊2)队列的销毁函数实现Ƕ…...
使用自己的数据集Fine-tune PaddleHub预训练模型
使用自己的数据Fine-tune PaddleHub预训练模型 果农需要根据水果的不同大小和质量进行产品的定价,所以每年收获的季节有大量的人工对水果分类的需求。基于人工智能模型的方案,收获的大堆水果会被机械放到传送带上,模型会根据摄像头拍到的图片…...

带组态物联网平台源码 代码开源可二次开发 web MQTT Modbus
物联网IOT平台开发辅助文档 技术栈:JAVA [ springmvc / spring / mybatis ] 、Mysql 、Html 、 Jquery 、css 使用协议和优势: TCP/IP、HTTP、MQTT 通讯协议 1.1系统简介 IOT通用物联网系统平台带组态,是一套面向通用型业务数据处理的系统…...
计算机网络的发展历程
计算机网络的历史可以追溯到20世纪60年代。那个时候,计算机还非常昂贵,只有少数大型机可以被用于处理重要任务。这些大型机通常被安装在大型企业、政府机构和大学中。由于这些机器非常昂贵,许多企业、机构和大学只能通过终端连接来访问它们。…...

【华为OD机试模拟题】用 C++ 实现 - 不含 101 的数(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...
面试题-下单后位置信息上报的方案
面试题:外卖下单后每10min上报位置事件的具体实现方案。需要考虑哪些点。存储方案:考虑到数据量很大,需要快速响应查询请求,建议使用分布式存储方案,如 HBase、MongoDB 等。这些分布式存储系统可以水平扩展,…...

视觉人培训团队把它称之为,工业领域人类最伟大的软件创造,它的名字叫Halcon
目前为止,世界上综合能力强大的机器视觉软件,,它的名字叫Halcon。 视觉人培训团队把它称之为,工业领域人类最伟大的软件创造,它的名字叫Halcon。 持续不断更新最新的图像技术,软件综合能力持续提升。 综…...

干了2年的手工点点点,感觉每天浑浑噩噩,我的自动化测试之路...
作为一个测试人员,从业年期从事手工测试的工作是没有太多坏处的,当然,如果一直点来点去那么确实自身得不到提高,这时候选择学习自动化测试是一件很有必要的事情,一来将自己从繁重的重复工作中解放出来,从事…...

嵌入式系统硬件设计与实践(学习方法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 刚读书的时候,对什么是嵌入式,其实并不太清楚。等到自己知道的时候,已经毕业很多年了。另外对于计算机毕业的学…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...