Ultrascale系列之前讲过IDELAYE3和ODELAYE3都能够级联,这里介绍下级联操作;
需要先了解下Ultrascale系列的架构,其I/O bank结构如下图,每个bank包含52个管脚,其中***多48个可配置为24对差分管脚对;
每个字节组共13个I/O管脚,可分为下图所示的两个半字节组,其中低半字节组有6个I/O管脚,高半字节组有7个I/O管脚,
Ultrascale系列原语分为组件原语和原生原语,其中组件原语就是之前讲述的IDDR/ODDR/IDELAY/ODELAY还有后面要讲述的ISERDES和OSERDES,而原生原语就是上图字节组简介中的RXTX_BITSLICE、RX_BITSLICE、TX_BITSLICE等,每个BITSLICE控制一个IO管脚;
RXTX_BITSLICE中的输入路径就是RX_BITSLICE:
RXTX_BITSLICE中的输出路径就是TX_BITSLICE:
上图为原生原语的结构,可以看到,输入延迟IDELAY、输出延迟ODELAY、解串ISERDES、并转串OSERDES原语等组件原语的功能都包含在其中,所以可以知道原生原语是包含了多个功能的原语,但是原生原语虽然功能强大配置灵活,但是使用起来十分复杂,xilinx官方虽然释出了原生原语的用法介绍,但是都在文档中多次说明xilinx专门开发了High_Speed SelectIO Wizard(HSSIO)这个IP来进行原生原语的使用,HSSIO调用原生原语进行接收器发射器或双向电路的设计,后续将直接讲解HSSIO的使用,不会过多涉及原生原语的细节;
且讲解相对而言比较简单的组件原语,其实现原理和使用方法和原生原语基本一致,有助于后续HSSIO的使用理解,实际在LVDS处理中,U系列一般使用HSSIO进行开发,比较简洁快速;
Ø 级联结构:
从bank结构,字节组结构,可以看到多个IO并排,每个IO有一个RXTX_BITSLICE,每个RXTX_BITSLICE结构都有一个输入延迟,一个输出延迟,所以在使用不管是输入级联还是输出级联时,都会把输入延时和输出延时结合起来使用,不会输入延迟只使用输入,输出延时只使用输出,如下图RXTX_BITSLICE的一个级联延迟示意图:
其中输入延迟级联,输入延迟线连接到输出延迟线,***输出延迟线回到输入延迟内由输入延迟输出,这个使用方法也符合之前IDELAYE3和ODELAYE3文档中对级联结构的描述;
IDELAYE3结构:
ODELAYE3结构:
级联结构大概如下:
IDELAYE3和ODELAYE3要交错使用,级联的数据***初输入和***终输入都在主延时原语中进行,其中IDELAYE3和ODELAYE3都有一个CASCADE参数,其值可选为NONE、MASTER、SLAVE_MIDDLE、SLAVE_END,其中设置NONE为不级联;
如上图所示为一个4级级联的结构,这里设置第1级为MASTER,中间的2/3级设置为SLAVE_MIDDLE,***的第4级设置为SLAVE_END;
这里虽然画了四级级联,但其实理论上还可以更多级,但是一般常用的级联级数都较少,因为级联操作是要实际使用到输入输出延迟原语的,而每个IO管脚就一对输入输出原语,想要级联更多级,一是实际的物理电路中该电路邻近是否有空闲可用于布线使用的输入输出延迟原语,二是级联过多会导致信号抖动误差等累计起来影响信号完整性,性能可能会严重恶化。像是HSSIO中使用的级联就是一个2级级联,2级级联使用一个IO管脚的一对输入输出延迟即可实现,不会挤占其余IO的资源。
本文章由威三学院出品
对课程感兴趣可以私信联系

京公网安备11022902000513号
