UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 50171

PlanAhead - generate 文で作成したサブモジュールに対し「CRITICAL WARNING: [Designutils-31] Unrecognized symbol [0].usub」というメッセージが表示される

説明

HDL コードで generate 文を使用してサブモジュールを生成すると、PlanAhead の制約処理で生成されたサブモジュールが認識されません。

次の例では、3 つのコアを生成しました。

     generate genvar i ;
     for( i=0; i<INSNUM; i=i+1 ) begin

          dut_sub
          #(
          .BUSWIDTH( BUSWIDTH ) ,
          .REGNUM( 248 ),
          .CNTNUM( 160 )
          ) usub (
          .sub( SUB[i] ),
          .clk( CLK_320MHZ ),
          .RST( RST ),
          .din ( din ),
          .dout ( douw[i] )
          ) ;



このコード例では、次の名前のモジュールが 3 つ生成されます。

  • .\[1].usub#dut_sub
  • .\[2].usub#dut_sub
  • .\[0].usub#dut_sub  

 

しかし、制約の適用時に PlanAhead ではこれらのモジュールが認識されないようです。

CRITICAL WARNING: [Designutils-31] Unrecognized symbol [0].usub" [/proj/project_2/project_2.srcs/constrs_1/imports/scr_files/top.ucf:10]
CRITICAL WARNING: [Designutils-31] Unrecognized symbol [2].usub" [/proj/project_2/project_2.srcs/constrs_1/imports/scr_files/top.ucf:13]
CRITICAL WARNING: [Designutils-31] Unrecognized symbol [1].usub" [/proj/project_2/project_2.srcs/constrs_1/imports/scr_files/top.ucf:16]


アスタリスク (*) がインスタンス名の前に追加されていると、始めは認識されます。

最初の UCF :

INST "[2].usub" AREA_GROUP = "pblock_[2].usub";
AREA_GROUP "pblock_[2].usub" RANGE=SLICE_X0Y150:SLICE_X30Y199;


変更後の UCF :

INST "*[2].usub" AREA_GROUP = "pblock_[2].usub";
AREA_GROUP "pblock_[2].usub" RANGE=SLICE_X0Y150:SLICE_X30Y199;

しかし、インプリメントされたデザインを開くと、PlanAhead ではまたこのブロックが認識されなくなります。

また、インプリメント配置がインポートされたにもかかわらず、generate 文で合成されたブロックの下にあるプリミティブがすべて [Device] ビューに表示されません。

 

 

ソリューション

この問題は、インスタンス名が [ で始まっているために発生しています。

GUI (または Tcl) でこれらのインスタンスを正しく AREA_GROUP に割り当てることができます。

add_cells_to_pblock {pblock_[0].usub} [get_cells [list {[0].usub}]] -clear_locs
add_cells_to_pblock {pblock_[1].usub} [get_cells [list {[1].usub}]] -clear_locs
add_cells_to_pblock {pblock_[2].usub} [get_cells [list {[2].usub}]] -clear_locs


しかし、ビューを開いたり、開き直したりすると、このリンクが失われて Tcl コンソールに次のメッセージが表示されます。

CRITICAL WARNING: [Designutils-31] Unrecognized symbol [2].usub" [/proj/project_2/project_2.runs/impl_1_2/.constrs/dut_top.ucf:10]


generate 文に generate_block_name を追加するとこの問題を回避できます。

generate genvar i ;
for( i=0; i<INSNUM; i=i+1 ) begin: test

これでインスタンスに「test[0].usub」、「test[1].usub」、「test[2].usub」という名前が付けられます。
AR# 50171
日付 08/29/2014
ステータス アーカイブ
種類 既知の問題
ツール
  • PlanAhead
このページをブックマークに追加