【FPGA】FPGA的输入、输出、扇出的那些琐事

11人阅读 评论(0) 收藏 举报
分类:

emmm,之前四天没更新,今天先补一篇,补一篇之前在新浪博客写过的一篇博文,顺序可能和以前的不一样,根据理解重新编辑和补充,也算是重新学习一下。

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

在FPGA输入输出的时候,很多新手可能不理解为什么要加这些原语,这个IBUFGDS什么时候加,那个IBUFDS有什么不同?等等这些问题,可能刚开始的时候有人会告诉你先这样记住,一定要在这个时候加,这里就该加这个,哪里该加那个。不能只是知其然不知其所以然。今天我在看以前的博客的时候又多了一层新的理解,下面通过前几天发的FPGA内部结构、FPGA的时钟这些一起通过原理来理解为什么要加IBUFGDS,什么时候加这些原语。

     FPGA全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从而使全局时钟到达芯片内部的所有可配置单元(CLB)、I/O单元(IOB)和选择性块RAM(Block Select RAM)的时延和抖动都为最小。然后将那些原语分为两类:1,缓冲。2,驱动。

    缓冲:就是输入缓冲或者输出缓冲,这些缓冲主要用来片外输入时钟或者片外差分输入的信号处理,因为FPGA有对时钟的专门资源,同时也要保证时钟的精准,有效解决颤抖、延迟等问题,另外就是差分信号(包括差分时钟)进入片内之后不经过IBUFGDS、IBUFDS缓冲无法直接处理。另外对于时钟来说,时钟引脚的输入只能接IBUGDS缓冲器,IBUFG和IBUFGDS的输入端仅仅与芯片的专用全局时钟输入管脚有物理连接,与普通IO和其它内部CLB等没有物理连接。如果不用原语链接这两部分时钟信号无法到达芯片内部的CLB等资源,也就是无法使用。(补充:IBUGDS和时钟输入引脚为对应的,也就是IBUGDS的输入必须为时钟引脚,时钟引脚必须链接IBUFGDS。这段中IBUFGDS   也可以换成IBUFG)   对了还有一个OBUFDS就是差分输出缓冲。

    驱动:驱动在时钟约束部分说过,当信号扇出过大是可以通过加BUFG来增加扇出,这里的BUFG就是全局缓冲,以BUFG为例,该原语的输入信号可以是IBUFGDS的输出也可以是逻辑信号的输出(内部信号),但是过一次BUFG有大约10ns的延时,但是通过BUFG之后输出到片内所有单元的延时可以忽略不计,另外一个典型的TTL逻辑门最多有10个扇出信号,而缓冲器可以驱动20到30个扇出信号,在这里可以理解为反相器,反相器一般情况下扇出较大。

    一般情况下IBUFGDS+BUFG或者IBUFG+BUFG可配套使用,当全局时钟扇出较少的时候可以不加BUFG。

---------------------------------------驱动--------------------------------------------------------

    另外缓冲分为全局时钟缓冲和局部时钟缓冲,局部始终缓冲BUFH、BUFR,对于BUFH在Xilinx FPGA 学习笔记——时钟资源这篇文章中有写,可移步查看。(虽然我没用过局部始终缓冲)另外在例化PLL或者MMCM这种时钟IP核时,要对输入输出时钟的类型进行选择,大家可以看到有BUFG和BUFH的下拉选项。

---------------------------------------缓冲------------------------------------------------------------

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

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

IBUFDS instance_name (.O (user_O),
.I (user_I),
.IB (user_IB));

OBUFDS是一个输出缓冲器,支持低压差分信号。与IBUFDS对应

OBUFDS instance_name (.O (user_O),
.OB (user_OB),
.I (user_I));

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

IBUFGDS instance_name (.O (user_O),
.I (user_I),
.IB (user_IB));

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

    比较基础,但是最基础的东西才是最真实的东西。加油!

查看评论

FPGA 扇入扇出

最近在学习有关FPGA方面的知识,在看一些FPGA的datasheet时,看到fan-out和fan-in这样的字眼,乍一看还真不知所云,继续往下看还是云里雾里,于是用Google在线翻译了一下,上面...
  • zmq5411
  • zmq5411
  • 2012-07-23 15:19:34
  • 5446

FPGA扇出问题

  • 2013年06月02日 17:02
  • 16KB
  • 下载

如何解决fpga high fanout问题

Fanout,即扇出,指模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛。因此,在写代码时应尽量避免高扇出的情况。但是,在某些特殊情况下,...
  • shshine
  • shshine
  • 2016-09-06 17:31:10
  • 1018

FPGA经验分享——时序收敛之路

首先感谢 coyoo 博主一直以来在 EDN 上分享他的经验,也感谢他这次慷慨拿出新作与我们分享。   非常希望能够拜读 coyoo 博主的大作,尤其希望对虚拟 JTAG 技术有一个深入的了解。 ...
  • a8039974
  • a8039974
  • 2016-06-23 22:07:51
  • 4439

FPGA时序约束

时序性能是 FPGA 设计最重要的指标之一。造成时序性能差的根本原因有很多,但其直接原因可分为三类: 布局较差、逻辑级数过多以及信号扇出过高。下面通过时序分析实例来定位原因并给出相应的解决方案。 ...
  • a379039233
  • a379039233
  • 2015-01-01 19:02:19
  • 1380

FPGA Fanout-Fanin(扇入扇出)

在谈到多扇出问题之前,先了解几个相关的信息,也可以当成是名词解释。扇入、扇出系数  扇入系数是指门电路允许的输入端数目。一般门电路的扇入系数为1—5,最多不超过8。扇出系数是指一个门的输出端所驱动同类...
  • Pieces_thinking
  • Pieces_thinking
  • 2017-08-12 21:20:38
  • 802

一个例子说明FPGA中PLL的重要性 .

PLL的重要性 PLL,即锁相环。是FPGA中的重要资源。由于一个复杂的FPGA系统往往需要多个不同频率,相位的时钟信号。所以,一个FPGA芯片中PLL的数量是衡量FPGA芯片能力的重要指标。 今...
  • gjy938815
  • gjy938815
  • 2013-08-17 13:29:26
  • 715

将BUFG上的时钟信号通过FPGA的普通IO输出

如需转载,请将下列字段一起转载。 新浪海风博客http://blog.sina.com.cn/dingyunfeng   声明:以下内容仅指Xilinx Spartan6系列,其他FPG...
  • daba0uo
  • daba0uo
  • 2016-10-06 12:08:41
  • 1520

FPGA源同步输入时序约束(一)

fpga 源同步输入约束 时钟约束
  • huan09900990
  • huan09900990
  • 2017-08-14 09:50:04
  • 769

FPGA时钟处理

今天做了一个小程序,完成FPGA和DSP之间的数据传输,即FPGA产生一个数据使能、开始标志以及8位的数据,当有中断响应的时候,传输给DSP,之后DSP再将此组数据传递给FPGA。 在这个程序中出现了...
  • yundanfengqing_nuc
  • yundanfengqing_nuc
  • 2017-09-21 14:39:40
  • 225
    个人资料
    等级:
    访问量: 170
    积分: 146
    排名: 110万+
    文章分类
    文章存档