開發平台基於Vivado2017.3,器件使用的是Kintex7。
先貼個時序圖:
如何動態配置clocking輸出時鍾相位,首先在ip核設置界面,勾選Dynamic Phase Shift,在左側接口總覽里面可以看到多出來4個信號,psclk:用於相移控制信號的驅動時鍾,psen:控制相位偏移的使能信號,psincdec:用於相位正負偏移的信號,1表示正向偏移,0表示負向偏移。最后psdone是相位偏移完成標志信號。權威的接口說明可以自行查閱xilinx 官方手冊pg065。
標題
在第二頁輸出時鍾最后勾選Use Fine PS,
標題
關注一下VCO的頻率,一個psen高脈沖,輸出相位偏移1/56個VCO周期。
標題
然后例化一下,寫個testbench,我看clocking這個ip核的example中,psclk的頻率設置的是100Mhz。仿真使用的Vivado自帶的仿真器,因為Modelsim仿真時,psdone信號死活不拉高,估計是有BUG。
仿真波形如下,一個psen,輸出時鍾相位偏移20ps。剛好等於1/891Mhz/56
標題
標題