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

Xilinx常用原语总结和使用

chanra1n2年前 (2022-11-10)FPGA8846

原语是 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://world.myfpga.cn/index.php/post/287.html

分享给朋友:

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

基础实验十三,DS18B20温度传感器

基础实验十三,DS18B20温度传感器

//==========================================================================// Author     : ChanRa1n// Description: Training for Intel FPGA/...

SOC 在线修改设备树和FPGA配置文件 并在线配置FPGA

SOC 在线修改设备树和FPGA配置文件 并在线配置FPGA

测试过的平台:     1、DE-10 Cyclone V开发板              ...

Xilinx FIFO和ILA学习

Xilinx FIFO和ILA学习

`timescale 1ns / 1ps//-------------------------------------------------------//Filename       ﹕ FIFO_TOP.v//Author      ...

Verilog实现串并转换

Verilog实现串并转换

项目文件:SIPO.zip//------------------------------------------------------// File Name        : SIPO.v// Author       &n...

点亮LED灯实验

点亮LED灯实验

设计流程:设计规划 -> 波形绘制 -> 代码编写 -> 代码编译 -> 逻辑仿真 -> 波形对比 -> 绑定管脚 -> 分析综合布局布线 -> 上板验证新建项目文件夹(led):Doc:放置文档资料(数据手册、波形图、文档、项目日志)Pri:放置工程...

全加器(层次化设计)

全加器(层次化设计)

该篇博客根据上一篇半加器的设计,再结合层次化的设计思想来实现一个全加器!层次化设计理论部分:数字电路中根据模块层次的不同有两种基本的结构设计方法:自底向上的设计方法 和 自顶向下的设计方法自底向上(Bottom-Up)        自底向上的设计是一种传统的设计方法,对设计进行逐次划分的过程是从存...