如圖2所示,CLKOUTP/M即為LVDS信號中的同步時鐘信號,DA0_P/M到D12_P/M即為數據差分信號,DA0_P/M表示為同一對差分信號,該信號傳輸第0和第1比特,以此類推。
該ADC的LVDS接口輸出時序如圖3所示:
圖3
如圖3所示,可以清楚的看到,數據信號的偶比特和奇比特的有效時刻基本上以輸出時鐘CLKOUTM/P的上升沿和下降沿的中心。
那么問題來了,在FPGA里是否可以直接使用該同步時鐘直接寄存器鎖存信號不就可以了嗎?事實上通常的做法都是這樣的(該通常的做法跟FPGA的源同步LVDS I/O性能有關),但是必須加接口約束。為什么呢?因為ADC的LVDS輸出的時鐘和數據的相位關系是會隨著工作環境,芯片的批次而變化的,因此不同工作環境,不同批次的芯片時鐘和數據的相位關系可能會有變化,如果不加接口約束直接用源同步時鐘鎖存數據有可能會造成建立時間或保持時間不滿足,進而造成接收數據錯誤。因此,必須加入接口時序約束以保證輸入接口的寄存器滿足建立時間和保持時間。如下圖所示:
圖4