2024年1月18日木曜日

"Error: 'top' doesn't specify a unique design" in DesignCompiler

 学生が以下のような tcl で論理合成中に current_design コマンドでエラーが出ると相談しにきた.
  1. ...
  2. set design "top"
  3. file mkdir ./work
  4. define_design_lib WORK -path ./work
  5. read_file -format verilog ${design}.v
  6. analyze -format verilog ${design}.v -work WORK
  7. elaborate ${design} -work WORK
  8. current_design ${design}
  9. ...
  1. Error: 'top' doesn't specify a unique design
  2. Please use complete specification:fuIUile_name:design_name
このエラーはファイル中に同じモジュール名の回路が複数ある場合に生じるエラー.しかし読み込んでいる Verilog ファイルは1つしかない.今回の例では,read_file コマンドで Verilog ファイルを読み込み,analyze コマンドで同じ Verilog ファイルを再読込しているため,メモリ中に同じモジュールが2つある事になっていたらしい.この場合,
list_design -show_files
list -designs
などでどのようなモジュールが読み込まれているか表示させてデバッグできる.今回についてはファイル読み込みが重複していたので,read_file コマンドを削除し analyze コマンドだけ実行することで解決した.

参考:
Pran Kurup and Taber Abbasi, "LOGIC SYNTHESIS USING SYNOPSYS® 2nd Ed.", KLUWER ACADEMIC PUBLISHERS

0 件のコメント:

コメントを投稿