Spartan6系列之时钟资源详解
本文转自:https://www.cnblogs.com/dhyc/p/3968729.html,感谢作者
1. 时钟资源概述
时钟设施提供了一系列的低电容、低抖动的互联线,这些互联线非常适合于传输高频信号、最大量减小时钟抖动。这些连线资源可以和DCM、PLL等实现连接。
每一种Spartan-6芯片提供16个高速、低抖动的全局时钟资源用于优化性能;这些资源可以背Xilinx工具自动地使用,即使时钟频率相对较低,使用时钟资源来消除潜在的时序冒险仍然是十分重要的,
每一个Spartan-6 FPGA提供40个超高速、低抖动的IO局部时钟资源(32个BUFIO2S和8个BUFPLL)这些IO局部时钟资源是为IO Serializer和de-serializer电路服务的。
Spartan-6 FPGA的时钟资源主要由四种类型的连接器构成:
- 全局时钟输入引脚(GCLK)
- 全局时钟多路复用器(BUFG、BUFGMUX)
- IO时钟缓冲器(BUFIO2、BUFIO2_2CLK、BUFPLL)
- 水平方向时钟布线缓冲器(BUFH)
有两种类型的时钟网络:
- 为FPGA内部逻辑资源提供低抖动时钟资源的全局时钟网络
- 为SelectIIO逻辑资源提供高性能低抖动时钟资源的IO局部时钟网络
BUFGMUX能够在两个全局时钟资源之间进行复用,也可以当做普通的BUFG时钟缓冲使用,这个时钟缓冲只能够直接驱动全局时钟布线资源,只能够驱动时钟输入;当然,FPGA内部逻辑触发器的时钟输入也可以来自那些普通的布线资源,不过那些普通的布线资源会具有较大的时钟抖动。
BUFPLL和BUFIO2用来驱动IO局部时钟网络的时钟资源,这一特性限定了它们的使用目的,他们只能用于ISERDES或OSERDES这资源的输入时钟资源;
BUFIO2能够驱动SDR和DDR的ISERDES2和OSERDES2的时钟,BUFIO2能够把GCLK或GTP_DUAL Tile的输入时钟布线到BUFG、DCM、PLL时钟输入。BUFIO2_2CLK能够用来代替BUFIO2s使用在DDR的ISERDES2和OSERDES2的设计时钟。
类似地,BUFPLL可以驱动SDR时钟的IO时钟网络,BUFPLL将PLL的CLKOUT0或CLKOUT1和IO局部时钟网络连接起来。
BUFH通过提供逻辑资源与全局时钟布线水平区域的连接,使得芯片总体的低抖动时钟资源更为丰富。
1.1. 全局时钟结构
图 1‑1全局时钟结构
Spartan-6 FPGA的全局时钟网络由16个位于器件中心位置的BUFGMUX驱动,时钟的输入可以来自FPGA的上、下、左、右的bank,也可以来自PLL或DCM;16个BUFGMUX驱动vertical spine并经vertical spine 往南北方向传播,根据这条线路,时钟水平延伸至HCLK时钟列并经HCLK时钟列提供了访问局部逻辑原语的路径;每一个HCLK列左右两边各有16个水平时钟缓冲BUFH驱动左右逻辑资源。
图 1‑2BUFH时钟布线路径
在Spartan-6 FPGA器件上,有32个GCLK输入,但是只有16个全局时钟缓冲,也就是说每一个全局时钟缓冲只能被2个GCLK中的一个驱动,在两个GCLK(假设为GCLK_A和GCLK_B共享BUFGMX_C)都需要使用的情况下,为了为用户提供更多的灵活性,可以让GCLK_A引脚布线到BUFGMUX_C,而GCLK_B使用BUFIO2间接地布线到另一个BUFGMUX_D。但是经过BUFIO2布线的时钟会出现延时。
表格 1‑1 Bank0和Bank1共享全局时钟资源不完全统计情况表
图 1‑3Bank0和Bank1的BUFGMUX的连接情况
图 1‑4Bank2和Bank3的BUFGMUX的连接情况
对于使用GTP Transceiver的设计来说,每一个GTP参考时钟是和一个BUFIO2关联在一起的,这可能影响Bank0和Bank2上的全局时钟引脚的使用;对SDR接口来说,GCLK的引脚输入与的冲突如表格 1‑2所示,对DDR接口来说,GTP需要两个BUFIO2,因为DDR的需要将时钟反转,DDR接口对GCLK引脚输入的冲突如表格 1‑3所示。
表格 1‑2SDR接口使用中BUFIO2的输入冲突
表格 1‑3DDR接口使用中BUFIO2的输入冲突
1.2. IO时钟结构
1‑5IO时钟结构
所有的SelectIOn的逻辑资源(输入寄存器、输出寄存器、IDDR2、ODDR2、ISERDES2、OSERDES2)必须被来自BUFIO2的时钟驱动;每个BUFIO2时钟域有4个高速I时钟,由4个专用BUFIO2 缓冲驱动;Spartan6 FPGA有4个BUFIO2时钟域共32BUFIO2.
1‑6BUFIO2时钟域
2. 时钟输入
时钟输入引脚接受外部时钟信号并且直接将其连接至BUFGMUX或者BUFIO2原语。当然,时钟引脚也可以用作普通IO。BUFIO2除了能将时钟输入到IO时钟网络,BUFIO2也提供了专用的接往PLL/DCM或BUFG的时钟路线
2‑1经BUFIO2布线的专用时钟输入
对Spartan-6 FPGA而言,专用的时钟输入引脚位于芯片边沿的中心位置,下图例举了4Bank的Spartan-6 FPGA的时钟引脚布局。
2‑2四Bank Spartan-6 FPGA 时钟引脚布局
3. 时钟管理技术
Spartan-6 FPGA的CMT(时钟管理单元)提供了非常灵活、高性能的时钟;Spartan-6 FPGA的CMT模块位于竖直的全局时钟树的中间列位置,每个CMT包含2个DCM、1个PLL。
3‑1Spartan-6 FPGA CMT位置图
3‑2CMT结构框图
3.1. DCM的功能
DCM:Digital Clock Management,数字时钟管理单元的英文缩写。DCM拥有先进的时钟能力可将时钟直接导入全局时钟分布网络,DCM可以解决各种各样的时钟问题,尤其是在高性能、高频率领域。
- 消除了时钟抖动,提升了整个系统的性能
- 调节一个时钟信号的相位
- 对输入时钟进行倍频或分频,也能够通过动态或静态的提供乘除因子产生新的时钟频率。
- 使时钟信号更健康,占空比稳定在50%
- 镜像、转发、重缓冲一个时钟信号,对输入时钟信号进行去抖斜或转换成差分IO电平。
- 时钟输入抖动过滤
- 扩频时钟产生
- 振荡器工作模式
3‑3DCM结构框图
3.2. PLL的功能
PLL:Phase-Locked Loop,锁相环的英文缩写。Spartan-6 FPGA器件包含6个CMT Tile。PLL的主要目的是作为外部时钟或内部时钟的抖动过滤器或频率合成器。
3‑4PLL结构框图
Spartan6系列之时钟资源详解相关推荐
- Spartan6系列之SelectIO---IOB深入详解
本文摘自https://www.cnblogs.com/dhyc/p/3947101.html,感谢作者 1. 什么是I/O Tile? 对Spartan-6系列FPGA来说,一个IO Ti ...
- 大型网站系统架构系列:负载均衡详解(一)
大型网站系统架构系列:负载均衡详解(一) 2016-03-20 架构说 面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比 ...
- RxJS 系列之二 - Observable 详解
查看新版教程,请访问前端修仙之路 RxJS 系列目录 RxJS 系列之一 - Functional Programming 简介 RxJS 系列之二 - Observable 详解 (本文) RxJS ...
- 大型网站架构系列:负载均衡详解(4)
原文:大型网站架构系列:负载均衡详解(4) 本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法.具体参考文章,详见最后的链接. 三 ...
- 【STM32学习】时钟配置详解
[STM32学习]时钟配置详解 看懂时钟图 结合代码 外部高速时钟修改 看懂时钟图 在刚开始学习32的时候,并不会在意这些,或者即使看了也看的不是很明白.随着学习的深入,我们发现看门狗.定时器.ADC ...
- 英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM
本系列的其它几篇文章: <英飞凌 AURIX 系列单片机的HSM详解(2)--与HSM相关的UCB和寄存器> <英飞凌 AURIX 系列单片机的HSM详解(3)--开发方法> ...
- h2 不能访问localhost_SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台
SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台 作者:一一哥 我在上一章节中讲解了Spring Boot中整合Mybatis,接下来我给大家介绍一款内存数据库--H2. H ...
- 【百度飞浆】YOLO系列目标检测算法详解
YOLO系列目标检测算法详解 1 YOLO发展史 2 YOLO v3目标检测原理 3 PaddleDetection中YOLO v3模型介绍 4 YOLO v3配置演练 1 YOLO发展史 2 YOL ...
- 【百度飞浆】RCNN系列目标检测算法详解
RCNN系列目标检测算法详解 目录 两阶段目标检测算法发展历程 R-CNN R-CNN网络结构 R-CNN网络效果 Fast R-CNN Fast R-CNN网络效果 Faster R-CNN Fas ...
最新文章
- java makedir用法_Java Files.makeDir方法代码示例
- html+css 百度首页练习
- Android开发UI之Fragment-Tabbed Activity的使用
- 研究生 论文写作【要注意的30个禁忌(总体问题、选题方面、摘要方面、研究方法方面、讨论与结果、结论方面)】
- HP-UX平台安装Oracle11gR2数据库
- GB2312,GBK,UTF-8的关系
- python多进程内存共享_python 归纳 (二十)_多进程数据共享和同步_共享内存Value Array...
- npm git 遇到的问题解决笔记
- js值的拷贝和值的引用_到达P值的底部:直观的解释
- winfroms更换皮肤
- 进程管理:fork与exec函数及fork子进程和父进程
- 完美:Docker遇到Intellij IDEA这个插件,再次解放生产力~
- 符号三角形问题 java_算法java实现--回溯法--符号三角形问题
- matlab2012簡明教程課後習題答案,MATLAB习题答案
- TTS离线语音合成应用方案【一】
- 时代周刊:谷歌微软争夺高校电子邮件外包市场
- Linux系统简单介绍
- [HNOI2004]打鼹鼠
- 控制iframe的小技巧
- 太阳能c语言程序,单片机太阳能热水控制器源程序与Proteus仿真原理图(可使利用率最大化)...