文章目录
这几天在做SERDES眼图相关的实验,用“串口”导出高低温高低压下的on-chip眼图质量评估的参数。虽然是个体力活,但是我有感受到高低温高低压下,IC表现的差异。
其实更让我感兴趣的是“片上眼图(on chip eye monitor)”究竟是怎么做出来的?准确的来说designer都叫它们Eye-opening Monitor(EOM),Xilinx叫做2-D eye scan。
这个电路相当于on chip的scope,可以让RX端信号的质量“可视化”。
在脚本/串口直接输入一段cmd,就可以描绘出IC RX端的眼图:
我有找了相关的2个paper和公司datasheet,做了些功课:
Xilinx 2D Eye-scan:
如下图所示,RX端有CDR data sampler和offset sampler,后面接了一个异或门,用于比较结果是否相同。 后面两个框图sample counter和error counter,分别用于记录RX到的码元个数,和误码个数。
行为级电路描述:
如上图所示,eye-scan RX端 offset sampler独立且并行的和使用CDR sample的采样电路一起跑,offset-sampler可以任意调整水平(time)和垂直(voltage)方向的偏移(如下图所示),在一个UI内产生一个全新的sample点。
因为offset sampler可以任意调整,所以当一系列码元流传输的时候,cdr-sampler和offset-sampler可以实时的比较出结果。当它们值不同的时候error counter +1,通过统计RX到的码元个数、error counter,可以获得offset sampler上下左右不停的调整位置时的一个误码率(BER),通过这个误码率去描绘出眼图。
另一种Paper上的eye-opening monitor(EOM):
框图结构基本一致,Din是输入的模拟信号,后面紧接着比较器,比较器的输出结果是0/1,会记录到一个counter中。DTC(digital-to-time converter)是一个5bit数字控制的CDR时钟相位偏移器;DAC(digital-to-analog converter )是一个5bit数字控制的数模转换器。
CDR恢复出来的时钟送给DTC(digital-to-time converter)和DAC(digital-to-analog converter )电路。
如下图所示,DTC和DAC就是实现offset调整的2个电路。DTC实现φ31~φ0水平时基上的跳phase(跳采样点时刻);DAC实现垂直方向A31~A0跳电压,用于analog比较器的输入,中间红色方框为理想sample点。
原理上我觉得不是很直观,大概意思是说,如果sampler在φ15和A15/16接近最理想的sample point,此时如果PRBS码型过来,counter记录到的0和1的个数应当相等。如果是一个11 bit counter,那0的个数就占50%为1024。同样也是调整sampler point的位置,去记录不同位置的counter计数值。
直觉上来说,不同位置,counter中记录的0/1的分布是不同的,这种分布携带“眼图所需的信息量”。
我们看到DTC和DAC都是[4:0] 5 bit,所以理论上就有32x32个位置,每个位置一个11bit-counter,即用于描绘眼图的数据就有32x32x(2^11)个。
片上眼图理解上来说不难,感觉design都很接近,一个“跳采样点”电路,一个“跳电压”电路,一些个counter就没了,但是如何通过这些数据描绘出眼图,我还是不太清楚的。但我想对于硬件工程师来说是足够了,毕竟我们不是designer,有很多东西也是doctor才去研究的。
欢迎关注我的公众号:沈土豪的书屋