AR# 40385

MIG Spartan-6 MCB - ユーザー インターフェイス クロックおよびキャリブレーション クロックの比率が奇数の場合タイミング違反がクロック ドメインをまたがって発生する

説明

キャリブレーション クロック (mcb_drp_clock) とユーザー インターフェイス クロック (clk0) の比率が奇数である場合、MIG v3.7 およびそれ以前のバージョンの Spartan-6 FPGA MCB サンプル デザインでタイミング違反が発生します。

これらのクロックは、インフラストラクチャ モジュールにある PLL_ADV ブロックの出力で、PLL の VCO 周波数を 2 つの除数で割って生成されています。

タイミングのソースは mcb_drp_clk 信号でクロック供給を受けている mcb_soft_calibration モジュールにある DONE_SOFTANDHARD_CAL レジスタで、デスティネーションは clk0 でクロック供給を受けているトラフィック ジェネレーターの init_mem_pattern_ctr モジュールにある mcb_init_done_reg レジスタです。

ソリューション

キャリブレーション クロックとユーザー インターフェイス クロックの除数の 1 つが奇数でもう 1 つが偶数の場合にのみ、このタイミングの問題が発生します。 

たとえば、ユーザー インターフェイス クロックの PLL 除数が 2 で、キャリブレーション クロックの除数が 11 のときなどに、タイミング エラーが発生します。 

この問題を回避するには、DONE_SOFTANDHARD_CAL レジスタの後に同期化レジスタを 1 つ追加します。

これにより、mcb_init_done_reg レジスタで使用される前にメモリー クロック ドメインに同期化するようにします。  


mcb_soft_calibration.v モジュールにある DONE_SOFTANDHARD_CAL レジスタから生成される mcb_init_done_i 信号を、clk0 クロック ドメインに同期化するため、init_mem_pattern_ctr.v モジュールで Verilog コードを次のように変更する必要があります。 

VHDL コードの変更も同様に DONE_SOFTANDHARD_CAL レジスタの出力が mcb_init_done_reg レジスタに割り当てられる前に、2 つの同期化レジスタを追加します。 

また、DONE_SOFTANDHARD_CAL レジスタからのクロック ドメインをまたぐパスを無視するため、UCF で TIG を割り当てる必要があります。

MIG 3.7 および MIG 3.61 の UCF 構文は次のとおりです。

UCF assignment for MIG 3.61 およびそれ以降のバージョンでの UCF 構文例

NET "memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL" TIG;

MIG 3.7 での UCF 構文例

NET "memc?_wrapper_inst/mcb_ui_top_inst/mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL" TIG;

元の Verilog コード

always @ (posedge clk_i)
begin
mcb_init_done_reg <= mcb_init_done_i;
end

新しい Verilog コード

//mcb_init_done_i is clocked by calibration clock
reg mcb_init_done_i_r1;
reg mcb_init_done_i_r2;

always @ (posedge clk_i)
begin
mcb_init_done_i_r1 <= mcb_init_done_i;
mcb_init_done_i_r2 <= mcb_init_done_i_r1;
mcb_init_done_reg <= mcb_init_done_i_r2;
end

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

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
39128 MIG Virtex-6 および Spartan-6 v3.7 - ISE Design Suite 13.1 でのリリース ノートおよび既知の問題 N/A N/A
AR# 40385
日付 08/21/2014
ステータス アクティブ
種類 既知の問題
デバイス