看到phdwong的博文《Stratix IV LVDS 调试》提到使用StratixIV处理多通道ADC的感想,正好和自己最近一直思考的一个方案吻合,这里记录一下自己规划的方案,希望与大家一同探讨。
前提假设:
1、一片FPGA处理三片LTM9010;
2、LTM9010的采样时钟工作在100MHz;
3、允许LTM9010使用2Lane模式(可以降低LVDS速率,当然有合适方案使用1Lane更好了);
4、最好LTM9010能兼容10bit、12bit和14bit(可选,但必须保证10bit);
5、FPGA需要选择带Transceiver的芯片
分析:
1、由于LTM9010采样率要求100Mhz,分辨率至少10bit,所以单通道最低数据率就是1Gbps,如果12bit,那么数据率为1.2Gbps,14bit则数据率为1.4Gbps;
2、单Lane模式下每对LVDS差分对数据率符合item1,双Lane模式下,LVDS数据率减半,但是LVDS数量增倍;
3、由于每片FPGA要处理3片LTM9010,而每片LTM9010包含8通道ADC,所以在单Lane模式下FPGA需要提供24对LVDS接收对@1G到1.4G;双Lane模式下则需要48对LVDS接收对@500M到700M
初步结论:
ArriaIIGX和CIVGX应该是不错的选择,不过问题是这两个系列lvds有不同的种类,如果使用了那些不带serdes的lvds应该比较好选择,但是如果48个通道都使用带serdes的lvds那么选择的余地就不大了,而且成本都上去了,感觉也不划算。那么,现在面临一个问题就是48个lvds通道,部分使用带serdes的lvds部分使用不带serdes的lvds。如果是这样,那么FPGA的设计就又应该相对复杂一点,首先各个ADC的通道之间由于使用不同的lvds比如存在一定的差异,如何弥补这种差异是个问题。或者干脆在使用带serdes的lvds时候by pass掉serdes,那么所有lvds通道的一致性就应该得到保障,代码中实现一个lvds通道以后,其它的就复制即可了。
另外一个问题是phdwong在其博文里提到的,Altera的ALTLVDS_RX Megafunction函数解串比例因子最大只能设置到10,所以对于12-bit和14-bit无法满足。因而,lvds的reciver不能使用ALTLVDS_RX模块,可以考虑使用DDIO+shift-register的方法。
下面我们看看器件选型方面的考虑,这里以Arria II GX为例,如图1所示为其Row I/O banks中LVDS通道。
图1:Arria II GX器件Row I/O块中LVDS通道数
而图2显示的是Arria II GX器件Column I/O块中LVDS通道数:
图2:Arria II GX Column I/O块中LVDS通道数
如果只是ADC只需要10-bit的分辨率,那么可以选择EP2AGX190的1152封装,可以满足48通道LVDS(注意,只有Row I/O块里的Rd通道才是带Serdes的LVDS接收通道,其它Rx通道时不带SerDes和DPA电路的)。只是这个型号太大,太不经济了,其实EP2AGX65这个型号不错,使用572或者780封装均可,而且可以上下Migration。只是这样一来,就必须采用DDIO的方案,且这样可以实现12-bit和14-bit的分辨率,但需要考虑phdwong提到的逻辑设计性能问题,因为通道数不少。2-Lane模式下,12-bit@600Mbps和14-bit@700Mbps用逻辑来实现应该问题不大。
文章评论(0条评论)
登录后参与讨论