Xilinx FPGA 学习笔记——时钟资源

2023-11-11

Xilinx的FPGA中,时钟网络资源分为两大类:全局时钟资源区域时钟资源

全局时钟资源是一种专用互连网络,它可以降低时钟歪斜、占空比失真和功耗,提高抖动容限。Xilinx的全局时钟资源设计了专用时钟缓冲与驱动结构,从而使全局时钟到达CLB、IOB和BRAM的延时最小。

区域时钟资源是独立于全局时钟网络的。Xilinx的器件分成若干个时钟区域,以Virtex-6为例,Virtex-6的最小器件有6个区域,最大器件有18个区域。它与全局时钟不同,区域时钟信号X只能驱动限定的时钟区域

这里面提到区域时钟的概念,需要解释一下。Xilinx的FPGA器件是通过时钟区域来管理时钟网络的,Virtex-6为例,时钟区域的大小固定为40个CLB 高,半个晶片宽。因此大尺寸的器件有更多的时钟区域。如下图所示,下图中的FPGA器件一共包含6个时钟区域,左侧三个右侧三个,从图可以看出每个区域高度是2*20CLBs,区域宽度是半个FPGA芯片的宽度。中间是CMT时钟管理模块。

每个时钟区域的中间方向有一个时钟行(HROW),Virtex-6为例,一个时钟行,共包含12个水平时钟线,12个水平时钟线可以全部由全局时钟BUFG驱动。也可以由区域内部的时钟组件缓冲器驱动,例如BUFH和BUFR。这个时候有人会问什么是BUFG、BUFR和BUFH。

先来解释一下BUFG,这个比较简单,就是全局时钟网络时钟驱动器,如果时钟信号要走全局时钟网络,必须通过这个BUFG来驱动,BUFG可以驱动所有的CLB,RAM,IOB。spartan6 有一共有16个BUFG全局时钟线。virtex-6则一共有32个BUFG全局时钟线。参考文献链接见下面。

再看BUFH,BUFH驱动区域中的水平全局时钟树,Xilinx的时钟是通过时钟树来分布的,以spartan6时钟树为例,看下图。FPGA中间竖排是CMT时钟管理模块,就是PLL和DCM。全局时钟缓冲器BUFG是位于FPGA器件的中心位置,时钟的输入可以来自FPGA的上、下、左、右的bank,也可以来自PLL或DCM;16个BUFGMUX通过驱动vertical spine并经vertical spine 往南北方向传播,vertical spine就相当于时钟树的树干根据这条线路,时钟水平延伸至HCLK时钟列并经HCLK时钟列提供了访问局部逻辑原语的路径,HCLK及所谓的水平时钟线,相当于树枝每一个HCLK列左右两边各有16个水平时钟缓冲BUFH驱动左右逻辑资源。

以Virtex-6每一个HCLK列左右两边各有12个水平时钟缓冲BUFH驱动左右逻辑资源,即每个时钟区域有12个BUFH时钟线。如下图


最后解释BUFR,BUFR我在SPARTAN6的时钟资源手册UG382里没有看到,应该是没有啊。BUFR是区域时钟缓冲器,要进入区域时钟网络,必须例化BUFR。一个BUFR最多可以驱动三个相邻的时钟区域中的区域时钟。顶部和底部区域中BUFR只能连接相邻的一个时钟区域,也就是说,顶部的BUFR连接它所在的下面一个相邻区域。底部的BUFR只能连接它所在的上边一个相邻区域。因此,底部和顶部BUFR的作用区域为两个时钟区域。如下图,下图是共有8个时钟区域的FPGA,每个时钟区域最多包含6个BUFR时钟线。截止现在可以看到(紫色标注)Vertex器件的每个时钟区域,共有6个BUFR和12个BUFH。SPARTAN6每个时钟区域好像就有16个BUFH。最后声明一下BUFR不仅可以驱动IO,也可以驱动CLB,RAM。下面接收的BUFIO只能驱动IOB模块。BUFR还可以1-2-4-8分频。

最后说一下BUFIO,BUFIO是用来驱动I/O列内的专用时钟网络,这个专用的时钟网络独立于全局时钟资源,适合采集源同步数据。BUFIO只能由位于同一时钟区域的Clock-Capable I/O驱动。一个时钟区域有4个BUFIO,其中的2个可以驱动相邻区域的I/O时钟网络。BUFIO不能驱动逻辑资源(CLB、BRAM等),因为I/O时钟网络只存在于I/O列中。

具体这些个时钟组件BUF怎么用,我还没实践,先对这些BUF概念理解一下,仅供大家参考。小弟初学,肯定有理解不对的地方,大家请指正。


参考文献的链接:

http://xilinx.eetrend.com/blog/1957

http://blog.sina.com.cn/s/blog_bff0927b010173bp.html

http://www.tools138.com/front/article/queryById.htm?id=417885


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xilinx FPGA 学习笔记——时钟资源 的相关文章

  • 【docker】dcoker-compose介绍

    文章目录 前言 一 Docker compose简介 1 docker compose基础概念 2 为什么要使用docker compose 二 YAML文件格式及编写注意事项 1 YAML文件格式 2 YAML格式的注意事项 3 YAML

随机推荐

  • 15.Xaml StackPanel控件 -->堆栈面板

    1 运行效果 2 运行源码 a Xaml源码
  • AIX7.1安装中文字符集

    为了安装中文字符集找了n多文章 下载n多安装包 就是没有一个好用的 所以跑官网上查询一翻 官网地址 https www ibm com support knowledgecenter zh ssw aix 71 install insgdr
  • 密码学的一些基本概念

    密码学是研究如何隐密地传递信息的学科 密码学的作用 机密性 是网络信息不泄露给非授权用户的特性 防止被动攻击 常用的保密技术包括 防侦听 防辐射 信息加密 物理保密等 完整性 完整性是网络信息未经授权不能进行改变的特性 完整性是一种面向信息
  • win7右键没有新建文本文档怎么办

    第一种方法 打开 开始 在搜索框内输入CMD 或者按快捷键WIN图标 R 复制reg add HKEY CLASSES ROOT txt ve d txtfile f 回车运行 再复制粘贴reg add HKEY CLASSES ROOT
  • numpy中设置始终使用定点表示法显示小数

    默认numpy会在某些情况触发科学计数法显示 scientific notation is used when absolute value of the smallest number is lt 1e 4 or the ratio of
  • 前置++和后置++的区别

    今天在阅读 google c 编程风格 的文档的时候 5 10 前置自增和自减 有一句话引起了我的注意 对于迭代器和其他模板对象使用前缀形式 i 的自增 自减运算符 理由是 前置自增 i 通常要比后置自增 i 效率更高 于是我查了查前置 和
  • 【C++学习第五讲】第一章总结 + 复习题(十一道)

    目录 第一章总结 一 总结 二 复习题 1 C 程序的模块叫什么 2 下面的预处理器编译指令的功能是什么 3 下面的语句的功能是什么 4 什么语句可以用来输出 hello world 然后开始新的一行 5 什么语句可以用来创建名为chees
  • TBDR下msaa 在metal vulkan和ogles的解决方案

    https developer arm com solutions graphics developer guides understanding render passes multi sample anti aliasing msaa在
  • 第十四届蓝桥杯大赛软件赛省赛(Java 大学B组)

    目录 试题 A 阶乘求和 1 题目描述 2 解题思路 3 模板代码 试题 B 幸运数字 1 题目描述 2 解题思路 3 模板代码 试题 C 数组分割 1 题目描述 2 解题思路 3 模板代码 试题 D 矩形总面积 1 问题描述 2 解题思路
  • (译)cocos2d-x跨android&ios平台开发入门教程

    免责申明 必读 本博客提供的所有教程的翻译原稿均来自于互联网 仅供学习交流之用 切勿进行商业传播 同时 转载时不要移除本申明 如产生任何纠纷 均与本博客所有人 发表该翻译稿之人无任何关系 谢谢合作 原文链接地址 http www raywe
  • Windows下小白安装Qt详细教程

    一 软件下载 官网下载地址 http download qt io 1 点击进入 2 archive 和 official releases 两个目录都有最新的 Qt 开发环境安装包 我们以 archive 目录里的内容为例来说明 点击进入
  • 太强大!发现一个数据分析老司机专用神器!

    去年秋招 字节跳动整体报录比降到了2 创造了150000人争3000岗位的盛况 今年909万毕业生再创新高 激烈程度可想而知 除了技术岗 大部分毕业生也瞄准了高薪高前景的数据分析师岗位 教育部关于高校毕业生就业工作通知 人才缺口 巨大 未来
  • 用python进行数据分析(一:数据理解)

    python作为当前主流的语言之一 他的功能是非常强大的 不论是在游戏行业还是数据分析行业还是软件开发啥的好像都可以用python 但作为一个数据分析师 并不需要用到他的全部功能 只是想要达到 能够用python完成数据分析工作 的效果来帮
  • 同步FIFO的verilog实现(2)——高位扩展法

    一 前言 在之前的文章中 我们介绍了同步FIFO的verilog的一种实现方法 计数法 其核心在于 在同步FIFO中 我们可以很容易的使用计数来判断FIFO中还剩下多少可读的数据 从而可以判断空 满 关于计数法实现同步FIFO的详细内容 请
  • logback 配置文件 XML 案例

    logback配置文件案例 1 实现功能 1 控制台输出日志 2 info warn error 三个级别的日志分文件输出 3 日志文件 按天 按文件大小 滚动保存 4 日志文件保存于 项目根目录下的 logs 目录下 2 具体配置
  • STM 32如何实现程序自加密

    在嵌入式应用开发中 应用开发完成后往往需要对芯片中的程序进行加密处理 用以保护程序安全 不至被竞争对手从芯片把程序固件考走 本节将给大学介绍一个如何实现程序自动给芯片加密功能 下面给大家介绍一个STM32 用程序给MCU加密码的方法 标准库
  • 解决stata安装外部命令报错cannot write in directory C:\Users\�ƿ���\ado\plus\_

    参考网址 https bbs pinggu org thread 10685955 1 1 html ado文件下没有plus文件夹 在do文件或命令行中输入以下三个命令 sysdir set PLUS D stata17 MP ado p
  • Search and Replace -- 搜索与替换的高级利器

    对于从事电脑无纸化办公拟文写作的朋友 随着文档的增多 要查找一个遗忘的文件犹如大海捞针 虽然Windows系统已有很强的搜索功能 但依然不能满足我们的要求 如Windows不能搜索WPS格式的文件 不能搜索数据库 而在第三方软件的帮助下便可
  • 【YOLO系列】YOLOv6论文超详细解读(翻译 +学习笔记)

    前言 YOLOv6 是美团视觉智能部研发的一款目标检测框架 致力于工业应用 论文题目是 YOLOv6 A Single Stage Object Detection Framework for Industrial Applications
  • Xilinx FPGA 学习笔记——时钟资源

    在Xilinx的FPGA中 时钟网络资源分为两大类 全局时钟资源和区域时钟资源 全局时钟资源是一种专用互连网络 它可以降低时钟歪斜 占空比失真和功耗 提高抖动容限 Xilinx的全局时钟资源设计了专用时钟缓冲与驱动结构 从而使全局时钟到达C