使用ISERDES实现高速数据输入接口

  ISERDES是Virtex-6系列FPGA提供的高级SelectIO资源,是专用的解串器,可以实现高速的串并转换,大大降低了设计高速解串器所带来的逻辑和时序的复杂度。 ISERDES也支持SDR和DDR两种模式。ISERDES的结构框图如图1所示。

 

图1 ISERDES结构框图

  图1中, D是ISERDES的高速串行数据输入端口,此端口可与所有Virtex-6的I/O资源配合工作,以满足所需的 I/O 标准。由D输入的串行数据经串并转换后由Q1至Q6输出,串行输入的第一个数据出现在Q的最高位上。CLK为高速时钟输入,用于对输入串行数据流进行时钟控制。CLKDIV为分频时钟输入,驱动串并转换器、BITSLIP子模块和CE模块的输出。CLKDIV通常是 CLK 的一个分频版本,分频比取决于所实现解串的宽度。OCLK 时钟输入对选通存储器接口中的数据传输进行同步控制。各种模式下 CLK 与 CLKDIV 之间的关系如图2所示。

图2 ISERDES各工作模式下CLK与CLKDIV关系

图2 ISERDES各工作模式下CLK与CLKDIV关系

  举例来说,ADC工作于1.024GSPS采样率,使用两路时钟速率为256MHz、位宽为10bit的DDR(Double Data Rate,双倍数据速率)差分数据总作为数据输入,两路数据总线分别用于输入第偶数个和第奇数个采样数据。FPGA工作在128MHz时钟,借助OSERDES输出速率为256M位宽为10bit的DDR数据。由图2可见,FPGA工作在128MHz时,要接收256M的DDR数据,需选择1:4的串并转换,此时CLK为256MHz,CLKDIV为128MHz。由此可设计ADC数据传输接口如图3所示。

图3 ADC数据传输接口结构框图

图3 ADC数据传输接口结构框图

  ADC输出两路差分DDR数据DI和DID,分别用于传输第奇数个和第偶数个数据,每路位宽为10比特,速率为256M。差分的DI和DID由IBUFDS转换为单端信号。ISERDES工作于DDR模式,进行4:1的串并转换,输出速率为128M、位宽为4比特的SDR数据。数据转换模块将输入的10路位宽为4比特数据转置为4路位宽为10比特数据,最终得到8路位宽为10比特、速率为128M的SDR数据,提供给后续模块处理。