xilinx原语详解及仿真——IDDR

供稿:hz-xin.com     日期:2025-01-08
IDDR的主要功能是将输入的双沿信号转换为单沿信号输出给FPGA内部逻辑使用。IDDR位于ILOGICE部分,在讲解IDDR使用前,需要了解ILOGICE的结构及功能。

1、ILOGICE

ILOGICE位于IOB旁边,包含同步元件,用于在数据通过IOB进入FPGA时捕获数据。7系列芯片中ILOGICE可能是ILOGICE2(HP I/O bank)或ILOGICE3(HR I/O bank)。ILOGICE3模块在输入上支持可选的静态未补偿零保持(ZHOLD)延迟线,以补偿时钟插入延迟。ZHOLD默认启用,除非时钟源是MMCM或PLL,或在Xilinx设计约束(XDC)中设置了IOBDELAY属性。ILOGICE不是基本元件,用户不能通过代码去对ILOGICE进行例化,但ILOGICE包含用户实例化的元件,例如布局和布线后的输入触发器(IFD)或输入DDR元件(IDDR)。

2、IDDR模式

IDDR的功能是将双沿采样的数据转换为单沿数据传输给FPGA内部使用。FPGA内部的D触发器一般是在时钟上升沿采集输出数据,这种方式被称为SDR。在SDRAM之后,为了提高数据传输速率,推出了DDR,在时钟的上升沿和下降沿都能传输数据。FPGA调用IDDR原语即可实现。

IDDR原语支持三种操作模式:OPPOSITE_EDGE模式、SAME_EDGE模式、SAME_EDGE_PIPELINED模式。OPPOSITE_EDGE模式在时钟上升沿和下降沿都有数据变化,SAME_EDGE模式只会在时钟上升沿输出数据,SAME_EDGE_PIPELINED模式与SAME_EDGE模式类似,只是将Q1输出数据延迟一个时钟周期。

3、IDDR原语

IDDR原语的参数如表2所示。一般把DDR_CLK_EDGE参数设置为SAME_EDGE_PIPELINED模式即可,其余参数可以不进行设置,保持默认即可。

4、查看硬件走线

在Vivado中获取原语模板的方法是在Tools选项卡下点击Language Templates,然后搜索框搜索想要的原语模块名,选择对应器件下的对应原语,赋值到代码中使用即可。

5、ILOGICE的寄存器(IFD)使用

如果不使用ILOGICE的IDDR功能,可以将ILOGICE配置成触发器,这个触发器相比FPGA内部逻辑的触发器,更靠近FPGA管脚,使接口信号更有利于满足建立时间要求。

总结本文就几点:了解ILOGICE的结构及功能,能够实现IDDR和触发器功能;熟悉IDDR的三种模式,常用的是SAME_EDGE_PIPELINED模式,并对三种模式依次仿真,通过查看走线图,更加详细了解IOB和ILOGICE的结构;通过使用原语,将触发器放入ILOGICE中,减少从FPGA管脚到触发器的路径。

xilinx原语详解及仿真——IDDR
ZHOLD默认启用,除非时钟源是MMCM或PLL,或在Xilinx设计约束(XDC)中设置了IOBDELAY属性。ILOGICE不是基本元件,用户不能通过代码去对ILOGICE进行例化,但ILOGICE包含用户实例化的元件,例如布局和布线后的输入触发器(IFD)或输入DDR元件(IDDR)。2、IDDR模式 IDDR的功能是将双沿采样的数据转换为单沿数据...

xilinx原语详解及仿真——ODDR
在Xilinx的逻辑设计中,OLOGIC的奇妙之处在于它能将单沿数据转化为双沿,这对于信号的精确传输至关重要。OLOGIC,分为OLOGICE2和OLOGICE3两种类型,尽管型号不同,但它们在IOB内执行相同的信号输出任务。这个结构被分为上下两部分,包含配置数据和三态路径,如图所示。使用ODDR时,D1和D2作为输入信号,转换...

xilinx原语详解及仿真——ODELAYE2
本文聚焦于讲解Xilinx 7系列FPGA中独特的ODELAYE2原语,其仅存在于高阶(HP)银行中,A7系列FPGA则无此结构,因此无法使用ODELAYE2原语。图2直观展示了FPGA内部这五个关键结构的位置,每个输入信号均需通过IOB,可能经过IDELAYE2,然后通过ILOGIC到达内部逻辑,而输出信号则从内部逻辑经过OLOGIC,选择性地通...

xilinx原语详解及仿真——ODDR
ODDR模式仿真如下:设计文件对应代码,din0在内部触发器打一拍得到dout0输出,din0通过OLOGIC内部触发器打一拍得到dout1输出。将单沿输入信号din1、din2转化为单沿信号dout2,代码如下。对应Test Bench代码如下,对OPPOSITE_EDGE模式进行仿真,结果如图6所示。结果与图4一致,不再详述。对SAME_EDGE模式进行...

Xilinx原语详解——IBUFDS & OBUFDS
对应于Verilog HDL原语模板,用于实现OBUFDS的功能。IOBUFDS详解考虑到实际应用中可能需要双向差分信号的转换,Xilinx提供了IOBUFDS,该器件能够实现双向差分转换。其框图如图5所示,T为三态使能信号,当T为低电平时,I作为FPGA输出的单端信号,而IO和IOB作为转换后的差分输出引脚。当T为高电平时,三态门关闭...

Xilinx原语详解——IBUFDS & OBUFDS
为了实现双向差分转换,Xilinx还提供了IOBUFDS原语。该原语结合了IBUFDS和OBUFDS的功能,通过一个三态使能信号T来控制其工作模式。当T为低电平时,IOBUFDS作为差分转换器,可以将单端信号转换为差分信号输出;当T为高电平时,IOBUFDS则作为差分信号接收器,接收差分信号并将其转换为单端信号。通过仿真,可以...

Xilinx原语单个IDELAY3使用解析
参考Xilinx文档:ug571 单个IDELAY在VAR_LOAD模式下的使用解析如下:在COUNT模式下,设置参数和动态调节延时的公式为:Tcount_delay=0.127ns+DELAY_VALUE*0.004ns,且DELAY_VALUE值不超过511(即DELAY_VALUE=CNTVALUEIN)。而在TIME模式下,设置参数的延时公式为:Ttime_delay=0.127ns+DELAY_VALUE*0....

xilinx ise怎么查看原语
可以去xilinx官网找原语文档,附件是 virtex6 的原语文档。文档有给出原语的解释、用法,并给出 VHDL 和 verilog 的实例。如下图是 BUFG 的verilog实例:

XILINX——IDELAY应用
例如在以太网RGMII数据链路层接收端,IDELAY用于双沿时钟延迟,确保数据能够正确采集。赛灵思7系列包含两种bank,HP BANK用于高速存储器和芯片间传输,HR BANK则支持更高电压范围,两者都包含输入延时资源。输出延时资源仅在HP BANK中提供。IDELAY2原语模板可在vivado语言模板中找到,具有固定和动态配置模式。...

仿真指令中的设置项目包括哪三种
2、综合后仿真:使用综合网表仿真,验证综合后设计满足功能需求。该阶段仿真不太常用,可以用时序仿真(timingsimulation)来估计时间;功能仿真(functionalsumulation)由层次化的网表组成,最底层由Xilinx原语构成。3、实现后仿真:可以进行功能仿真和时序仿真,且与FPGA硬件上的工作情况最为接近,确保实现后...