xilinx 7系列FPGA时钟布线资源

7系列FPGA拥有多种时钟路由资源,以支持各种时钟方案和需求,包括高扇出、短传播延迟以及极低的偏斜。为了最佳地利用时钟路由资源,需要了解如何将用户时钟从PCB传递到FPGA,确定哪种时钟路由资源最优,然后通过利用适当的I/O和时钟缓冲器来访问这些时钟路由资源。

一、时钟缓冲

7系列FPGA具有丰富的时钟资源。各种缓冲器类型、时钟输入引脚和时钟连接性可以满足许多不同的应用需求。选择适当的时钟资源可以改善布线能力、性能以及FPGA的整体资源利用率。

1、BUFG
在以下情况下最适合使用:
• 设计或设计的部分在设备的较大区域内具有全局范围,且功能的本地化不可能实现。
• 硬件功能块,如块RAM、DSP或跨多个时钟区域的集成IP,需要级联,或需要连接到附近没有的CLB。
• 通过同步(无抖动)或异步切换时钟,应用程序能够切换到停止的时钟或选择具有不同频率的时钟(例如,用于降低功耗)。
• 可以使用时钟使能(CE)功能在非工作期间降低功耗。然而,在大多数情况下,由于时序(CE延迟)限制,不应使用CE功能来模拟时钟元件上的真正CE逻辑功能。

2、BUFR和BUFIO
BUFR和BUFIO组合的主要目的是支持源同步接口。
当接口被放置在一个单一区域内时,BUFIO对SelectIO的高速侧进行时钟驱动,而BUFR则对反序列化/序列化侧以较低速度进行时钟驱动,将其送入FPGA逻辑,提供时钟域转移功能。

3、BUFMR(BUFMRCE)
对于需要比单个时钟区域/bank中可用逻辑和(或)I/O更多的接口,BUFMR(BUFMRCE)用于将时钟域转移功能扩展到上方和下方的时钟区域。

4、BUFR
某些需要与时源同步I/O用例无关的分割时钟的应用类型,可以使用BUFR作为简单的时钟分频器,当无法使用MMCM/PLL或它不适用于频率分频功能时。在这种情况下,必须特别注意时序和偏斜,因为这不是BUFR的主要用途。

5、BUFH(BUFHCE)
水平时钟缓冲器BUFH(BUFHCE)严格来说是一种区域性资源,不能跨越上方或下方的时钟区域。与BUFR不同,BUFH没有时钟分频的能力。
• BUFH类似于全局时钟资源,但仅在跨越两个水平区域的区域基础上。
• BUFH具有作为MMCM/PLL反馈的能力,并且可以补偿时钟插入延迟。
• 当接口或逻辑云可以定位到一个时钟区域或两个水平相邻的时钟区域时,BUFH是首选的时钟资源。
• BUFH还具有一个时钟使能引脚(BUFHCE),可用于在逻辑或接口及其相关逻辑不活动时降低动态功耗。
• 时钟使能功能可以在每个时钟周期的基础上提供门控时钟。
• 与全局时钟树类似,BUFH也可以连接到CLB中的非时钟资源(使能/复位),但具有更好的偏斜特性。
• BUFH也可以用于时钟区域内时钟元件的同步启动。

二、带时钟功能的输入

外部用户时钟通过称为带时钟功能(CC)输入的差分时钟引脚对引入FPGA。带时钟功能的输入提供专用的高速访问到内部全局和区域时钟资源。带时钟功能的输入使用专用路由,并且必须用于时钟输入,以保证各种时钟特性的时序。具有本地互连的通用I/O不应用于时钟信号。
每个I/O bank位于单个时钟区域内,并包含50个I/O引脚。在每个I/O列的每个I/O bank中的50个I/O引脚中,有四个带时钟功能的输入引脚对(总共八个引脚)。每个带时钟功能的输入:
• 可以连接到PCB上的差分或单端时钟
• 可以配置为任何I/O标准,包括差分I/O标准
• 具有P侧(主)和N侧(从)
带时钟功能的输入在每个I/O bank中组织为2个MRCC和2个SRCC对。

1、SRCC
可以访问单个时钟区域以及全局时钟树,以及同一列中上方和下方的其他CMT。
可以驱动:
• 同一时钟区域内的区域时钟线(BUFR、BUFH、BUFIO)
• 同一时钟区域和相邻时钟区域中的CMT。
• 设备同一顶部/底部半部分的全局时钟线(BUFG)。

2、MRCC
可以访问多个时钟区域和全局时钟树。MRCC的功能与SRCC相同,并且还可以驱动多时钟区域缓冲器(BUFMR),以访问最多三个时钟区域。
如果带时钟功能的输入不用作时钟,则可以用作常规I/O。用作常规I/O时,带时钟功能的输入引脚可以配置为任何单端或差分I/O标准。
带时钟功能的输入可以连接到同一时钟区域中的CMT,以及上方和下方时钟区域中的CMT,但有一些限制。

3、单个时钟驱动单个CMT
当一个时钟输入驱动单个CMT时,带时钟功能的输入和CMT(MMCM/PLL)必须位于同一时钟区域。

4、单个时钟驱动多个CMT
单个时钟输入可以驱动同一列中的其他CMT。在这种情况下,MMCM/PLL必须放置在与带时钟功能的输入相同的时钟区域中。将额外的CMT放置在相邻区域是更优的选择,但同一列中距离超过一个CMT的CMT也可以被驱动。要使这种配置能够自动放置而无需CLOCK_DEDICATED_ROUTE约束,CMT中使用的资源必须相同。如果需要混合使用MMCMs/PLLs,则它们应首先放置在同一CMT中。
如果必须从不在同一时钟区域的带时钟功能的输入驱动CMT,并且与带时钟功能的输入相同的时钟区域中没有MMCM/PLL,则必须设置属性CLOCK_DEDICATED_ROUTE = BACKBONE。在这种情况下,MMCM或PLL不会将输出正确对齐到输入时钟。
用于驱动同一列中CMT的专用资源有限。一些Xilinx IP使用这些资源,因此它们无法用于其他设计用途,从而导致设计无法布线。如果到其他时钟区域的专用路由不可用,将CLOCK_DEDICATED_ROUTE设置为FALSE允许使用本地互联逻辑,尽管这会导致更长且无法补偿的延迟。

三、全局时钟资源

是专门为FPGA中各种资源的所有时钟输入而设计的一个互联网络。这些网络被设计成具有低偏斜、低占空比失真、低功耗以及改进的抖动容忍度。它们还支持非常高频率的信号。
理解全局时钟的信号路径有助于深入了解各种全局时钟资源。全局时钟资源和网络由以下路径和组件组成:

1、 时钟树和网络(Clock Tree and Nets) - GCLK
时钟树是一个层次化的结构,它确保时钟信号能够以最小的延迟和偏斜到达FPGA中的所有逻辑单元。
7系列FPGA的时钟树被设计为具有低偏斜和低功耗的操作。任何未使用的分支都会被断开。时钟树也可以用来驱动逻辑资源,如复位或时钟使能。这主要用于高扇出/负载网络。
全局时钟线的引脚访问并不局限于逻辑资源的时钟引脚。全局时钟线可以驱动CLB中的其他引脚(除了CLK引脚),例如控制引脚SR和CE。需要非常快速的信号连接和大负载/扇出的应用可以从这种架构中受益。

2、时钟区域
7系列设备通过使用时钟区域来改进时钟分布。每个时钟区域最多可以有12个全局时钟域。这12个全局时钟可以由单片设备或SLR中可用的32个全局时钟缓冲器的任何组合来驱动。时钟区域的尺寸固定为50个CLB高(50个IOB),并跨越芯片的左侧或右侧。在7系列设备中,时钟主干将设备分为左侧或右侧。主干并不位于芯片的中央。通过固定时钟区域的尺寸,较大的7系列设备可以有更多的时钟区域。7系列FPGA提供从1到24个时钟区域。

3、全局时钟缓冲器
在7系列设备中,最多有32个全局时钟缓冲器。一个CCIO输入可以直接连接到设备同一半部分中的任何全局时钟缓冲器。每个差分时钟引脚对可以连接到PCB上的差分或单端时钟。当用作差分时钟输入时,直接连接来自差分输入引脚对的P侧。当用作单端时钟输入时,必须使用引脚对的P侧,因为仅在此引脚上存在直接连接。
单端时钟输入必须分配给带时钟功能输入引脚对的P侧(主侧)。
如果单端时钟连接到差分时钟引脚对的P侧,N侧不能用作另一个单端时钟引脚——它只能用作用户I/O。
设备上半部分的CMT(时钟管理瓷砖)只能驱动设备上半部分的BUFG(全局时钟缓冲器),而设备下半部分的CMT只能驱动下半部分的BUFG。类似地,只有设备同一半部分的BUFG才能用作同一半部分设备中CMT的反馈。千兆收发器(GTs)只能直接连接到MMCMs/PLLs,当CMT列扩展到也包含完整列的GTs和I/O的区域时。
全局时钟缓冲器允许各种时钟/信号源访问全局时钟树和网络。全局时钟缓冲器的可能输入源包括:
• 时钟功能输入
• CMT,包括混合模式时钟管理器(每个CMT一个MMCM和一个PLL),驱动设备同一半部分的BUFG(全局时钟缓冲器)
• BUFG
• 通用互联
• BUFR
• 千兆收发器
7系列FPGA的时钟功能输入可以通过时钟主干列中存在的垂直时钟网络间接驱动全局时钟缓冲器。32个BUFG被组织成两组,每组16个BUFG,分别位于设备的顶部和底部。任何直接连接到BUFG的资源(例如GTX收发器)都有顶部/底部的限制。例如,顶部的每个MMCM只能驱动位于该顶部区域的16个BUFG。同样,底部的MMCM驱动底部的16个BUFG。
所有全局时钟缓冲器都可以驱动7系列设备中的所有时钟区域。但是,单个时钟区域中只能驱动12个不同的时钟。时钟区域(50个CLB)是时钟树的一个分支,由25行CLB向上和25行CLB向下组成。时钟区域跨越设备的一半。
时钟缓冲器被设计为同步或异步的无故障2:1多路复用器,具有两个时钟输入。存在一条专用路径(路由资源)用于BUFG级联,以允许选择两个以上的时钟输入。7系列FPGA的控制引脚提供了广泛的功能和强大的输入切换。
在7系列FPGA的时钟架构中,BUFGCTRL多路复用器及其所有派生器件可以在设备的上半部和下半部每组16个时钟缓冲器内与相邻的时钟缓冲器进行级联,从而在上半部有效地形成一个由16个BUFGMUX(BUFGCTRL多路复用器)组成的环,在下半部形成另一个由16个BUFGMUX组成的环。图2-2展示了BUFG级联的简化示意图。
在这里插入图片描述

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

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

相关文章

【数据结构|C语言版】单链表

前言1. 单链表的概念和结构1.1 单链表的概念1.2 单链表的结构 2. 单链表的分类3.单链表的实现3.1 新节点创建3.2 单链表头插3.3 单链表头删3.4 单链表尾插3.5 单链表尾删3.6 链表销毁 4. 代码总结4.1 SLT.h4.2 SLT.c4.3 test.c 后言 前言 各位小伙伴大家好!时隔不久…

百科不全书之 docker记录

docker记录 1.参考文件2. Docker简介与虚拟机的区别 3. 安装Docker注意 Windows家庭版的要额外设置 4.使用5.docker与ROS 1.参考文件 参考视频:B站【GeekHour】Docker入门教程: 【GeekHour】30分钟Docker入门教程 2. Docker简介 Docker是一个用于构建运行 传送…

The C programming language (second edition,KR) exercise(CHAPTER 4)

E x c e r c i s e 4 − 1 Excercise\quad 4-1 Excercise4−1&#xff1a; #include <stdlib.h> #include <stdio.h> #include <string.h> int strindex(char s[],char t[]); int strrindex(char s[],char t[]);int main(void) {char s[100]"qwoulddf…

Java | Leetcode Java题解之第41题缺失的第一个正数

题目&#xff1a; 题解&#xff1a; class Solution {public int firstMissingPositive(int[] nums) {int n nums.length;for (int i 0; i < n; i) {while (nums[i] > 0 && nums[i] < n && nums[nums[i] - 1] ! nums[i]) {int temp nums[nums[i] …

yolov8实战第七天——pyqt5-yolov8实现车牌识别系统(参考论文(约7000字)+环境配置+完整部署代码+代码使用说明+训练好的模型)

基于 pyqt5-yolov8实现车牌识别系统,包括图片车牌识别,视频车牌识别,视频流车牌识别。 效果展示(图片检测,检测到的内容添加到历史记录): 效果展示(视频检测,视频车辆只会添加一条记录,下文更多实际应用中的优化策略): 基于YOLOv8和PyQt5的车牌识别系统设计与…

存储竞赛,角逐未来

随着人工智能&#xff08;AI&#xff09;和大数据驱动的海量数据需求&#xff0c;对存储技术的要求也在不断提高。在此背景下&#xff0c;各大存储芯片巨头之间的技术竞赛日益激烈。 在NAND闪存领域&#xff0c;企业关注的重点在于层数的突破。近日&#xff0c;《韩国经济日报》…

linux下编译c++程序报错“undefined reference to `std::allocator<char>::allocator()‘”

问题 linux下编译c程序报错“undefined reference to std::allocator::allocator()”。 原因 找不到c标准库文件。 解决办法 开始尝试给gcc指令添加-L和-l选项指定库路径和库文件名&#xff0c;但是一直不成功&#xff0c;后来把gcc改为g就可以了。

Stylus精讲:网页设计新境界【写作AI一键生成】

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

SWCTF

easy_php 源码 <?php// flag is in flag.php highlight_file(__FILE__); ini_set(display_errors, 0); error_reporting(0);if (isset($_GET[myon1]) && isset($_GET[myon2]) && isset($_GET[myon3])) {$myon1 $_GET[myon1];$myon2 $_GET[myon2];$myon…

# Win10 打不开【本地组策略编辑器】解决方案

Win10 打不开【本地组策略编辑器】解决方案 段子手168 问题描述&#xff1a; 当在 WIN R 打开【运行】输入&#xff1a;gpedit.msc 打开【本地组策略编辑器】时&#xff0c;出现错误时&#xff0c; 或者在【计算机管理】中 没有【本地用户和组】这一项。 可以试一下以下方…

Go 之 sync.Mutex 加锁失效现象

我先声明一下&#xff0c;并不是真的加锁失效&#xff0c;而是我之前的理解有误&#xff0c;导致看起来像是加锁失效一样。于是乎记录一下&#xff0c;加深一下印象。 我之前有个理解误区&#xff08;不知道大家有没有&#xff0c;有的话赶紧纠正一下——其实也是因为我这块的…

Spec-Gaussian:3D高斯溅射的各向异性视图相关外观

Spec-Gaussian: Anisotropic View-Dependent Appearance for 3D Gaussian Splatting Spec-Gaussian&#xff1a;3D高斯溅射的各向异性视图相关外观 Ziyi Yang1,3  Xinyu Gao1  Yangtian Sun2  Yihua Huang2  Xiaoyang Lyu2 杨子怡 1,3 高新宇 1 太阳扬天 2 黄宜华 2 吕晓阳…

【github主页】优化简历

【github主页】优化简历 写在最前面一、新建秘密仓库二、插件卡片配置1、仓库状态统计2、Most used languages&#xff08;GitHub 常用语言统计&#xff09;使用细则 3、Visitor Badge&#xff08;GitHub 访客徽章&#xff09;4、社交统计5、打字特效6、省略展示小猫 &#x1f…

Java+springboot开发的医院智能导诊服务系统源码 自动兼容小程序与H5版本

智能导诊系统 一、什么是智慧导诊系统&#xff1f; 智慧导诊系统是一种医院使用的引导患者自助就诊挂号、精准推荐科室、引导患者挂号就诊的系统。该系统结合医院挂号及就诊的HIS系统&#xff0c;为患者带来全流程的信息指引提醒&#xff0c;可以在全院区构建一个精细化、移动…

react 项目路由配置(react-router-dom 版本 v6.3、v6.4)

根据 react-router-dom 的版本&#xff0c;有不同的方式 一、react-router-dom v6.3 用到的主要 api: BrowserRouteruseRoutesOutlet 下面是详细步骤&#xff1a; 1、index.js BrowserRouter 用来实现 单页的客户端路由使用 BrowserRouter 包裹 App放在 顶级 位置&#x…

MATLAB初学者入门(7)—— 参数估计

参数估计是利用实验数据来推断模型参数的过程&#xff0c;这在科学和工程领域中非常常见。MATLAB提供了多种工具来进行参数估计&#xff0c;尤其是当模型表现为非线性时。以下是使用MATLAB进行参数估计的一种常见方法&#xff0c;我们将通过一个具体的案例——化学动力学模型的…

EI级 | Matlab实现VMD-TCN-LSTM-MATT变分模态分解卷积长短期记忆神经网络多头注意力多变量时间序列预测

EI级 | Matlab实现VMD-TCN-LSTM-MATT变分模态分解卷积长短期记忆神经网络多头注意力多变量时间序列预测 目录 EI级 | Matlab实现VMD-TCN-LSTM-MATT变分模态分解卷积长短期记忆神经网络多头注意力多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matl…

手写一个Spring IOC框架

目录 一&#xff0c;Spring IOC 二&#xff0c;流程图设计 三&#xff0c;设计思路解析 三&#xff0c;开始写代码 1.准备工作: 2.扫描并加载类信息 3.初始化bean 4.测试一下 一&#xff0c;Spring IOC Spring IoC容器是Spring框架的核心&#xff0c;它通过读取配置信息…

【C语言】万字详讲操作符

目录 前言 一、操作符分类 二、算数操作符 三、移位操作符 四、位操作符 五、赋值操作符 六、单目操作符 6.1 逻辑反操作 6.2 负值与正值 6.3 取地址 6.4 sizeof 6.5 取反操作符 6.6 --和操作符 6.7 间接访问操作符&#xff08;解引用操作符&#xff09; 6.8 强…

java导出数据到excel表中

java导出数据到excel表中 环境说明项目结构1.controller层2.service层3.实现层4.工具类&#xff1a;ExcelUtil.java5.ProductModel.java类 使用的Maven依赖postman请求展示&#xff0c;返回内容需要前端接收浏览器接收说明&#xff08;如果下载下来的为zip类型&#xff0c;记得…