フ レー ミ ング RX デー タ イ ン タ ー フ ェ イ ス
フ レーム RX デー タ の想定値が LFSR で計算 さ れます。 受信 し たユーザーデー タ は、 次の AXI4-Stream プ ロ ト コ ル規 則に対 し てチ ェ ッ ク さ れ有効/無効が判断 さ れます。
m_axi_rx_tvalid がアサー ト さ れ る と 、 フ レームが開始 し ます。
1. m_axi_rx_tkeep バス は、m_axi_rx_tlast がアサー ト さ れてい る 間有効 と な り ます。
2. m_axi_rx_tvalid 信号は、 想定値 と 実際の値が比較 さ れてい る 間アサー ト さ れ る 必要があ り ます。
X-Ref Target - Figure 5-6
図 5-6 : Aurora 64B/66B コ アのユーザー K の TX イ ン タ ー フ ェ イ ス (FRAME_GEN) XVHUBFON
86(5.
7;,) VBD[LBXVHUBNBW[BWUHDG\
FKDQQHOBXS
VBD[LBXVHUBNBWGDWD> Q@
VBD[LBXVHUBNBW[BWYDOLG
;
UHVHW
表 5-6 : FRAME_GENユーザー K ユーザー I/O ポー ト (TX)
名前 方向 説明
s_axi_user_k_tdata [0:(n*64–1)] 出力 ユーザー K ブ ロ ッ ク デー タ です。s_axi_user_k_tx_tdata =
{4'h0, USER K BLOCK NO, USER K DATA[0:56n–1]}
s_axi_user_k_tx_tvalid 出力 s_axi_user_k_tdata ポー ト 上のユーザー K デー タ が有効の場
合にアサー ト さ れます (ア ク テ ィ ブ High)。
s_axi_user_k_tx_tready 入力
Aurora 8B/10B コ アが s_axi_user_k_tx_tdata イ ン タ ーフ ェ イ ス か ら デー タ を読み出す準備が整 う と アサー ト (ア ク テ ィ ブ High) さ れます。
channel_up 入力 Aurora 8B/10B チ ャ ネルの初期化が完了 し 、 チ ャ ネルがデー タ 送信
可能な状態にな る と アサー ト さ れます (ア ク テ ィ ブ High)。
user_clk 入力 Aurora 64B/66B コ ア と ユーザー アプ リ ケーシ ョ ン で共有 さ れ る パ
ラ レルク ロ ッ ク です。
reset 入力 Aurora コ ア を リ セ ッ ト し ます (ア ク テ ィ ブ High)。
m_axi_rx_tdata ポー ト に入力 さ れ る RX デー タ が レ ジ ス タ に格納 さ れて、FRAME_CHECK 内に あ る 計算 さ れた RX デー タ と 比較 さ れ ます。 入力 さ れた RX デー タ が想定 し た RX デー タ と 一致 し ない場合、8 ビ ッ ト カ ウ ン タ ーが イ ン ク リ メ ン ト さ れます。 こ のエ ラ ーカ ウ ン タ ーは、data_err_count ポー ト を介 し てユーザーアプ リ ケーシ ョ ン へ伝え ら れます。 エ ラ ー カ ウ ン タ ーは、255 に達す る と カ ウ ン ト を停止 し ます。
注記:カ ウ ン タ ーは、 リ セ ッ ト し て 0 に戻す こ と がで き ます。
図5-7 に、Aurora 64B/66B コ ア の FRAME_CHECK フ レ ー ミ ン グ ユ ー ザ ー イ ン タ ー フ ェ イ ス と RX デー タ 用 の AXI4-Stream に準拠す る ポー ト を示 し ます。
表5-7 では、FRAME_CHECK フ レー ミ ン グ RX デー タ ポー ト と それ ら の説明を示 し てい ます。
X-Ref Target - Figure 5-7
図 5-7 : Aurora 64B/66B コ アの フ レー ミ ング RX デー タ イ ン タ ー フ ェ イ ス (FRAME_CHECK)
表 5-7 : FRAME_CHECK フ レー ミ ングのユーザー I/O ポー ト (RX)
名前 方向 説明
m_axi_rx_tdata[0:(64n–1)] 入力 チ ャ ネル パー ト ナーか ら 入力 さ れ る フ レ ーム デー タ です (昇ビ ッ
ト 順)。
m_axi_rx_tkeep[0:n–1] 入力 最 後 の デ ー タ ビ ー ト で 有 効 な バ イ ト 数 を 示 し ま す。
m_axi_rx_tlast がアサー ト さ れてい る 場合のみ有効です。
m_axi_rx_tvalid 入力
Aurora コ ア か ら のデー タ お よ び制御信号が有効の場合に アサー ト
(High) さ れます。Aurora コ アか ら のデー タ ま たは制御信号を無視す る 場合にはデ ィ アサー ト (Low) さ れます。
m_axi_rx_tlast 入力 入 力 さ れ る フ レ ー ム の 最 後 を 示 し ま す (ア ク テ ィ ブ High で、
user_clk の 1 サ イ ク ル間アサー ト さ れ る)。
data_err_count[0:7] 出力 フ レーム チ ェ ッ カーが受信 し た想定値 と 異な る RX フ レームデー
タ ワ ー ド 数を示 し ます。
channel_up 入力 Aurora 8B/10B チ ャ ネルの初期化が完了 し 、 チ ャ ネルがデー タ 送信
可能な状態にな る と アサー ト さ れます (ア ク テ ィ ブ High)。
user_clk 入力 Aurora 64B/66B コ ア と ユーザーアプ リ ケーシ ョ ン で共有 さ れ る パ
ラ レル ク ロ ッ ク です。
reset 入力 Aurora コ ア を リ セ ッ ト し ます (ア ク テ ィ ブ High)。
PBD[LBU[BWGDWD> Q@
)UDPLQJ 5;'DWD,QWHUIDFH PBD[LBU[BWNHHS> Q@
PBD[LBU[BWYDOLG
PBD[LBU[BWODVW
XVHUBFON
FKDQQHOBXS
GDWDBHUUBFRXQW>@
;
UHVHW
ス ト リ ー ミ ン グ RX デー タ イ ン タ ー フ ェ イ ス
• ス ト リ ー ミ ン グモー ド の場合、 入力 さ れ る RX デー タ が想定 さ れた RX デー タ に対 し て比較 さ れます。
• RX デー タ は、m_axi_rx_tvalid がアサー ト さ れてい る 場合のみ比較 さ れます。
図5-8 に、RX デー タ 用の Aurora 64B/66B コ アの FRAME_CHECK ス ト リ ー ミ ン グユーザーイ ン タ ーフ ェ イ ス を示 し ます。
表5-8 では、FRAME_CHECK ス ト リ ー ミ ン グ RX デー タ ポー ト と それ ら の説明を示 し てい ます。
X-Ref Target - Figure 5-8
図 5-8 : Aurora 64B/66B コ アのス ト リ ー ミ ング RX デー タイ ン タ ー フ ェ イ ス (FRAME_CHECK)
表 5-8 : FRAME_CHECK ス ト リ ー ミ ングのユーザー I/O ポー ト (RX)
名前 方向 説明
m_axi_rx_tdata[0:(64n–1)] 入力 チ ャ ネル パー ト ナーか ら 入力 さ れ る フ レーム デー タ です (昇ビ ッ
ト 順)。
m_axi_rx_tvalid 入力
Aurora コ アか ら のデー タ お よ び制御信号が有効の場合にアサー ト
(High) さ れ ま す。Aurora コ アか ら のデー タ ま たは制御信号を無視 す る 場合にはデ ィ アサー ト (Low) さ れます。
data_err_count[0:7] 出力 フ レームチ ェ ッ カーが受信 し た想定値 と 異な る RX デー タ ワ ー ド
数を示 し ます。
channel_up 入力 Aurora 8B/10B チ ャ ネルの初期化が完了 し 、 チ ャ ネルがデー タ 送信
可能な状態にな る と アサー ト さ れます (ア ク テ ィ ブ High)。
user_clk 入力 Aurora 64B/66B コ ア と ユーザーアプ リ ケーシ ョ ンで共有 さ れ る パ
ラ レル ク ロ ッ ク です。
reset 入力 Aurora コ ア を リ セ ッ ト し ます (ア ク テ ィ ブ High)。
PBD[LBU[BWGDWD> Q@
6WUHDPLQJ 5;'DWD,QWHUIDFH PBD[LBU[BWYDOLG
XVHUBFON
FKDQQHOBXS
GDWDBHUUBFRXQW>@
;
UHVHW
UFC RX イ ン タ ー フ ェ イ ス
• UFC RX デー タ の想定値が LFSR で計算 さ れます。
• エ ラ ーチ ェ ッ ク 機能お よ びカ ウ ン タ ーロ ジ ッ ク は、「フ レー ミ ン グ RX デー タ イ ン タ ーフ ェ イ ス」 と 同 じ です。
• 入力 さ れたm_axi_ufc_rx_tdata が想定 し た RX UFC デー タ と 一致 し ない場合、8 ビ ッ ト カ ウ ン タ ーが イ ン ク リ メ ン ト さ れます。
• こ のエ ラ ー カ ウ ン タ ーは、ufc_err_count ポー ト を介 し てユーザー アプ リ ケーシ ョ ンへ伝え ら れます。
図5-9 に、Aurora 64B/66B コ アの FRAME_CHECK UFC RX イ ン タ ーフ ェ イ ス と UFC RX デー タ 用の AXI4-Stream に 準拠す る ポー ト を示 し ます。
X-Ref Target - Figure 5-9
図 5-9 : Aurora 64B/66B コ アの UFC RX イ ン タ ー フ ェ イ ス (FRAME_CHECK) PBD[LBXIFBU[BWGDWD>Q@
8)&
5;,QWHUIDFH PBD[LBXIFBU[BWNHHS> Q@
PBD[LBXIFBU[BWYDOLG PBD[LBXIFBU[BWODVW XVHUBFON
XIFBHUUBFRXQW>@
;
FKDQQHOBXS UHVHW
表5-9 では、FRAME_CHECK UFC RX デー タ ポー ト と それ ら の説明を示 し てい ます。
ユーザー K の RX イ ン タ ー フ ェ イ ス
• 想定値 と 実際のユーザー K デー タ が比較 さ れてい る 間、m_axi_rx_user_k_tvalid がアサー ト さ れます。
• 入力 さ れ る m_axi_rx_user_k_tdata があ ら か じ め定義 さ れたユーザー K デー タ に対 し て比較 さ れます。
• こ れ ら が一致 し ない場合、8 ビ ッ ト の user_k_err_count が イ ン ク リ メ ン ト さ れます。
• こ のエ ラ ー カ ウ ン タ ーは、user_k_err_count ポー ト を介 し てユーザー アプ リ ケーシ ョ ンへ伝え ら れます。
図5-10 に、Aurora 64B/66B コ ア の FRAME_CHECK ユーザー K RX イ ン タ ー フ ェ イ ス と ユーザー K RX デー タ 用の AXI4-Stream に準拠す る ポー ト を示 し ます。
表5-10 では、FRAME_CHECK ユーザー K の RX デー タポー ト と それ ら の説明を示 し てい ます。
表 5-9 : FRAME_CHECK UFC のユーザー I/O ポー ト (RX)
名前 方向 説明
m_axi_ufc_rx_tdata [0:(64n–1)] 入力 チ ャ ネルパー ト ナーか ら 送 ら れ る UFC メ ッ セージデー タ です。
m_axi_ufc_rx_tkeep [0:n–1] 入力
UFC メ ッ セージの最後の ワ ー ド で m_axi_ufc_rx_tdata ポー ト に 現 れ る 有 効 な バ イ ト デ ー タ 数 を 指 定 し ま す。
m_axi_ufc_rx_tlast が ア サー ト さ れ て い る 場合のみ有効で す。n = 最大 256 バ イ ト
m_axi_ufc_rx_tvalid 入力
m_axi_ufc_rx_tdata ポー ト の値が有効な場合に ア サー ト さ れ ま す (ア ク テ ィ ブ High)。 こ の信号が ア サー ト さ れ な い場合、
m_axi_ufc_rx_tdata ポー ト のすべての値は無視 さ れます。
m_axi_ufc_rx_tlast 入力 入力 さ れ る UFC メ ッ セージの終わ り を示 し ます。
ufc_err_count[0:7] 出力 フ レ ーム チ ェ ッ カーが受信 し た想定値 と 異な る RX UFC デー タ
ワー ド 数を示 し ます。
channel_up 入力 Aurora 8B/10B チ ャ ネルの初期化が完了 し 、 チ ャ ネルがデー タ 送
信可能な状態にな る と アサー ト さ れます (ア ク テ ィ ブ High)。
user_clk 入力 Aurora 64B/66B コ ア と ユーザー ア プ リ ケーシ ョ ン で共有 さ れ る
パ ラ レルク ロ ッ ク です。
reset 入力 Aurora コ ア を リ セ ッ ト し ます (ア ク テ ィ ブ High)。
X-Ref Target - Figure 5-10
図 5-10 : Aurora 64B/66B コ アのユーザー K RX イ ン タ ー フ ェ イ ス (FRAME_CHECK) PBD[LBXVHUBNBU[BWGDWD>Q@
86(5.
5;,QWHUIDFH PBD[LBXVHUBNBU[BWYDOLG
XVHUBFON
FKDQQHOBXS
XVHUBNBHUUBFRXQW>@
;
UHVHW
Aurora 64B/66B サンプル デザ イ ンは、 合成は XST で検証 さ れ、 シ ミ ュ レーシ ョ ンは Mentor Graphics Questa® で検証 さ れてい ます。
サン プル デザイ ンの実装
サンプルデザ イ ンは、IP コ アか ら 生成す る 必要があ り ます。 こ れを行 う には、 生成 し た IP を右 ク リ ッ ク し ます。 右 ク リ ッ ク メ ニ ュ ーか ら [Open Example Design] を ク リ ッ ク し ます。 こ れで、 生成 し た IP コ ア用のサンプル デザ イ ンが 開 き ます。[Run Implementation] を ク リ ッ ク す る と 、合成 と イ ンプ リ メ ン テーシ ョ ン を実行で き ます。その他、[Generate Bitstream] を ク リ ッ ク し て、 ビ ッ ト ス ト リ ーム を生成で き ます。
注記:XDC でデザ イ ンのすべての入力お よ び出力ポー ト に LOC お よ び IO 規格を指定す る 必要があ り ます。
サン プル デザイ ンのハー ド ウ ェ ア リ セ ッ ト FSM
Aurora 64B/66B v9.2 コ ア サ ン プル デザ イ ン には、 反復 リ セ ッ ト の実行や リ ン ク の堅牢性を モニ タ ーす る ハー ド ウ ェ ア リ セ ッ ト FSM が統合 さ れてい ます。 こ の FSM には、 リ セ ッ ト 信号のアサー ト 間隔を異な る 値に設定す る オプシ ョ ン も あ り ます。 ま た、channel_up と link_reset の状態遷移カ ウ ン タ ーが連続的にモニ タ ー さ れて、VIO を介 し てテ ス ト ス テー タ ス が レ ポー ト さ れます。
リ ン ク をプ ロ ーブす る ために、 次の信号がデフ ォ ル ト の ILA お よ び VIO に追加 さ れてい ます。
i_ila
• tx_d_i[0:15] : LocalLink Frame Gen モジ ュ ールか ら の TX デー タ 信号
• rx_d_i[0:15] : LocalLink Frame チ ェ ッ ク モジ ュ ールへの RX デー タ 信号
• data_err_count_o : 8 ビ ッ ト のデー タエ ラ ーカ ウ ン ト 値 (通常動作では 'd0 )
• lane_up_vio_usrclk : lane_up信号
• channel_up_i : channel_up 信号
• soft_err_i : ソ フ ト エ ラ ーモニ タ ー 表 5-10 : FRAME_CHECK ユーザー K のユーザー I/O ポー ト (RX)
名前 方向 説明
m_axi_rx_user_k_tvalid 入力 m_axi_rx_user_k_tdata ポー ト 上のユーザー K デー タ が
有効の場合にアサー ト さ れます (ア ク テ ィ ブ High)。
m_axi_rx_user_k_tdata[0:(64n–1)] 入力
Aurora レーンか ら ユーザー K ブ ロ ッ ク を受信 し ます。
各レーンの信号マ ッ プ :
m_axi_rx_user_k_tdata={4'h0, User K Block No, User K Data}
user_k_err_count[0:7] 出力 フ レーム チ ェ ッ カーが受信 し た想定値 と 異な る RX ユーザー K
デー タ ワー ド 数を示 し ます。
channel_up 入力 Aurora チ ャ ネルの初期化が完了 し 、 チ ャ ネルがデー タ 送信可能
な状態にな る と アサー ト さ れます (ア ク テ ィ ブ High)。
user_clk 入力 Aurora 64B/66B コ ア と ユーザー アプ リ ケーシ ョ ンで共有 さ れ る
パ ラ レルク ロ ッ ク です。
reset 入力 Aurora コ ア を リ セ ッ ト し ます (ア ク テ ィ ブ High)。
• hard_err_i : ハー ド エ ラ ーモニ タ ー vio1_inst :
• sysreset_from_vio_i : サンプルデザ イ ンのreset入力
• gtreset_from_vio_i : サンプルデザ イ ンのpma_init
• vio_probe_in2 : リ ン ク ス テー タ ス用の ク オ リ テ ィ カ ウ ン タ ー
• rx_cdrovrden_i : ループバ ッ クモー ド を有効にす る 間使用
• loopback_i : ループバ ッ ク モー ド を有効にす る 間使用 vio2_inst :
• reset_quality_cntrs : サンプルデザ イ ンのすべての ク オ リ テ ィ カ ウ ン タ ーを リ セ ッ ト す る 際に使用
• reset_test_fsm_from_vio : ハー ド ウ ェ ア リ セ ッ ト テ ス ト FSM を リ セ ッ ト す る 際に使用
• reset_test_enable_from_vio : ハー ド ウ ェ ア上で VIO ポー ト を介 し て反復 リ セ ッ ト テ ス ト を有効化/開始 す る 場合に使用
• iteraion_cnt_sel_from_vio : 開始す る 反復 リ セ ッ ト の反復回数。 固定の反復回数を示すエン コ ー ド さ れた 4 ビ ッ ト の値で、[Vivado lab tools] がオンに設定 さ れてい る 場合にサンプルデザ イ ンに表示
• lnk_reset_in_initclk : link_reset のアサー ト を モニ タ ーす る ための入力プ ロ ーブ
• soft_err_in_initclk : soft_err ス テー タ ス をモニ タ ーす る ための入力プ ロ ーブ
• chan_up_transcnt_20bit_i [15:8] : channel_up の ト ラ ンザ ク シ ョ ン回数。 完了 し た リ セ ッ ト 反復回数 を モニ タ ーす る ために使用
注記:
a. chan_up_transcnt_20bit_i は、[15:8] ビ ッ ト のみプ ロ ーブ さ れます。 し たがっ て、 こ のプ ロ ーブは ス テー タ ス の更新に多少時間がかか り ます。
b. リ セ ッ ト 反復回数を変更す る 場合は、iteraion_cnt_sel_from_vio のそれぞれの値を変更 し 、 それに 応 じ て chan_up_transcnt_20bit_i を選択 し て ス テー タ ス をプ ロ ーブ し ます。
vio3_inst :
• test_passed_r : リ セ ッ ト が問題な く 完了 し た場合、 それぞれの反復回数が終了 し た後に、 こ のテ ス ト パ ス ス テー タ ス がアサー ト
• test_failed_r : channel_up 信号の欠如ま たはデー タ エ ラ ーが生 じ た場合に、 こ のテ ス ト フ ェ イ ルス テー タ ス がアサー ト
• lnkrst_cnt_20bit_vio_i : link_reset がアサー ト さ れ る 回数を モニ タ ーす る ためのプ ロ ーブ信号
• reset_test_fsm_chk_time_sel : リ セ ッ ト 信号がデ ィ アサー ト さ れた後、channel_up のアサー ト 用ハー ド ウ ェ ア reset_fsm チ ェ ッ ク タ イ ム を選択す る ための、 エン コ ー ド さ れた 3 ビ ッ ト のプ ロ ーブ信号
ハー ド ウ ェ ア FSM オペレーシ ョ ン :
サンプルデザ イ ン (<user_component_name>_exdes.v) には、 反復 リ セ ッ ト 時の リ ン ク の堅牢性を テ ス ト す る た め に、 ハ ー ド ウ ェ ア 主 導 の 反 復 リ セ ッ ト FSM が 追 加 さ れ て い ま す。 こ の FSM に は、IDLE、ASSERT_RST、 DASSERT_RST、WAIT、WAIT1、CHECK、FAIL、 お よ び DONE ス テー ト があ り ます。
1. IDLE ス テー ト 時には、 リ セ ッ ト テ ス ト に合格 し た こ と を示す test_passed_r、 リ セ ッ ト テ ス ト に合格 し なか っ た こ と を示す test_failed_r、 お よ び リ セ ッ ト の反復回数を示す timer_r がデフ ォ ル ト の 0 にな り ます。
2. vio か ら の reset_test_enable_from_vio 信号がアサー ト さ れ る と 、 ハー ド ウ ェ ア FSM が ASSERT_RST ス テー ト へ遷移 し 、pma_init が指定時間 (28 ビ ッ ト のカ ウ ン ト 数) アサー ト さ れます。
3. こ の pma_init がアサー ト さ れ る こ と に よ っ て、 リ ン ク パー ト ナーがホ ッ ト プ ラ グ を検出 し ます。 その後、ハー ド ウ ェ ア FSM が DEASSERT_RST ス テー ト へ遷移 し 、pma_init がデ ィ アサー ト さ れて タ イ マーにデフ ォ ル ト 値があ ら か じ め ロ ー ド さ れます。 こ の値は、reset_test_fsm_chk_time_sel vio 信号を使用 し て指定で き ま す。