热度 1| |
serdes高速接口,可以实现芯片间、单板间高速传输,节省走线资源、高效低误码、接口时序不需要分析的传输,是目前常用的接口设计。关键的技术有,CDR随数据恢复时钟,B10编解码等。xinlinx器件中serdes硬core主要包含以下几部分:PMA层、PCS层。其中PMA主要是完成,数字模拟域转换、模拟电路(接收均衡、发送摆幅控制、收发阻抗匹配等)、从随路数据中恢复采集时钟、将接收串行数据转换为并行数据输出。PCS层则是并行数字域处理,包括:定界与码字对齐、8B10B编解码等,除此外,还有一些辅助功能,如极性反转控制、PRBS生成与校验模块、内部缓存fifo、环回功能等,这些都是可配置选择的。
设计一个serdes接口,主要有这样一些关注点。
1、根据设计需要的的线速率,决定参考时钟频率,且根据芯片手册,计算出serdes内部各部分时钟、时钟因子、与内部模块接口位宽与时钟频率等;
2、serdes内部时钟方案,因为serdes内部结构就会涉及多个时钟域,每部分时钟域都有选择器从多个源中选择,所以要选择合适的时钟选源方案;
3、根据serdes内部处理接口协议,决定是否在serdes内部做8B10B编解码、是否选用buf等,这部分会衍生出更多需要关注的设计关注点,其中不带buf的时延方案、多通道绑定等都是比较复杂的,这里不描述。
4、serdes的初始化流程,这部分是一个serdes能否正常工作的关键,一定要按照芯片器件手册上的时序设计,否则无法保证功能与可靠性,比如说如果buf在初始化中,两端时钟未稳定,就会导致buf初始的指针不居中,容易处在临界而出现如温度临界时而buf溢出,导致异常;再如,xilinx器件复位信号,有要求在前500ns必须是低电平,否则初始化会失败,都是要注意的。
5、自复位控制的外围设计。这个也非常重要,serdes线路上可能存在误码,尤其是跨板拉远的接口。serdes出现异常状态后,需要自复位,将其复位以保证接口恢复,这部分设计也是很必要的。
6、跨时钟处理。serdes时钟域很多,需要做好跨时钟域设计;
7、维测设计。serdes异常多、伴随自复位设计,往往无法分辨到底是那个异常先出现,哪个后出,所以这部分维测需要考虑很多。后续再细讲。