AR# 52502

Vivado - 1 つの制約のない IDELAYCTRL が ISE MAP の場合のように自動的に複製されない

説明

デザインでは、1 つの制約のない IDELAYCTRL のみがインスタンシエートされています。

このデザインのビットストリーム生成は、ISE で問題なく実行できます。

ISE MAP では IDELAYCTRL が自動的に複製され、合計 3 つがインプリメンテーションの結果に存在します。
 
しかし、Vivado では複製されません。

キャリブレートされた IODELAY は 3 つのクロック領域に広がっているため、write_bitstream によって次のような DRC エラー メッセージが複数表示されます。
 

[Drc 23-20] Rule violation (PLIDC-1) IDELAYCTRL DRC Checks - The IODELAY instance 'ADC_UNIT0/adc_interface_dpa_i/IDELAY_CLOCK_RX' has no associated IDelayCtrl. IDELAYCTRL instance is required to calibrate IODELAY instances.

ソリューション

これは、デザインで 1 つの IDELAYCTRL のみがインスタンシエートされていても、IODELAY に IODELAY_GROUP が複数ある場合に発生することがあります。

Vivado では、1 つの IDELAYCTRL のみがインスタンシエートされていて、すべての IODELAY が同一の IODELAY_GROUP に関連付けられている場合にのみ、この IDELAYCTRL が複製されます。

そうでない場合は、すべての IDELAYCTRL を適宜インスタンシエートする必要があります。

 

この問題を回避するには、すべての IODELAY およびインスタンシエートされた IDELAYCTRL を含む 1 つの IODELAY_GROUP のみが使用されていることを確認します。

次に例を示します。

set_property IODELAY_GROUP IODELAY_MIG [get_cells IDELAYCTRL_UNIT]
set_property IODELAY_GROUP IODELAY_MIG [get_cells ADC_UNIT0/adc_interface_dpa_i/IDELAY_CLOCK_RX]      
set_property IODELAY_GROUP IODELAY_MIG [get_cells ADC_UNIT0/adc_interface_dpa_i/IDELAY_RX_DATA_*]  
set_property IODELAY_GROUP IODELAY_MIG [get_cells ADC_UNIT1/adc_interface_dpa_i/IDELAY_CLOCK_RX]      
set_property IODELAY_GROUP IODELAY_MIG [get_cells ADC_UNIT1/adc_interface_dpa_i/IDELAY_RX_DATA_*] 
set_property IODELAY_GROUP IODELAY_MIG [get_cells DDR2_test_unit/u_DDR2_MIG/u_memc_ui_top_std/mem_intfc0/ddr_phy_top0/u_ddr_mc_phy_wrapper/u_ddr_mc_phy/ddr_phy_4lanes_0.ddr_phy_4lanes/ddr_byte_lane_C.ddr_byte_lane_*/ddr_byte_group_io/input_[*].iserdes_dq_.idelaye2]
set_property IODELAY_GROUP IODELAY_MIG [get_cells FB_ADC_UNIT/fbadc_interface_dpa_i/IDELAY_CLOCK_RX]
set_property IODELAY_GROUP IODELAY_MIG [get_cells FB_ADC_UNIT/fbadc_interface_dpa_i/IDELAY_RX_DATA_*]

注記 : これは ISE での動作とは異なりますが、Vivado では正しい動作です。


AR# 52502
日付 08/28/2014
ステータス アクティブ
種類 一般
ツール 詳細 概略