ibert測試說明

  xilinx對於高速收發接口gth有專門的驗證方案ibert,FPGA的引腳按bank劃分,gth類似不過是按Quad來算,每個Quad的結構如下:

一共有4組收發對。每個Qual和管腳的位置都是綁定的,所以在例化ip核時只要指定Quad的位置即可,不需要再對管腳做約束了。

以UV440爲例:可以整理出對應的位置表格

BANK lane0 lane1 lane2 lane3
Bank229 X0Y40 X0Y41 X0Y42 X0Y43
Bank230 X0Y44 X0Y45 X0Y46 X0Y47
Bank231 X0Y48 X0Y49 X0Y50 X0Y51
Bank232 X0Y52 X0Y53 X0Y54 X0Y55
Bank219 X0Y0 X0Y1 X0Y2 X0Y3
Bank220 X0Y4 X0Y5 X0Y6 X0Y7
Bank221 X0Y8 X0Y9 X0Y10 X0Y11
Bank224 X0Y20 X0Y21 X0Y22 X0Y23
Bank225 X0Y24 X0Y25 X0Y26 X0Y27
Bank226 X0Y28 X0Y29 X0Y30 X0Y31
Bank227 X0Y32 X0Y33 X0Y34 X0Y35

Ibert配置介紹:

新建一個臨時Temp工程:芯片選擇

在ip Catalog搜索ibert:

根據連接進行配置GTH的選項:

選擇一個系統使用,一般選擇板卡上的一個全局時鐘即可:

生成Example:

會在指定目錄生成一個新的示例工程:

直接點生成bit即可:

  板卡上電,設置對應的時鐘頻率,(此例中:參考時鐘及系統時鐘)下載bit到FPGA,

使用FPGA vivado掃描Hardware,

set xil_newLinks [list]
set xil_newLink [create_hw_sio_link -description {Link 1} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y32/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y20/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                                
set xil_newLink [create_hw_sio_link -description {Link 2} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y33/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y21/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                                             
set xil_newLink [create_hw_sio_link -description {Link 3} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y34/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y22/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                               
set xil_newLink [create_hw_sio_link -description {Link 4} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y35/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y23/RX] 0] ]
lappend xil_newLinks $xil_newLink

set xil_newLink [create_hw_sio_link -description {Link 5} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y20/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y32/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                                
set xil_newLink [create_hw_sio_link -description {Link 6} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y21/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y33/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                                             
set xil_newLink [create_hw_sio_link -description {Link 7} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y22/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y34/RX] 0] ]
lappend xil_newLinks $xil_newLink                                                                                                                                                                                                               
set xil_newLink [create_hw_sio_link -description {Link 8} [lindex [get_hw_sio_txs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/2_1_0_1/IBERT/Quad_224/MGT_X0Y23/TX] 0] [lindex [get_hw_sio_rxs localhost:3121/xilinx_tcf/Digilent/210251AC2FD0/0_1_0_1/IBERT/Quad_227/MGT_X0Y35/RX] 0] ]
lappend xil_newLinks $xil_newLink

set xil_newLinkGroup [create_hw_sio_linkgroup -description {Link Group 0} [get_hw_sio_links $xil_newLinks]]
unset xil_newLinks
……

再手動添加link,link有時需要刷新(先切換到近端或遠端,這些是自環選項,就是tx和rx在FPGA內部已經連接在一起了,再切換到none:外部連接的方式)才能正確顯示成綠色(添加及刷新link可以在Tcl Console看到對應的腳本,這個腳本可以保存成文件,方便下次操作)。

看link時首先看PLL,PLL若沒有鎖住一般是頻率設置不對,需要檢查頻率設置,PLL鎖住後一般link都沒有問題,只要link的rx能收到數據,不管是哪個quad的哪路tx lane發送的,都會正常顯示綠色(應該是因爲每個lane的僞隨機數序列都是一樣的),serdes的收發兩端是不一定需要同源時鐘的(只要數據lane對接上即可),非同源時鐘只要收發兩端的頻率精度控制在一定範圍即可,時鐘是通過CDR電路從數據中恢復出來的。

雙擊ip核,點擊Documentation->Product Guide可以看到ibert的使用說明文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章