本文主要介紹說明XQ6657Z35-EVM 高速數(shù)據(jù)處理評估板SPF光口通信例程的功能、使用步驟以及各個例程的運行效果。 (基于TI KeyStone架構(gòu)C6000系列TMS320C6657雙核C66x 定點/浮點DSP以及Xilinx Zynq-7000系列SoC處理器XC7Z035-2FFG676I設計的異構(gòu)多核評估板,由核心板與評估底板組成。) 1.1.1 例程位置 ZYNQ例程保存在資料盤中的Demo\ZYNQ\PL\aurora_8b10b_0_ex文件夾下。 使用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; //最后一個16bits數(shù)據(jù)的高低字節(jié)有效標識,0表示,表示TX_D[0:7]有效;1表示TX_D[0:15]有效。 output TX_SOF_N; //發(fā)送開始標識,低電平有效 output TX_EOF_N; //發(fā)送結(jié)束標識,低電平有效 output TX_SRC_RDY_N; //發(fā)送數(shù)據(jù)源端準備好標志,低有效 input TX_DST_RDY_N; //發(fā)送數(shù)據(jù)目的端準備好標,為0時才允許發(fā)送數(shù)據(jù) // System Interface input USER_CLK;//用戶時鐘,由Aurora IP核提供,數(shù)據(jù)發(fā)送模塊用此時鐘作為同步時鐘 input RESET;//復位,高有效 input CHANNEL_UP;//GTX通道初始化完成標志,為1時表示完成 數(shù)據(jù)發(fā)送模塊只有在RESET=0、CHANNEL_UP=1和TX_DST_RDY_N=0時,才允許發(fā)送數(shù)據(jù)。 FRAME_CHECK: 本地并行數(shù)據(jù)接收檢測模塊 功能:本地接收GTX并行數(shù)據(jù),并檢測數(shù)據(jù)是否存在誤碼 接口說明: // User Interface input [0:15] RX_D; //接收數(shù)據(jù) output RX_REM; //最后一個16bits數(shù)據(jù)的高低字節(jié)有效標識,0表示,表示RX_D[0:7]有效;1表示RX_D[0:15]有效。 output RX_SOF_N; //接收開始標識,低電平有效 output RX_EOF_N; //接收結(jié)束標識,低電平有效 input RX_SRC_RDY_N; //接收數(shù)據(jù)有效,低電平有效 // System Interface input USER_CLK; //用戶時鐘,由Aurora IP核提供,數(shù)據(jù)發(fā)送模塊用此時鐘作為同步時鐘 input RESET; //復位,高有效 input CHANNEL_UP; //GTX通道初始化完成標志,為1時表示完成 output [0:7] ERR_COUNT; //接收數(shù)據(jù)錯誤個數(shù) Aurora 8B10B IP核參數(shù)設置如下圖所示: ![]() Aurora 8B10B IP核顯示最高只支持6.6Gbps,這里我們將線速率設置為5Gbps,參考時鐘設置為100MHz。 ZYNQ PL工程管腳約束如下圖所示: ![]() 將光模塊插入光模塊籠子,并使用光纖線纜將光模塊的收、發(fā)端口自環(huán)對接: ![]() 打開Vivado示例工程: ![]() 工程打開后界面及工程主要模塊說明如下圖所示: ![]() ![]() 下載bit流文件aurora_8b10b_0_exdes.bit,并且配套aurora_8b10b_0_exdes.ltx調(diào)試文件,如下圖下載界面所示: ![]() ZYNQ PL端提供的ILA調(diào)試窗口,可以實時抓取采集GTX收發(fā)本地并行信號以及錯誤檢測信號的時序波形。 ILA抓取波形如下圖所示: ![]() ILA抓取信號說明如下: ERR_COUNT[0:7]:接收數(shù)據(jù)錯誤個數(shù),接收模塊分析接收數(shù)據(jù)是否正確; tx_d_i[0:15]:發(fā)送數(shù)據(jù); tx_rem_i:最后一個發(fā)送數(shù)據(jù)的高低字節(jié)有效標識,0表示,表示tx_d_i[0:7]有效,1表示tx_d_i[0:15]有效; tx_src_rdy_n_i:發(fā)送數(shù)據(jù)源端準備好標志,結(jié)合tx_dst_rdy_n_i使用,都為0時表示可以發(fā)送數(shù)據(jù), tx_sof_n_i:發(fā)送開始標識,低電平有效; tx_eof_n_i:發(fā)送結(jié)束標識,低電平有效; tx_dst_rdy_n_i:發(fā)送數(shù)據(jù)目的端準備好標志; rx_d_i[0:15]:接收數(shù)據(jù) rx_rem_i:最后一個接收數(shù)據(jù)的高低字節(jié)有效標識,0表示,表示rx_d_i[0:7]有效,1表示rx_d_i[0:15]有效; rx_src_rdy_n_i:接收數(shù)據(jù)源端準備好標志; rx_sof_n_i:接收開始標識,低電平有效; rx_eof_n_i:接收結(jié)束標識,低電平有效; CHANNEL_UP:為1表示GTX通道完成正常初始化; LANE_UP:指示GTX每個lane是否正常初始化成功,這里只有1個Lane; SOFT_ERR、HARD_ERR:軟、硬件錯誤指示,正常情況應該為0 tx_lock_i_ila:GTX時鐘鎖定指示,正常情況應該為1 pll_not_locked_ila:GTX時鐘失鎖指示,正常情況應該為0 VIO虛擬IO界面如下圖所示: ![]() VIO界面上標識Input的為采集信號,用戶只能查看對應信號當前的邏輯電平值,1表示高電平,0表示低電平;VIO界面上標識Output的為用戶控制信號,用于控制用戶邏輯的,用戶可以在Value一欄輸入0/1電平值,從而達到控制用戶邏輯的目的。VIO界面主要用于復位用戶邏輯,以及查看通道是否鏈接成功,VIO界面可以不用操作。 Vivado調(diào)試界面Hardware Manager窗口,右鍵單擊localhost(1),在彈出的菜單中點擊Close Server,斷開ZYNQ JTAG仿真器與板卡的連接: ![]() 最后,關(guān)閉板卡電源,實驗結(jié)束。 ![]() |