Xilinx 7系列MMCM/PLL的使用模型

本文展示了MMCM的一些使用模型(同样适用于PLL),如时钟网络去偏斜、具有内部反馈的MMCM和零延迟缓冲区等。

1、时钟网络去偏斜(Clock Network Deskew)

MMCM的主要用途之一是用于时钟网络去偏斜。图3-11和图3-12展示了在这种模式下的MMCM。来自CLKOUT计数器之一的时钟输出用于驱动fabric内部和(或)I/O的逻辑。反馈计数器用于控制输入时钟和输出时钟之间的精确相位关系(例如,如果需要90°相位偏移)。相关时钟波形显示在右侧,适用于输入时钟和输出时钟需要相位对齐的情况。图3-11中的配置最为灵活,但它确实需要两个全局时钟网络。
在这里插入图片描述
CLKFBOUT输出可用于提供反馈时钟信号。当MMCM驱动BUFG和BUFH时,只有同样在反馈路径中使用的那个时钟缓冲器会被去偏移。
在实际应用中,需要确保输入到PFD的两个时钟信号(即参考时钟和反馈时钟)具有相同的频率。这是因为PFD(相位频率检测器)是用来检测这两个时钟信号之间的相位差和频率差的,如果它们的频率不匹配,PFD将无法正常工作,从而导致MMCM无法正确地进行时钟去偏斜和相位对齐。
在这里插入图片描述
举一个例子,如果输入频率ƒIN为166 MHz,D=1,M=6,O=2,那么VCO的频率将是996 MHz,时钟输出频率将是498 MHz。由于在反馈路径中的M值为6,所以PFD的两个输入频率都是166 MHz。
在另一个更复杂的场景中,输入频率为66.66 MHz,D=2,M=30,O=4。在这种情况下,VCO的频率是1000 MHz,CLKOUT输出频率是250 MHz。因此,PFD的反馈频率是1000/30,即33.33 MHz,这与PFD的66.66 MHz/2输入时钟频率相匹配。

2、具有内部反馈的MMCM

当MMCM用作合成器或抖动滤波器,并且MMCM输入时钟和MMCM输出时钟之间不需要特定的相位关系时,MMCM的反馈可以是内部的。由于反馈时钟不会受到核心供电噪声的影响,MMCM的性能会得到提升。当然,CLKIN信号和BUFG上引入的噪声仍然存在(如图3-13所示)。
在这里插入图片描述

3、零延迟缓冲区

MMCM也可以用来生成零延迟缓冲时钟。零延迟缓冲区对于那些需要将单个时钟信号分发到多个目的地,且这些目的地之间需要低偏斜的应用来说是非常有用的。这种配置如图3-14所示。在这里,反馈信号驱动外部芯片,而板上的迹线反馈(the board trace feedback)被设计来匹配到外部组件的迹线(trace)。在这种配置中,假设时钟边沿在FPGA的输入端和外部组件的输入端是对齐的。CLKIN和CLKFBIN的输入时钟缓冲区必须位于同一bank中。
在这里插入图片描述
零延迟缓冲区的概念是指,通过适当的配置,使得时钟信号从MMCM的输出到外部组件的输入之间几乎没有延迟或偏斜。这通常通过精确匹配时钟信号路径的电气特性来实现,以确保时钟边沿在所有目的地同时到达。
但是,在某些情况下,由于外部组件的输入电容和FPGA的反馈路径电容之间的负载差异,精确的时钟对齐无法实现。例如,外部组件的输入电容可能是1 pF到4 pF,而FPGA的输入电容大约是8 pF。这种差异会导致信号斜率不同,本质上就是偏斜。设计师需要了解这种效应,以确保时序正确。
在实际应用中,使用零延迟缓冲区可以确保FPGA内部和外部组件之间的同步操作,从而优化系统性能。它有助于减少由于时钟偏斜引起的时序问题,特别是在需要高精度时钟同步的系统中。

4、CMT到CMT的连接

MMCM和PLL可以通过CMT主干线使用CLKOUT0到CLKOUT3进行级联,从而允许生成更大范围的时钟频率。当使用CMT主干线时,不需要额外的缓冲区(如图3-15和图3-16所示)。由于主干线的延迟未被补偿,因此两个MMCM的输出时钟之间将存在相位偏移。
方程3-12显示了最终输出频率与两个MMCM的输入频率和计数器设置之间的关系。第二个MMCM的输出时钟与输入时钟之间的相位关系是不确定的,因为主干线连接未被补偿,所以在两个MMCM之间会存在一个额外的相位偏移。为了级联MMCM,需要将第一个MMCM的输出路由到第二个MMCM的CLKIN引脚。这条路径提供了最低的设备抖动。使用反相CLKOUTxB输出进行级联是不可用的。
在这里插入图片描述
在这里插入图片描述

5、扩频时钟生成(Spread-Spectrum Clock Generation)

扩频时钟生成(SSCG)被电子设备制造商广泛使用,以减少这些设备产生的电磁干扰(EMI)的频谱密度。制造商必须确保发出的电磁能量水平不会干扰附近其他电子设备的运行。例如,当电话靠近视频显示器时,电话通话的清晰度不应降低。同样,当使用电话时,显示器也不应受到影响。
SSCG通过将电磁能量分散到较大的频率范围内,有效地降低了在窄频率窗口内测量的电场和磁场强度。通过调制SSCG输出,可以降低任何单一频率的峰值电磁能量。
当将SS_EN设置为TRUE时,MMCME2可以从标准固定频率振荡器生成扩频时钟(如图3-17所示)。在MMCME2内部,VCO频率与CLKFBOUT和CLKOUT[6:4,1,0]一起调制。时钟输出CLKOUT[3:2]用于控制调制周期,并不用于一般用途。只要时钟频率调整缓慢,扩频就不会影响MMCME2的周期抖动。
在这里插入图片描述
调整调制周期SS_MOD_PERIOD允许FPGA设计师根据MMCME2的设置选择最接近的调制周期。只要调制频率高于可听频率范围(30 kHz),扩频调制就会减少电磁干扰(EMI)。通常,设计师会选择较低的调制频率,以最大限度地减少引入扩频的影响。
通过SS_MODE(CENTER_HIGH或DOWN_HIGH)增加频率偏差,会增强总体EMI的减少效果,但必须小心确保增加的频率范围不会影响到整个系统的运行。由于扩频时钟和输入时钟以不同的频率运行,因此在时钟域之间传输的任何数据都应使用异步FIFO,以确保数据不会丢失。增加频率偏差将需要更大的FIFO。
另一个设计权衡点在于选择使用中心扩频还是下扩频。选择SS_MODE(DOWN_HIGH,DOWN_LOW)会将频率扩展到较低的频率范围。DOWN_HIGH的频率偏差与CENTER_LOW相似。使用下扩频的决策通常是考虑到扩频对时序分析的影响。
在使用扩频时钟时,设计必须在频率偏差中的最高频率处满足时序要求。因此,如果一个100 MHz的时钟在SS_MODE(CENTER_LOW)下产生3%(±1.5%)的中心扩频,那么这个100 MHz时钟加上3%的中心扩频必须通过时序分析,就像它是一个101.5 MHz的时钟一样。然而,如果SS_MODE(DOWN_HIGH)产生3%的下扩频,则输入频率是频率偏差中的最高频率。因此,对于一个具有3%下扩频的100 MHz时钟,该下扩频时钟在时序分析中仍然被视为100 MHz的时钟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/579902.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud中网关-详解、案例(代码)

简介:在Spring Cloud中,网关的角色是非常重要的,它负责整个系统的入口流量,并且可以处理路由、过滤、协议转换等操作 目录 1、网关的技术实现 1.1 网关功能 1.2 网关的形式 2、网关实现步骤 2.1 添加相关依赖 2.2 创建此mod…

获取1年免费的SSL证书

之所以写这篇帖子是因为一直使用的阿里云和腾讯云免费的ssl证书由一年有效期相继改为了3个月,3个月换一次证书想太过麻烦了,还是需要一年有效期的证书更为适合 有两个站点推荐:(本次以FreeSSL为例) .JoySSL一个提供免费HTTPS证书申请的网站 FreeSSL.c…

156.25MHz的差分晶体振荡器SG3225VEN

数字经济正焕发出勃勃生机,云计算,大数据,5G和人工智能等新技术的发展给行业带来了新的机遇。无论是在数据中心内部还是在数据中心之间,提供低成本,高速的100/200/400G小型化解决方案都是光模块的发展需求。为了使DSP稳定工作,需要一个小型的封装晶体振荡器来提供参…

嵌入式学习63-C++

知识零碎: newmalloc friend 友元函数 …

面向对象练习题【从零开始学Java】

Java零基础系列课程-JavaSE基础篇 Lecture:波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。…

nginx修改http为https

Linux运维工具-ywtool 目录 一. 获取 SSL 证书1.安装openssl2.自签名证书 二.安装SSL证书三.配置Nginx支持HTTPS四.重启nginx 一. 获取 SSL 证书 SSL/TLS证书是用来验证服务器身份和提供一个安全的连接通道的 获取SSL/TLS证书有几种方法 1.购买域名,购买SSL证书 2.自签名证书…

[linux网络编程]UDP协议和TCP协议的使用

目录 看以下内容前,你要先了解main函数带参数有什么用、 了解socket的相关函数接口 如果不了解socket的相关函数接口请先看我这篇文章 main函数带参数有什么用 UDP udp_server 1.生成socket文件描述符 2.填充sockaddr_in信息 3.bind 4.发(收&…

序列化与反序列化

【一】序列化跟反序列化 # api接口开发,最核心最常见的一个过程就是序列化,所谓序列化就是把数据转换格式,序列化可以分两个阶段:【序列化值的是转换数据格式:序列化,返序列化】# 序列化: 把我们…

使用frp实现内网穿透教程

文章目录 简介frp 是什么?为什么选择 frp? 概念工作原理代理类型 内网穿透教程服务端安装和配置本地Windows(客户端)安装和配置本地Linux虚拟机(客户端)安装和配置使用 systemd 管理服务端注意事项 简介 f…

openapi3和openapi2的注解区别

最近在该项目,发现openapi3版本相比起2版本已经发生了很大的变化,原来的注解全部失效了,取而代之的是新的注解

基于Transformer深度学习的翻译模型(英->中)源码系统

第一步:Transformer介绍 Transformer是一种基于注意力机制的序列到序列模型,它在机器翻译任务中表现出色并逐渐成为自然语言处理领域的主流模型。Transformer模型的核心思想是使用自注意力机制(self-attention)来捕捉输入序列中各…

【Java系列】给大家出一些JavaSE基础第七天的内容案例 , 让大家更好的理解与掌握

面向对象 好的,以下是一些Java面向对象基础的案例: 案例一 1. 定义一个学生类Student,包含姓名、年龄、性别等属性,以及学习、吃饭等行为。然后创建一个学生对象,调用其行为方法。 public class Student {private St…

Linux驱动开发:深入理解I2C时序

目录标题 I2C简介I2C时序关键点Linux内核中的I2C时序处理I2C适配器I2C算法I2C核心 代码示例:I2C设备访问调试I2C时序问题 在Linux驱动开发中,理解和正确处理I2C时序对于确保I2C设备正常工作至关重要。本文将详细介绍I2C通信协议的时序特征,并…

西门子程序专业备份软件BUDdy for S7和使用说明

西门子程序专业备份软件BUDdy for S7和使用说明

基于Springboot的web后端开发三层架构上手实操

引言 我们拿到了xml文件 我们要将将xml文件中的数据加载并解析 完成数据的处理 并且返回给前端页面(result格式) 1.将xml文件放在resources目录下 xml是我们需要解析的文件 查看xml文件 2.在springboot中引入dom4j依赖 解析xml需要在springboot中引入dom4j依赖 这边我们…

Docker——部署LNMP架构

目录 一、LNMP架构概述 1.项目环境 2.服务器环境 3.需求 二、搭建Linux系统基础镜像 三、部署Nginx 1.建立工作目录 2.编写Dockerfile脚本 3.准备Nginx.conf配置文件 4.生成镜像 5.创建自定义网络 6.启动镜像容器 7.验证Nginx 三、部署Mysql 1.建立工作目录 2.编…

【STM32+HAL】读取电池电量

一、准备工作 有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32HAL】CUBEMX初始化配置 有关定时器触发ADC模式配置,详见【STM32HAL】ADC采集波形实现 有关软件触发ADC模式配置,详见【STM32HAL】三轴按键PS2摇杆 二、所用工具…

Python赋值运算符

目录 赋值运算符 将值赋给变量: 做加法运算之后完成赋值: 做减法运算之后完成赋值:- 做乘法运算之后完成赋值:* 做除法运算之后完成赋值:/ 做整除运算之后完成赋值:// 做幂次运算之后完成赋值:*…

自动驾驶框架 UniAD环境部署

感谢大佬们的开源工作 UniAD-github地址-YYDS更多bev算法部署参考如果您觉得本帖对您有帮助,感谢您一键三连支持一波^_^ 统一自动驾驶框架 (UniAD) ,第一个将全栈驾驶任务整合到一个深度神经网络中的框架,并可以发挥每个子任务以及各个模块的…

【MySQL 数据宝典】【索引原理】- 004 优化示例-join in exist

一、join 优化原理 1.1 基本连接方式介绍 JOIN 是 MySQL 用来进行联表操作的,用来匹配两个表的数据,筛选并合并出符合我们要求的结果集。 1.2 驱动表的定义 1.2.1 什么是驱动表 多表关联查询时,第一个被处理的表就是驱动表,使用驱动表去关联其他表.驱…
最新文章