Xilinx Zynq7035 PL SFP光口通信例程
? ? ? ?本文主要介紹說明XQ6657Z35-EVM 高速數(shù)據(jù)處理評(píng)估板SPF光口通信例程的功能、使用步驟以及各個(gè)例程的運(yùn)行效果。
(基于TI KeyStone架構(gòu)C6000系列TMS320C6657雙核C66x 定點(diǎn)/浮點(diǎn)DSP以及Xilinx Zynq-7000系列SoC處理器XC7Z035-2FFG676I設(shè)計(jì)的異構(gòu)多核評(píng)估板,由核心板與評(píng)估底板組成。)
ZYNQ7035 PL SFP光口通信例程
1.1.1?例程位置
ZYNQ例程保存在資料盤中的Demo\ZYNQ\PL\aurora_8b10b_0_ex文件夾下。
1.1.2?功能簡介
使用Aurora 8B/10B IP核生成后帶的例子工程,稍作修改。
?


?
?
圖 Aurora 8B/10B例子工程
FRAME_GEN: 本地并行數(shù)據(jù)發(fā)送模塊
功能:本地產(chǎn)生GTX并行發(fā)送數(shù)據(jù)
接口說明: ??
// User Interface
output ?[0:15] ????TX_D;??//發(fā)送數(shù)據(jù)
output ????????????TX_REM; ?//最后一個(gè)16bits數(shù)據(jù)的高低字節(jié)有效標(biāo)識(shí),0表示,表示TX_D[0:7]有效;1表示TX_D[0:15]有效。
output ????????????TX_SOF_N; //發(fā)送開始標(biāo)識(shí),低電平有效
output ????????????TX_EOF_N; //發(fā)送結(jié)束標(biāo)識(shí),低電平有效
????output ????????????TX_SRC_RDY_N; ?//發(fā)送數(shù)據(jù)源端準(zhǔn)備好標(biāo)志,低有效
????input ?????????????TX_DST_RDY_N;?//發(fā)送數(shù)據(jù)目的端準(zhǔn)備好標(biāo),為0時(shí)才允許發(fā)送數(shù)據(jù)
?
????// System Interface
????input ?????????????USER_CLK;//用戶時(shí)鐘,由Aurora IP核提供,數(shù)據(jù)發(fā)送模塊用此時(shí)鐘作為同步時(shí)鐘
????input ?????????????RESET;//復(fù)位,高有效
input ?????????????CHANNEL_UP;//GTX通道初始化完成標(biāo)志,為1時(shí)表示完成
?
數(shù)據(jù)發(fā)送模塊只有在RESET=0、CHANNEL_UP=1和TX_DST_RDY_N=0時(shí),才允許發(fā)送數(shù)據(jù)。
?
FRAME_CHECK: 本地并行數(shù)據(jù)接收檢測模塊
功能:本地接收GTX并行數(shù)據(jù),并檢測數(shù)據(jù)是否存在誤碼
接口說明:
???// User Interface
input ??[0:15] ???RX_D;?//接收數(shù)據(jù)
output ????????????RX_REM; ?//最后一個(gè)16bits數(shù)據(jù)的高低字節(jié)有效標(biāo)識(shí),0表示,表示RX_D[0:7]有效;1表示RX_D[0:15]有效。
output ????????????RX_SOF_N; ?//接收開始標(biāo)識(shí),低電平有效
output ????????????RX_EOF_N; ?//接收結(jié)束標(biāo)識(shí),低電平有效
????input ?????????????RX_SRC_RDY_N;?//接收數(shù)據(jù)有效,低電平有效
?
????// System Interface
????input ?????????????USER_CLK;?//用戶時(shí)鐘,由Aurora IP核提供,數(shù)據(jù)發(fā)送模塊用此時(shí)鐘作為同步時(shí)鐘
????input ?????????????RESET;?//復(fù)位,高有效
????input ?????????????CHANNEL_UP;?//GTX通道初始化完成標(biāo)志,為1時(shí)表示完成
????output ?[0:7] ?????ERR_COUNT;?//接收數(shù)據(jù)錯(cuò)誤個(gè)數(shù)
?
Aurora?8B10B IP核參數(shù)設(shè)置如下圖所示:

?
Aurora?8B10B IP核顯示最高只支持6.6Gbps,這里我們將線速率設(shè)置為5Gbps,參考時(shí)鐘設(shè)置為100MHz。
1.1.3?管腳約束
ZYNQ PL工程管腳約束如下圖所示:

?
1.1.4?例程使用
1.1.4.1?連接光纖模塊
將光模塊插入光模塊籠子,并使用光纖線纜將光模塊的收、發(fā)端口自環(huán)對(duì)接:

?
1.1.4.2?加載運(yùn)行ZYNQ程序
1.1.4.2.1?打開Vivado工程
打開Vivado示例工程:

?
工程打開后界面及工程主要模塊說明如下圖所示:
?


?
1.1.4.2.2?下載ZYNQ PL程序
下載bit流文件aurora_8b10b_0_exdes.bit,并且配套aurora_8b10b_0_exdes.ltx調(diào)試文件,如下圖下載界面所示:

?
?
1.1.4.3?運(yùn)行結(jié)果說明
ZYNQ PL端提供的ILA調(diào)試窗口,可以實(shí)時(shí)抓取采集GTX收發(fā)本地并行信號(hào)以及錯(cuò)誤檢測信號(hào)的時(shí)序波形。
ILA抓取波形如下圖所示:

?
?
ILA抓取信號(hào)說明如下:
ERR_COUNT[0:7]:接收數(shù)據(jù)錯(cuò)誤個(gè)數(shù),接收模塊分析接收數(shù)據(jù)是否正確;
tx_d_i[0:15]:發(fā)送數(shù)據(jù);
tx_rem_i:最后一個(gè)發(fā)送數(shù)據(jù)的高低字節(jié)有效標(biāo)識(shí),0表示,表示tx_d_i[0:7]有效,1表示tx_d_i[0:15]有效;
tx_src_rdy_n_i:發(fā)送數(shù)據(jù)源端準(zhǔn)備好標(biāo)志,結(jié)合tx_dst_rdy_n_i使用,都為0時(shí)表示可以發(fā)送數(shù)據(jù),
tx_sof_n_i:發(fā)送開始標(biāo)識(shí),低電平有效;
tx_eof_n_i:發(fā)送結(jié)束標(biāo)識(shí),低電平有效;
tx_dst_rdy_n_i:發(fā)送數(shù)據(jù)目的端準(zhǔn)備好標(biāo)志;
rx_d_i[0:15]:接收數(shù)據(jù)
rx_rem_i:最后一個(gè)接收數(shù)據(jù)的高低字節(jié)有效標(biāo)識(shí),0表示,表示rx_d_i[0:7]有效,1表示rx_d_i[0:15]有效;
rx_src_rdy_n_i:接收數(shù)據(jù)源端準(zhǔn)備好標(biāo)志;
rx_sof_n_i:接收開始標(biāo)識(shí),低電平有效;
rx_eof_n_i:接收結(jié)束標(biāo)識(shí),低電平有效;
CHANNEL_UP:為1表示GTX通道完成正常初始化;
LANE_UP:指示GTX每個(gè)lane是否正常初始化成功,這里只有1個(gè)Lane;
SOFT_ERR、HARD_ERR:軟、硬件錯(cuò)誤指示,正常情況應(yīng)該為0
tx_lock_i_ila:GTX時(shí)鐘鎖定指示,正常情況應(yīng)該為1
pll_not_locked_ila:GTX時(shí)鐘失鎖指示,正常情況應(yīng)該為0
?
VIO虛擬IO界面如下圖所示:

?
VIO界面上標(biāo)識(shí)Input的為采集信號(hào),用戶只能查看對(duì)應(yīng)信號(hào)當(dāng)前的邏輯電平值,1表示高電平,0表示低電平;VIO界面上標(biāo)識(shí)Output的為用戶控制信號(hào),用于控制用戶邏輯的,用戶可以在Value一欄輸入0/1電平值,從而達(dá)到控制用戶邏輯的目的。VIO界面主要用于復(fù)位用戶邏輯,以及查看通道是否鏈接成功,VIO界面可以不用操作。
1.1.4.4?退出實(shí)驗(yàn)
Vivado調(diào)試界面Hardware?Manager窗口,右鍵單擊localhost(1),在彈出的菜單中點(diǎn)擊Close?Server,斷開ZYNQ JTAG仿真器與板卡的連接:
?

?
最后,關(guān)閉板卡電源,實(shí)驗(yàn)結(jié)束。
??
?