博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spartan-6的I/O时钟缓冲器
阅读量:2027 次
发布时间:2019-04-28

本文共 1996 字,大约阅读时间需要 6 分钟。

I/O 时钟缓冲器

除了全局时钟缓冲器外,Spartan-6还包含驱动高速I/O时钟区域的时钟缓冲器。

I/O 时钟缓冲器的原语如表2-9所示。

I/O时钟缓冲器的原语

表2-9 I/O时钟缓冲器的原语

(1) BUFIO2。

BUFIO2接收来自GCLK时钟输入,产生两个时钟输出和一个驱动IOSERDES2的选通脉冲,如图2-9所示。

(2) BUFIO2_2CLK。

BUFIO2_2CLK和BUFIO2功能几乎相同,不同的是BUFIO2_2CLK的输入为两个单端时钟或者一对差分时钟(IBUFDS_DIFF_OUT 的输出),如图2-10所示。

BUFIO2的原语

图2-9 BUFIO2的原语

BUFIO2_2CLK的原语

图2-10 BUFIO2_2CLK的原语

(3) BUFIO_2FB。

BUFIO2FB 是一个单输入单输出的缓冲器,有一个输出属性控制输出延时,如图2-11所示。当属性DIVIDE_BYPASS 设置为TRUE时,BUFIO_2FB等同于BUFIO2旁路延时;

当属性DIVIDE_BYPASS设置为FALSE时,BUFIO_2FB的延时与BUFIO2 的DIVCLK输出类似,保持BUFIO2的输出和BUFIO_2FB相位对齐。

BUFIO_2FB的原语

图2-11 BUFIO_2FB的原语

BUFIO_2FB缓冲器为CMT(PLL或DCM)参考输入CLKIN和反馈输入CLKFB的时钟布线延时提供了一个很好的解决方法。当使用CMT的反馈路径时,ISE会自动插入BUFIO_2FB和BUFIO2缓冲器,如图2-12所示。

BUFIO_2FB 缓冲器与时钟布线延时匹配

图2-12 BUFIO_2FB 缓冲器与时钟布线延时匹配

(4) BUFPLL。

图2-13所示为BUFPLL的原语,主要用来驱动高速I/O,为ISERDES2和OSERDES2提供时钟。

它会将PLL的LOCK输出与GCLK、SERDES选通和PLL时钟对齐。其中的IOCLK仅仅是将输入时钟通过了一级缓冲的版本。LOCK输出信号其实与PLL的LOCKED信号具有相同的功能,它们的区别在于,在PLL 锁定、BUFPLL对齐SERDES选通信号之前,LOCK不会变高。

BUFPLL的原语

图2-13 BUFPLL的原语

Spartan-6器件每个BANK有两个BUFPLL,专用于PLL,不建议将其用作逻辑时钟。

(5) BUFPLL_MCB。

BUFPLL_MCB专用于Spartan-6内集成的存储器控制器。

时钟网络

Spartan-6的时钟布线网络包括由BUFGMUX驱动的全局时钟网络和由I/O时钟缓冲器(BUFIO2)、PLL时钟缓冲器(BUFPLL)驱动的I/O区域时钟网络。

(1) 全局时钟网络。

Spartan-6的全局时钟网络由16个位于芯片中央的BUFGMUX驱动。BUFGMUX的输入信号有以下3种。

顶部和底部BANK的时钟输入。左边和右边BANK的时钟输入。FPGA内部互联和/或PLL/DCM。

这3种资源通过芯片中央的切换模块切换。

每个BUFGMUX输出驱动一个垂直方向的时钟脊线,沿着这个方向,水平跨接行时钟HCLK。

HCLK的输入有两种,通过专用的多路选择器切换。

BUFGMUX的输出。PLL或者DCM的输出,每个HCLK对应一个PLL或者两个DCM。

由于Spartan-6中有32个全局时钟输入引脚和16个全局输入缓冲器,所以有可能两个时钟输入引脚驱动一个全局时钟。当通过全局时钟引脚(IBUFG或IFUFGDS)直接驱动全局时钟缓冲器(BUFG或BUFGMUX)时,BANK0、BANK1和BANK5分享8个全局时钟缓冲器,类似地,BANK2、BANK3和BANK4分享8个全局时钟缓冲器,如图2-14所示。

Spartan-6 FPGA全局时钟结构图

图2-14 Spartan-6 FPGA全局时钟结构图

为了增加布线的灵活性,当使用第二个BUFIO2时,BUFIO2可用作第二个全局时钟缓冲器。由于系统资源按照主BUFIO2路径优化,因此对于不使用主BUFIO2资源的全局时钟,系统性能会受影响。

(2) I/O区域时钟网络。

如图2-15所示,一个I/O时钟网络能通过BUFPLL被PLL驱动,每个PLL有2个相关缓冲器,扩展到整个I/O BANK。

Spartan-6 FPGA I/O BANK内的I/O时钟结构

图2-15 Spartan-6 FPGA I/O BANK内的I/O时钟结构

每个BANK有两个分离的I/O时钟区域,每半个I/O Bank都有4个高速I/O时钟,由4个专用BUFIO2缓冲器驱动。

I/O时钟输入引脚可以通过BUFIO2扩展到整个BANK,如图2-16所示。使用两个BUFIO2资源,例如BUFIO2_0和BUFIO2_4,将时钟扩展到整个BANK。

I/O BANK内的I/O时钟

图2-16 I/O BANK内的I/O时钟

当输入延时使能的时候,一个输入引脚不可以驱动两个BUFIO2缓冲器。BUFIO2除了提供输入引脚到I/O时钟网络上,还提供了到PLL/DCM和BUFG的专用时钟路径。

转载地址:http://xacaf.baihongyu.com/

你可能感兴趣的文章
C# 图片旋转360度程序
查看>>
MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法...
查看>>
MVC 自定义IModelBinder实现json参数转Dictionary<string, string>
查看>>
MySQL 常用命令(持续更新)
查看>>
jQuery开发经验实例笔记
查看>>
jQuery之AJAX
查看>>
HTML常用字符
查看>>
HTML表单
查看>>
jQuery_基础
查看>>
javascript之尺寸,位置,溢出
查看>>
jQuery工具函数
查看>>
cookie
查看>>
javascript之window对象
查看>>
HttpCookie类
查看>>
HTTP报文
查看>>
Linux性能优化从入门到实战:17 网络篇:网络基础
查看>>
Jupyter Notebook 安装与使用
查看>>
OpenVINO 安装及使用
查看>>
《C++性能优化指南》
查看>>
Nginx 和 Apache 优缺点
查看>>