AR# 39992

LogiCORE IP CPRI v3.2 - GTX トランシーバーの Delay Aligner のエラッタおよび回避策

説明

LogiCORE CPRI IP は、データ パスのレイテンシを確約するため、TX および RX バッファーの両方をバイパスします。(ザイリンクス アンサー 39430) で説明されている Virtex-6 GTX Delay Aligner のエラッタ項目がLogiCORE CPRI IP に影響します。詳細は、エラッタ EN142 およびザイリンクス変更通知 XCN11009 を参照してください。

CPRI IP を使用しているデザインは、TX および RX バッファーをバイパスする必要があり、またデータ パスのレイテンシを確約するため以下の回避策をインプリメントする必要があります。


ソリューション

TX クロッキング

Delay Aligner の問題を修正するには、GTXTXOUTCLK がパスに BUFG がない状態で直接 MMCM を駆動する必要があります。デフォルトで、ラッパーの TXOUTCLK がパスに BUFG がない状態で直接 MMCM を駆動しています。MMCM は MGT と同じ領域に制限されているので、MMCM をその領域から移動するための BUFG を追加しないでください。MMCM を MGT のある領域から移動させるためにこのパスに BUFG を追加してラッパーを変更した場合は、追加した BUFG を削除し、MMCM を TXOUTCLK を供給する MGT と同じ領域に配置する必要があります。

RX クロッキング

Delay Aligner の問題を修正するには、GTX の出力クロックで駆動されている BUFR で GTX RXUSRCLK2 が駆動される必要があります。デフォルトでは、ラッパーの RXUSRCLK2 は既に BUFR で駆動されています。

Delay Aligner の回避策

Tx Delay Aligner および Rx Delay Aligner の両方を無効にするには、次の変更を行います。

手順 1
v6_gtxwizard.vhd にある gtx0_gtx_wrapper_i のインスタンシエーションで、ジェネリックの GTX_POWER_SAVE を 0000000100 から 0000110100 に変更します。

POWER_SAVE 属性を変更すると、ISE 12.4、12.3、12.2 ソフトウェア で DRC エラーが発生します。同じエラーがシミュレーションでも発生します。これらの問題の回避策は (ザイリンクス アンサー 39434) を参照してください。

手順 2
gt_and_clocks.vhd を次のように変更し、 Rx および TX の Delay Aligner を無効にします。

手順 3

次の行を検索します。

tx_sync_i : TX_SYNC
port map (
TXENPMAPHASEALIGN => txenpmaphasealign,
TXPMASETPHASE => txpmasetphase,
TXDLYALIGNDISABLE => txdlyaligndisable,
TXDLYALIGNRESET => txdlyalignreset,
SYNC_DONE => tx_sync_done,
USER_CLK => txusrclk2,
RESET => tx_sync_reset
);


次のように変更します。

tx_sync_i : TX_SYNC
port map (
TXENPMAPHASEALIGN => txenpmaphasealign,
TXPMASETPHASE => txpmasetphase,
TXDLYALIGNDISABLE => open,
TXDLYALIGNRESET => txdlyalignreset,
SYNC_DONE => tx_sync_done,
USER_CLK => txusrclk2,
RESET => tx_sync_reset
);

txdlyaligndisable <= '1';



手順 4

次の行を検索します。

-- Send a grant back to the core when the DRP is ready
process(aux_clk)
begin
if aux_clk'event and aux_clk = '1' then
if (drp_arb_req = '1' and gt_drdy = '1')
or speed_select(1 downto 0) /= "00" then
drp_arb_gnt_i <= '1';
elsif drp_arb_req = '0' then
drp_arb_gnt_i <= '0';
end if;
end if;
end process;


次のように変更します。

drp_arb_gnt_i <= '1';


手順 5

次の行を検索します。

aligner_lock_i <= aligner_lock when speed_select(5 downto 2) /= "0000" else '1';

次のように変更します。

aligner_lock_i <= '1';

手順 6

次の行を検索します。

rxdlyalignreset <= reset_aux_clk_r(0) when speed_select(5 downto 2) /= "0000"
else '1';

次のように変更します。

rxdlyalignreset <= '1';

クロック構造

BUFG の遅延を正しく補正するために MMCM を使用する場合、MMCM の内部分周器を使用する必要があります。そのため、アンサー39430 で記述されているクロック構造は、CPRI IP には使用できません。 clkout0 を使用してuserclk を駆動し、clkfbout ピンに 2 つめの BUFG を使用して、この BUFG の出力を MMCM の入力である clkfbin ピンに入力する必要があります。 example_design/gtx_and_clock ディレクトリにある tx_clk_gen.vhd ファイルを次のように変更します。

手順 7
fbout 信号を追加します。

signal fbout : std_logic;


手順 8
BUFG を fb に追加します。

clkfb_bufg : bufg
port map (
I => fbout,
O => fb);


手順 9
mmcm_adv_inst : MMCM_ADV のインスタンシエーションで
次の行を検索します。

(CLKFBOUT => fb,

次のように変更します。

(CLKFBOUT => fbout,

12.2 の LogiCORE CPRI v3.2 のリリース ノートおよび既知の問題については、(ザイリンクス アンサー 36969) を参照してください。

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
36969 LogiCORE IP CPRI - リリース ノートおよび既知の問題 N/A N/A

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
39430 Virtex-6 GTX トランシーバー - Delay Aligner のエラッタおよび回避策 N/A N/A
AR# 39992
日付 05/20/2012
ステータス アーカイブ
種類 既知の問題
デバイス 詳細 概略
ツール
IP