图1:Start信号传播框图
所谓的Start信号是为了精确测量各个随机脉冲的到达时间,而在系统的角度提供的一个时间基准。所以Start信号是否精确地“同时”到达各自的目的就显得非常关键。
在实验室可以通过Virtual JTAG来读取start信号的时间信息,具体做法是通过背板的Labview程序手动的发送十几个左右的start信号,SEP FPGA中的TDC会测量每个start到达的时间信息,Virtual JTAG测试模块将这些时间信息存储在FIFO之中,然后通过Virtual JTAG将这些数据读回来进行离线分析,由于PC主机同时连接的USB Blaster电缆有限,所以目前实验室最多只能回读三块SEP,即6个FPGA的Start时间信息进行分析,如下表所示是4个FPGA回读后的分析结果,该表只显示了其中2个FPGA的部分测试数据。 从上表可以看到,不同FPGA两个相同连续的start时间间隔是一样的,这可以间接地证明start是同时到达了不同的FPGA。
为了使用Virtual JTAG完成上述实验,在逻辑中Virtual JTAG模块增加了一个FIFO,即第三个FIFO。增加FIFO后所有FIFO的操作稍有修改,具体操作参考virtual JTAG测试平台说明文本文件。
注:仔细理解上表原始的Start时间信息,首先“横向”来说,即同一个Start信号到达不同FPGA时测量的细时间可能一样,也可能不一样,但是只有两个可能的结果;其次“纵向”来说,即同一个FPGA测量不同Start的时间信息,其细时间可能相同,也可能不同,但是也只有两种可能的结果;如果不同,相差的码总是128左右(对于4ns周期来说正好是2ns)。如何理解上述现象呢(该现象并不影响同一个Start同时到达各个FPGA)?造成这种情况的原因在于背板CPLD产生Start信号的时候,是基于100MHz时钟,而FPGA中TDC测量Start的时候使用的是250MHz时钟,100MHz时钟和250MHz同源,且之间的相位关系只有两个可能(且相差正好半个快速时钟周期,即这里的2ns)。图2和图3分别展示两个时钟不同相位下的对应关系。
图2:TDC高速时钟和Start生成时钟相位关系随机
图3:TDC高速时钟和Start生成时钟前沿对齐(假定)