博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用
阅读量:4249 次
发布时间:2019-05-26

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

来源:

目前,大型设计一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时和抖动提出了更高的要求。为了满足同步时序设计的要求,一般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟。 FPGA全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从而使全局时钟到达芯片内部的所有可配置单元(CLB)I/O单元(IOB)和选择性块RAM(Block Select RAM)的时延和抖动都为最小。为了适应复杂设计的需要,XilinxFPGA中集成的专用时钟资源与数字延迟锁相环(DLL)的数目不断增加,最新的Virtex II器件最多可以提供16个全局时钟输入端口和8个数字时钟管理模块(DCM)

与全局时钟资源相关的原语常用的与全局时钟资源相关的Xilinx器件原语包括:IBUFGIBUFGDSBUFGBUFGPBUFGCEBUFGMUXBUFGDLLDCM等,如图1所示。
1. IBUFG
即输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUF元,否则在布局布线时会报错。 IBUFG支持AGPCTTGTLGTLPHSTLLVCMOSLVDCILVDSLVPECLLVTTLPCIPCIX SSTL等多种格式的IO标准。
G
    2. IBUFGDS
IBUFG的差分形式,当信号从一对差分全局时钟管脚输入时,必须使用IBUFGDS作为全局时钟输入缓冲。IBUFG支持BLVDSLDTLVDSEXTLVDSLVPECLULVDS等多种格式的IO标准。
3. BUFG
是全局缓冲,它的输入是IBUFG的输出,BUFG的输出到达FPGA内部的IOBCLB、选择性块RAM的时钟延迟和抖动最小。
   
4. BUFGCE
是带有时钟使能端的全局缓冲。它有一个输入I、一个使能端CE和一个输出端O。只有当BUFGCE的使能端CE有效(高电平)时,BUFGCE才有输出。     

5. BUFGMUX是全局时钟选择缓冲,它有I0I1两个输入,一个控制端S,一个输出端O。当S为低电平时输出时钟为I0,反之为I1。需要指出的是BUFGMUX的应用十分灵活,I0I1两个输入时钟甚至可以为异步关系。

6. BUFGP相当于IBUG加上BUFG
7. BUFGDLL
是全局缓冲延迟锁相环,相当于BUFGDLL的结合。BUFGDLL在早期设计中经常使用,用以完成全局时钟的同步和驱动等功能。随着数字时钟管理单元(DCM)的日益完善,目前BUFGDLL的应用已经逐渐被DCM所取代。 
8. DCM
即数字时钟管理单元,主要完成时钟的同步、移相、分频、倍频和去抖动等。DCM与全局时钟有着密不可分的联系,为了达到最小的延迟和抖动,几乎所有的DCM应用都要使用全局缓冲资源。DCM可以用Xilinx ISE软件中的Architecture Wizard直接生成。

全局时钟资源的使用方法全局时钟资源的使用方法(五种)

1IBUFG + BUFG的使用方法:
IBUFG
后面连接BUFG的方法是最基本的全局时钟资源使用方法,由于IBUFG组合BUFG相当于BUFGP,所以在这种使用方法也称为BUFGP方法。

2. IBUFGDS +BUFG的使用方法: 

当输入时钟信号为差分信号时,需要使用IBUFGDS代替IBUFG

3. IBUFG + DCM +BUFG的使用方法: 

这种使用方法最灵活,对全局时钟的控制更加有效。通过DCM模块不仅仅能对时钟进行同步、移相、分频和倍频等变换,而且可以使全局时钟的输出达到无抖动延迟。

4. Logic BUFG的使用方法: 

BUFG不但可以驱动IBUFG的输出,还可以驱动其它普通信号的输出。当某个信号(时钟、使能、快速路径)的扇出非常大,并且要求抖动延迟最小时,可以使用BUFG驱动该信号,使该信号利用全局时钟资源。但需要注意的是,普通IO的输入或普通片内信号进入全局时钟布线层需要一个固有的延时,一般在10ns左右,即普通IO和普通片内信号从输入到BUFG输出有一个约10ns左右的固有延时,但是BUFG的输出到片内所有单元(IOBCLB、选择性块RAM)的延时可以忽略不计为“0”ns

5 Logic + DCM + BUFG的使用方法:

DCM同样也可以控制并变换普通时钟信号,即DCM的输入也可以是普通片内信号。使用全局时钟资源的注意事项全局时钟资源必须满足的重要原则是:使用IBUFGIBUFGDS的充分必要条件是信号从专用全局时钟管脚输入。换言之,当某个信号从全局时钟管脚输入,不论它是否为时钟信号,都必须使用IBUFGIBUFGDS;如果对某个信号使用了IBUFGIBUFGDS硬件原语,则这个信号必定是从全局时钟管脚输入的。如果违反了这条原则,那么在布局布线时会报错。这条规则的使用是由FPGA的内部结构决定的:IBUFGIBUFGDS的输入端仅仅与芯片的专用全局时钟输入管脚有物理连接,与普通IO和其它内部CLB等没有物理连接。另外,由于BUFGP相当于IBUFGBUFG的组合,所以BUFGP的使用也必须遵循上述的原则。

全局时钟资源的例化方法 

全局时钟资源的例化方法大致可分为两种: 
一是在程序中直接例化全局时钟资源;

二是通过综合阶段约束或者实现阶段约束实现对全局时钟资源的使用;

第一种方法比较简单,用户只需按照前面讲述的5种全局时钟资源的基本使用方法编写代码或者绘制原理图即可。 
第二方法是通过综合阶段约束或实现阶段的约束完成对全局时钟资源的调用,这种方法根据综合工具和布局布线工具的不同而异。

--------------------------------------------------------------------------------------------------------------

 IBUFDSIBUFGDSOBUFDS都是差分信号缓冲器,用于不同电平接口之间的缓冲和转换。IBUFDS 是差分输入的时候用,OBUFDS是差分输出的时候用,而IBUFGDS则是时钟信号专用的输入缓冲器。

下面详细说明:

 

IBUFDS

DifferentialSignaling Input Buffer with Selectable I/O Interface

//差分输入时钟缓冲器

 

IBUFDS是一个输入缓冲器,支持低压差分信号(如LVCMOSLVDS等)。在IBUFDS中,一个电平接口用两个独特的电平接口(IIB)表示。一个可以认为是主信号,另一个可以认为是从信号。主信号和从信号是同一个逻辑信号,但是相位相反。

 

 

Inputs

Outputs

I

IB

O

0

0

No Change

0

1

0

1

0

1

1

1

No Change

 

 

 

 

VerilogInstantiation Template

IBUFDS instance_name (.O(user_O),

                      .I(user_I),

                      .IB(user_IB));

 

 

IBUFGDS

Dedicated(专用的) Differential Signaling Input Bufferwith Selectable I/O Interface

//专用差分输入时钟缓冲器

 IBUFGDS是一个连接时钟信号BUFGDCM的专用的差分信号输入缓冲器。在IBUFGDS中,一个电平接口用两个独立的电平接口(IIB)表示。一个可以认为是主信号,另一个可以认为是从信号。主信号和从信号是同一个逻辑信号,但是相位相反。

 

 

Inputs

Outputs

I

IB

O

0

0

- *

0

1

0

1

0

1

1

1

- *

 

 

* The dash (-)means No Change.

VerilogInstantiation Template

IBUFGDS instance_name (.O(user_O),

                       .I(user_I),

                       .IB(user_IB));

 

 

 

OBUFDS

DifferentialSignaling Output Buffer with Selectable I/O Interface

//差分输出时钟缓冲器

OBUFDS是一个输出缓冲器,支持低压差分信号。OBUFDS隔离出了内电路并向芯片上的信号提供驱动电流。它的输出用OOB两个独立接口表示。一个可以认为是主信号,另一个可以认为是从信号。主信号和从信号是同一个逻辑信号,但是,相位相反。

 

 

Inputs

Outputs

I

O

OB

0

0

1

1

1

0

 

 

VerilogInstantiation Template

OBUFDS instance_name (.O(user_O),

                      .OB(user_OB),

                      .I(user_I));

 

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

你可能感兴趣的文章
JVM——深入解析之初识
查看>>
JVM——深入解析原理和运行机制(一)类加载过程
查看>>
JVM——深入解析原理和运行机制(一)类加载器
查看>>
VB与flash的交互
查看>>
番茄工作法
查看>>
SQL Server 错误:18456。用户“sa”登录失败
查看>>
SQL Server 2008阻止保存要求重新创建表的更改的解决
查看>>
学生信息管理系统之数据库远程使用
查看>>
如何做一名优秀的程序员
查看>>
【C++】C++11新增关键字详解
查看>>
【Ubuntu】VirtualBox显卡驱动VBoxVGA、VBoxSVGA、VMSVGA +3D对播放视频的影响
查看>>
【Gstreamer】在虚拟机中无法使用硬件加速:gstreamer1.0-vaapi
查看>>
免费图标查询、下载的网站
查看>>
【经验】Lenovo/ThinkPad 进入BIOS的方法汇总
查看>>
【Qt】QPixmap加载图片报错:Corrupt JPEG data: premature end of data segment Didn't expect more than one scan
查看>>
【Ubuntu】ubuntu设置GUI程序自启动
查看>>
【Ubuntu】ping: unknown host www.baidu.com
查看>>
【Qt】qss样式表之:QCalendarWidget,日历窗口样式表设置
查看>>
【Qt】qss样式表之:自定义属性实现动态切换样式
查看>>
【GStreamer】基本概念及安装
查看>>