当前位置:首页 > FPGA > 正文内容

Xilinx常用原语总结和使用

chanra1n3年前 (2022-11-10)FPGA14097

原语是 Xilinx 器件底层硬件中的功能模块,它使用专用的资源来实现一系列的功能。相比于 IP 核,原 语的调用方法更简单,但是一般只用于实现一些简单的功能。本章主要用到了 BUFG、BUFIO、IDDR、ODDR、 IDELAYE2 和 IDELAYCTRL。 

BUFG:全局缓冲,BUFG 的输出到达 FPGA 内部的 IOB、CLB、块 RAM 的时钟延迟和抖动最小。BUFG原语模板如下:

image.png

除了 BUFG 外,常用的还有 BUFR,BUFR 是 regional 时钟网络,它的驱动范围只能局限在一个 clock region 的逻辑。BUFR 相比 BUFG 的最大优势是偏斜和功耗都比较小。

BUFIO:BUFIO 是 IO 时钟网络,其独立于全局时钟资源,适合采集源同步数据。它只能驱动 IO Block 里面的逻辑,不能驱动 CLB 里面的 LUT,REG 等逻辑。BUFIO 原语模板如下:

image.png

BUFIO 在采集源同步 IO 数据时,提供非常小的延时,因此非常适合采集比如 RGMII 接收侧的数据, 但是由于其不能驱动FPGA的内部逻辑,因此需要BUFIO和BUFG配合使用,以达到最佳性能。如ETH_RXC 的时钟经过 BUFIO,用来采集端口数据;ETH_RXC 经过 BUFG,用来作为除端口采集外的其他模块的操 作时钟。

IDDR:在7系列设备的ILOGIC block中有专属的registers来实现input double-data-rate(IDDR) registers, 将输入的上下边沿 DDR 信号,转换成两位单边沿 SDR 信号。IDDR 的原语结构图如下图所示:

image.png

image.png

image.png

image.png

DDR_CLK_EDGE 参数为 IDDR 的三种采集模式,分别为“OPPOSITE_EDGE”、“SAME_EDGE”和 “SAME_EDGE_PIPELINED”模式。

OPPOSITE_EDGE 模式的时序图如下图所示:

image.png

SAME_EDGE_PIPELINED 模式下,在时钟的上升沿输出 Q1 和 Q2,Q1 和 Q2 虽然在同一个 cycle 输出, 但整体延时了一个时钟周期。在使用 IDDR 时,一般采用此种模式。

ODDR:通过 ODDR 把两路单端的数据合并到一路上输出,上下沿同时输出数据,上升沿输出 a 路, 下降沿输出 b 路;如果两路输入信号一路固定为 1,另外一路固定为 0,那么输出的信号实际上是时钟信号。 ODDR 的原语结构图如下图所示:

image.png

image.png

image.png

此种模式下,在 FPGA 内部需要两个反相时钟来同步 D1 和 D2,此种模式使用较少。 SAME_EDGE 模式的时序图如下图所示:

image.png

此种模式下,数据可以在相同的时钟边沿输出到 Q,一般采用此种模式。 IDELAYE2:IO 延时原语,用于在信号通过引脚进入芯片内部之前,进行延时调节,一般高速端口信 号由于走线延时等原因,需要通过 IDELAYE2 原语对数据做微调。IDELAYE2 原语模板如下:

image.png

image.png

IDATAIN 为延时前的输入信号,DATAOUT 为延时后的输出信号。 REFCLK_FREQUENCY参数为IDELAYCTRL 原语的参考时钟频率,一般为200Mhz;IDELAY_VALUE 参数用来设置延时的 tap 数,范围为 1~31,每个 tap 数的延时时间和参考时钟频率有关。 和 IDELAYE2 对应的还有 ODELAYE2,由于达芬奇 Pro 系列没有 ODELAYE2 原语,故此处不做讨论。 IDELAYCTRL:IDELAYCTRL 和 IDELAYE2 一般同时使用,IDELAYCTRL 对 IDELAYE2 延时进行校 准。IDELAYE2 原语如下:

image.png

IODELAY_GROUP 为延时 IO 分组,一般数据接口位于多个 BANK 时,才需要分组。 IDELAYCTRL 通过参考时钟 REFCLK 来校准 IDELAY2 每个 tap 的延时值,可用的 REFCLK 频率为 190Mhz~210Mhz 或者 290Mhz~310Mhz。时钟频率越高对应的 tap 延时平均值越小,即延时调节精度越高。 当参考时钟为 200Mhz 时,一个 tap 为 78ps。

(本文部分摘自正点原子 达芬奇 Pro 之 FPGA 开发指南)

扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://myfpga.cn/index.php/post/287.html

分享给朋友:

“Xilinx常用原语总结和使用” 的相关文章

Intel FPGA初级考试模拟试题 四套含答案

Intel FPGA初级考试模拟试题 四套含答案

*1.下列对异步信号进行同步的描述错误的是(使用锁存器)。采用保持寄存器加握手信号的方法特殊的具体应用电路结构,根据应用的不同而不同使用锁存器异步 FIFO *2.FPGA 的可编程是主要基于什么结构(查找表(LUT))。查找表(LUT)ROM 可编程PAL 可编程与或阵列可编程解析:FP...

半加器

半加器

半加器:两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。即两个一位二进制数的加法运算电路。半加器 模块框图:sum:结果位count:进位半加器 真值表:半加器 波形图:代码部分:选择器代码:在Src文件夹中新建 half_adder.v文件module half_adder...

时序约束(TCL脚本)

时序约束(TCL脚本)

get_ports的使用方法如下:# 获取所有端口 get_ports *   # 获取名称中包含data的端口 get_ports *data*   # 获取所有输出端口 get_ports -filter {DIRECTION == OUT}   # 获取所有输入端口 all...

避免Latch产生

避免Latch产生

Latch简介:                Latch其实就是锁存器,是一种在异步电路系统中,对输入信号电平敏感的单元,用来存储信息。        锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据被锁存,输入信号不起作用。因此,锁存器也被称为透...

(手册)LEDA Version 2006.06 User Guide 编码规则检查工具

(手册)LEDA Version 2006.06 User Guide 编码规则检查工具

navigator.pdfinstall.pdfcrules.pdfrelnotes.pdftcl.pdftutor.pdfuser.pdfversl.pdfvrsl.pdf...

(手册)SpyGlass® CDC Customer Training Release 5.1.0

(手册)SpyGlass® CDC Customer Training Release 5.1.0

SpyGlass-CDC-Training-Slides.pdf...