Xilinx 7系列时钟结构
时间:2022-07-25
本文章向大家介绍Xilinx 7系列时钟结构,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
原文链接:https://blog.csdn.net/XiaoQingCaiGeGe/article/details/84454524
Xilinx 7系列时钟结构
xilinx 的 FPGA 时钟结构,7 系列 FPGA 的时钟结构和前面几个系列的时钟结构有了很大的区别,7系列的时钟结构如下图所示。
- Clock Region:FPGA 内部分成了很多个时钟区域。
- Horizontal Center:FPGA被 Horizontal Center 分成上下两个部分,每个部分包含16个 BUFG 。
- Clock Backbone:全局时钟线的主干道,将 FPGA 分成了左右两部分,所有的全局时钟布线均要从此经过。
- HROW:水平时钟线,从水平方向贯穿每个时钟区域的中心区域,将时钟区域分成上下完全一致的两部分。全局时钟线进入每个时钟区域的逻辑资源时,必须经过水平时钟线。
- I/O Column:外部信号/时钟输入管脚。
- CMT Backbone:对于相邻时钟区域的时钟布线,可以不使用珍贵的全局时钟网络,而使用每个时钟区域都包含的 CMT Backbone 通道。
- CMT Column:每个时钟区域都包含一个CMT,一个CMT由一个MMCM和一个PLL组成。
- GT Column:内含高速串行收发器。
总结来说,FPGA 实际上就是被分成很多个大小一样时钟区域,每个时钟区域既可单独工作又可通过全局时钟 Clock BackBone 统一工作,同时水平相邻的时钟区域又可通过 HROW 来统一工作,上下相邻的时钟区域又可通过 CMT Backbone 统一工作。
Xilinx 7系列时钟区域
- BUFG 即为全局时钟缓冲器,从图上看到,其输出时钟通过 Clock Backbone 可以到达任意一个时钟区域,而且 BUFG 通过 HROW 到达时钟区域内部的每个逻辑单元。
- BUFH 即为水平时钟缓冲器,它相当于一个功能受限的 BUFG ,其输出时钟只能通过 HROW 在左右相邻的时钟区域内工作。
- BUFIO 即为 IO 时钟缓冲器,其输出时钟只能作用在一个时钟区域的 IO 寄存器处,无法在 FPGA 内部逻辑使用。
- BUFR 即为区域时钟缓冲器,其输出只能作用在一个时钟区域,相当于 BUFH 的 mini 版。
- BUFMR 即为多区域时钟缓冲器,其输出作用在本时钟区域,还可以通过 CMT Backbone 作用在上下相邻两个时钟区域。
- MMCM、PLL 即时钟管理模块,用来消除时钟的延迟、抖动以及产生各种不同频率的时钟。
- CC 即为外部时钟输入管脚,其管脚在内部可以连接到 BUFG、BUFR、BUFIO、BUFH、MMCM、PLL 等,看具体的应用具体连接。下图所示为更为细致的 CC 管脚连接图。一个时钟区域有 4 对 CC 管脚,其中 2 对 SRCC ,2 对 MRCC 。SRCC 作为区域时钟使用时,只能连接本时钟区域的 BUFR 和 BUFIO 。而 MRCC 则还可以通过BUFMR作用在上下相邻的时钟区域。
Xilinx 7系列时钟详细描述
xilinx 7 系列 FPGA 里面,一个 CMT 包含一个 PLL 和一个 MMCM。Ultra 系列 FPGA 里面包含两个 PLL 和 一个 MMCM 。所以本文以 7 系列介绍。
1.IO 的时钟分布
2.芯片上位置
BUFG、BUFR、BUFH、BUFIO 在芯片上所处位置如下图所示
将BUFR、BUFIO、BUFMR 放大如下图所示
3.驱动能力对比
结合 BUF 在芯片上的位置,以及下图不难理解BUFG、BUFH、BUFR、BUFIO的驱动能力强弱。
物理管脚 IO
- SRCC:外部差分时钟或者单端时钟驱动,只能作用于本区域时钟:4个BUFIO、4个BUFR、本时钟区域的CMT以及上下相邻时钟区域的CMT、16个BUFG、本时钟区域以及水平相邻时钟区域的BUFH。
- MRCC:外部差分时钟或者单端时钟驱动,只能作用于本区域时钟:4个BUFIO、4个BUFR、
2个BUFMR
、本时钟区域的CMT以及上下相邻时钟区域的CMT、16个BUFG、本时钟区域以及水平相邻时钟区域的BUFH。
FPGA 芯片内部
- BUFIO:在相同的时钟区域内,其可以被 MRCC、SRCC、MMCM 的 CLKOUT0~3、CLKFBOUT 驱动,还可以被本时钟区域以及上下相邻区域的 BUFMR 驱动;其只能驱动本时钟区域内的 ILOGIC、OLOGIC 。
- BUFR:在相同时钟区域内,其可以被MRCC、SRCC、MMCM的CLKOUT0~3、CLKFBOUT驱动,还可以被本时钟区域以及上下相邻区域的BUFMR驱动;其能驱动本时钟区域内的CMT、本时钟区域内所有逻辑单元、以及16个BUFG(不推荐)。
- BUFMR:其只能被本时钟区域的MRCC以及某些GT时钟驱动;其能驱动本时钟区域以及上下相邻区域的BUFIO、BUFR。
- BUFG:其能被每个时钟区域内的SRCC、MRCC、CMT、GT、BUFR(不推荐)、其他BUFG;其可以驱动CMT、GT时钟、其他BUFG、FPGA内任何逻辑单元、BUFH。
- BUFH:其能被本时钟区域以及左右相邻时钟区域内的SRCC、MRCC、CMT、BUFG、GT时钟驱动;其能驱动本时钟区域的CMT、GT时钟、以及本时钟区域内的所有逻辑单元。
- GT时钟之RXUSERCLK、TXUSERCLK:其能被任何BUFG、以及本时钟区域内的BUFH驱动;其只能驱动专用的串行收发器模块。
- GT时钟之RXOUTCLK、TXOUTCLK:其被专用的串行收发器模块驱动;其能驱动BUFG、相同时钟区域内的CMT、BUFMR、BUFH以及相邻时钟区域内的BUFH。
- MGTREFCLK:其被外部MGT时钟源驱动;其能驱动BUFG、相同时钟区域内的CMT、BUFMR、BUFH以及相邻时钟区域内的BUFH。
- CMT(PLL&MMCM):其能被BUFG、SRCC(本时钟区域以及上下相邻时钟区域)、MRCC(本时钟区域以及上下相邻时钟区域)、GT(本时钟区域)、BUFR(本时钟区域或者上下相邻时钟区域加上BUFMR)、BUFMR、MMCM/PLL.CLKOUT0~3驱动;其能驱动BUFG、相同时钟区域内的BUFIO、BUFR、BUFH以及水平相邻的时钟区域的BUFH、MMCM/PLL。
参考链接
- xilinx 7 系列 FPGA 时钟
https://blog.csdn.net/XiaoQingCaiGeGe/article/details/84454524
https://blog.csdn.net/XiaoQingCaiGeGe/article/details/84454588
https://blog.csdn.net/XiaoQingCaiGeGe/article/details/84454615
https://blog.csdn.net/XiaoQingCaiGeGe/article/details/84454669
- 7 Series FPGAs Clocking Resources
https://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf
- UltraScale Architecture Clocking ResourcesUser Guide
https://www.xilinx.com/support/documentation/user_guides/ug572-ultrascale-clocking.pdf
- Oracle Data Guard压缩归档测试(二)(r12笔记第27天)
- Oracle Data Guard压缩归档效果对比(r12笔记第26天)
- PHP7.0正式版编译安装升级及WordPress问题解决分享
- MySQL自增列的重复值问题(r12笔记第25天)
- 借助腾讯云CDN开启全站https及问题解决分享
- 分分钟搭建MySQL Group Replication测试环境(二)(r12笔记第41天)
- php5编译安装常见错误和解决办法集锦
- MySQL自增列主从不一致的测试(r12笔记第37天)
- 分享Mac/Linux系统Shell终端利器SecureCRT以及注册破解方法
- MySQL中GTID和自增列的数据测试(r12笔记第38天)
- 分享一个入门级可控多线程shell脚本方案
- PhalGo-介绍
- 实测Nginx服务器开启pagespeed加速效果
- MySQL频繁停库的问题分析(r12笔记第33天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 特殊数据格式处理-JSON框架Jackson精解第2篇
- 序列化与反序列化核心用法-JSON框架Jackson精解第一篇
- 属性序列化自定义排序与字母表排序-JSON框架Jackson精解第3篇
- 【我在拉勾训练营学技术】mysql 索引面试再也不怕啦
- 智能合约中常见的漏洞总结复现#技术创作101训练营#
- JS根据列表排列对象数组
- git提取两次提交或者版本的差异文件并打包成zip压缩包
- 博客通用版Live2d伊斯特瓦尔发布
- 一个小需求,自动重启k8s集群中日志不刷新的POD
- 多图,一文了解 8 种常见的数据结构
- Jenkins--pipline 流水线部署Java后端项目
- 微信小程序修炼之路LV1—工具介绍篇
- CentOS 7 部署OpenLDAP+FreeRadius
- 手把手教你使用yolo进行对象检测
- K8s之Helm工具详解