《Xilinx—UG471中文翻译》(1)IDELAYE2原语介绍

一、7 系列fpgas selectio 资源
selectio,就是i/o接口以及i/o逻辑的总称。《ug471--selectio》 篇可以分成3部分:第1部分介绍i/o的电气特性,第2部分介绍i/o逻辑资源,第3部分介绍高级的i/o逻辑资源(serializer/deserializer)。
说到i/o,必须先提到fpga的bank。在7系列的fpga中,bank分为hr(high-range)bank和hp(high-performance) bank。hp bank只能支持小于等于1.8v电平标准的i/o信号,hr bank则支持小于等于3.3v电平标准的i/o信号。hp bank专为高速i/o信号设计,支持dci(数控阻抗),而hr bank则适合更大众化的所有i/o信号设计。下表列出了hp bank 和hr bank的特性。
无论是hr或者hp bnank,每个bank都包含50个i/o管脚,每个i/o管脚都可配置成输入、输出。每个bank的首尾管脚只能作为单端i/o,其余48个i/o则可配置成24对差分i/o。
二、selectio的逻辑资源
下图为hp bank的io 模块,hr bank与之相比,没有输出延迟odelaye2;
i/o逻辑资源主要包含5部分:
2.1 ilogic
ilogic即输入信号处理逻辑,紧挨着iob,外界的输入信号最先经过的就是ilogic。ilogic是由许多的数据选择器和一个iddr(input double data rate)触发器构成。该触发器既可以双沿捕获输入数据也可以拆分成普通单沿触发器。在hp bank中,ilogic被称为ilogice2,在hr bank中,ilogic被称为ilogice3。下图给出了ilogice3的示意图:
ilogice2与ilogice3的区别是:ilogice3包含了zhold(zero hold) delay。
2.2 idelay
idelay被称为信号延迟模块,它的作用就是把信号延迟一段时间。对于一些需要对齐的输入信号来说,这至关重要。在7系列fpga中,它被称为idelaye2。idelaye2可以将信号延迟0~31节,在这区间任意可调,并且在参考时钟为200m时,每节的延迟精度为78ps(1/(32×2×fref),fref为idelayctrl的参考时钟)。下图为idelaye2例化框图。
idelay后文详细讲解。
2.3 idelayctrl
idelayctrl其实是个辅助模块,这么说吧,只要使用了idelay或者odelay,idelayctrl必须被使用,要不然就无法正常工作。因为idelay或者odelay的延迟精度是由idelayctrl的输入时钟决定的,一般为200mhz。下图为idelayctrl例化框图。
2.4 odelay
odelay和idealy的使用方式差不多,只不过odelay是用作输出信号的延迟。另外,hr bank内没有odelay,hp bank才有,被称为odelaye2。使用odelaye2时同样需要例化idelayctrl。下图为odelaye2例化框图:
2.5 ologic
logic包括2个部分:一个用于配置输出路径。另外一个用于配置三态控制路径。输出路径和三态控制路径都可以独立配置成沿触发器、oddr以及组合逻辑输出。
总的来说,i/o逻辑资源就是用来获取或者输出信号。对于一般的低速信号而言,i/o逻辑资源体现不出优势,用不用都不影响最终结果,但是对于高速信号而言,就必须使用i/o逻辑资源了,不能够正确使用它,整个fpga逻辑代码完全无用。
三、idelaye2原语
使用idelaye2原语必须例化idelayctrl原语
idelayctrl idelayctrl_inst (
.rdy(rdy), // 1-bit output: ready output
.refclk(refclk), // 1-bit input: reference clock input
.rst(rst) // 1-bit input: active high reset input
);
再看idelaye2原语:
3.1idelaye2属性
3.2idelaye2端口
3.2.1延迟控制
1. fixed模式: 固定模式,延迟值为输入的value
2. variable模式:由c,ld,ce,inc 共同控制,如下图所示:
3. var_load模式:由c,ld,ce,inc,cntvaluein共同控制
3.3时序图
我们再看一个variable模式,加载延时的时序图:
idelay属性如下:
idelay_type = variable,
idelay_value = 0,
delay_src = idatain
时刻t1:
在c的上升沿,检测ld为高,加载idelay_value,即输出延时为tap0;
时刻t2:
在c的上升沿,检测到ce &inc同时为高,由上文延时控制部分内容可知,延时为当前值+1,即输出延时为tap1;
时刻t3:
ld,ce,inc均为0,增加延时操作完成,输出延时保持tap1,直到下一次又检测到ld,ce,inc。
​​​​​​​3.4仿真测试
testbench:例化一个idelayctrl,再例化一个idelaye2(var_load模式):
idelayctrl idelayctrl_inst (
.rdy(rdy), // 1-bit output: ready output
.refclk(ref_clk),// 1-bit input: reference clock input
.rst(rst) // 1-bit input: active high reset input
);
idelaye2 #(
.cinvctrl_sel(false), // enable dynamic clock inversion (false, true)
.delay_src(idatain), // delay input (idatain, datain)
.high_performance_mode(false), // reduced jitter (true), reduced power (false)
.idelay_type(var_load), // fixed, variable, var_load, var_load_pipe
.idelay_value(0), // input delay tap setting (0-31)
.pipe_sel(false), // select pipelined mode, false, true
.refclk_frequency(200.0), // idelayctrl clock input frequency in mhz
.signal_pattern(data) // data, clock input signal
)
idelaye2_inst_frame_delay (
.cntvalueout(cnt_delay_tap),// 5-bit output: counter value output
.dataout(rx_frame_delay), // 1-bit output: delayed data output
.c(ref_clk), // 1-bit input: clock input
.ce(1'b0), // 1-bit input: active high enable increment/decrement input
.cinvctrl(1'b0), // 1-bit input: dynamic clock inversion input
.cntvaluein(delay_value), // 5-bit input: counter value input
.datain(1'b0), // 1-bit input: internal delay data input
.idatain(rx_frame_buf), // 1-bit input: data input from the i/o
.inc(1'b0), // 1-bit input: increment / decrement tap delay input
.ld(delay_load_en[12]), // 1-bit input: load idelay_value input
.ldpipeen(1'b0), // 1-bit input: enable pipeline register to load data input
.regrst(1'b0) // 1-bit input: active-high reset tap-delay input
);
可以发现,只要过了idelay,就会增加0.6ns的延迟;
delay_value = 0;tdelay=0.6ns;
仿真继续往下走,当tap=31时,tdelay=3.018ns=31x78(ps) +0.6ns;
测试验证正确。
四、高级selectio逻辑资源
为了方便使用i/o逻辑资源,xilinx公司专门将几种模块集中起来,构成了功能强大的源语iserdese2和oserdese2:《ug471》翻译(2)iserdese2原语介绍


物联网等技术如何用来测量农业
采用无线GPRS网络的粮食存储监控系统的解决方案
DT71 智能镊子评测——三合一的镊子、万用表和信号发生器
NI机器视觉优势与NI机器视觉系统
DEKRA德凯携手氢能联盟 应对环境挑战助力氢能发展
《Xilinx—UG471中文翻译》(1)IDELAYE2原语介绍
如果个人隐私有风险,如何锁定iPhone?
Windows手机面临的处境非常尴尬,IDC预测4年内会消失
基于Imagination革命性的NNA架构PowerVRSeries2NX设计的神经网络内核详解
区块链用于信息治理中的好处有哪些
微软内部文件:双屏Surface Phone是一款便携式设备
LIN总线如何在汽车电子开发中进行应用
Arm Project Cassini完成:采用NXP i.MX 8M Plus处理器的康佳特模块已获得Arm SystemReady IR认证
智能制造系统有什么特点?
Maxim±5V输出线性稳压器
人工智能产业发展前景分析
流水线处理技术在数据集成中的应用
机器视觉需求飙升或成蓝海市场 机器视觉行业迎来快速增长期
PLC编程中的FOR循环指令案例详解
5G应用下银行金融的服务有什么改变