Quartus Prime 19.1のPlatform DesignerでGenerateが失敗する

設計

Quartus Prime ライト・エディションのバージョン19.1からPlatform Designerを起動し、GenerateでHDLを生成しようとすると、次のようなエラーが発生しました。

Quartus Primeの実行プラットフォームはCentOS7です。

Platform Designerのエラー

エラーのログを見ると、jtag_uartのHDL生成に失敗しているのがわかります。試しにjtag_uartをシステムから取り除いて再度HDLを生成すると、別のモジュールでエラーが発生します。このため、jtag_uart自体に問題がある訳ではなさそうです。

Info: jtag_uart: Starting RTL generation for module 'soc_system_jtag_uart'
Info: jtag_uart:   Generation command is [exec /home/opt/intelFPGA_lite/19.1/quartus/linux64/perl/bin/perl -I /home/opt/intelFPGA_lite/19.1/quartus/sopc_builder/bin/europa -I /home/opt/intelFPGA_lite/19.1/quartus/sopc_builder/bin -I /home/opt/intelFPGA_lite/19.1/quartus/../ip/altera/sopc_builder_ip/common -I /home/opt/intelFPGA_lite/19.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- /home/opt/intelFPGA_lite/19.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=soc_system_jtag_uart --dir=/tmp/alt8404_8020847811609960051.dir/0003_jtag_uart_gen/ --quartus_dir=/home/opt/intelFPGA_lite/19.1/quartus --verilog --config=/tmp/alt8404_8020847811609960051.dir/0003_jtag_uart_gen//soc_system_jtag_uart_component_configuration.pl  --do_build_sim=0  ]
Info: jtag_uart: Can't locate Getopt/Long.pm in @INC (you may need to install the Getopt::Long module) (@INC contains: /home/opt/intelFPGA_lite/19.1/quartus/sopc_builder/bin/europa /home/opt/intelFPGA_lite/19.1/quartus/sopc_builder/bin /home/opt/intelFPGA_lite/19.1/quartus/../ip/altera/sopc_builder_ip/common /home/opt/intelFPGA_lite/19.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart /tools/perl/5.28.1/linux64/lib/site_perl/5.28.1/x86_64-linux /tools/perl/5.28.1/linux64/lib/site_perl/5.28.1 /tools/perl/5.28.1/linux64/lib/5.28.1/x86_64-linux /tools/perl/5.28.1/linux64/lib/5.28.1) at /home/opt/intelFPGA_lite/19.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl line 18.
Info: jtag_uart: BEGIN failed--compilation aborted at /home/opt/intelFPGA_lite/19.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl line 18.
Info: jtag_uart: Done RTL generation for module 'soc_system_jtag_uart'
Error: jtag_uart: Failed to find module soc_system_jtag_uart

比較のために、Quartus Primeバージョン18.1のPlatform Designerで同じデザインに対してgenerateを実行すると、問題なくHDLが生成されます。

Info: jtag_uart: Starting RTL generation for module 'soc_system_jtag_uart'
Info: jtag_uart:   Generation command is [exec /home/opt/intelFPGA_lite/18.1/quartus/linux64/perl/bin/perl -I /home/opt/intelFPGA_lite/18.1/quartus/linux64/perl/lib -I /home/opt/intelFPGA_lite/18.1/quartus/sopc_builder/bin/europa -I /home/opt/intelFPGA_lite/18.1/quartus/sopc_builder/bin/perl_lib -I /home/opt/intelFPGA_lite/18.1/quartus/sopc_builder/bin -I /home/opt/intelFPGA_lite/18.1/quartus/../ip/altera/sopc_builder_ip/common -I /home/opt/intelFPGA_lite/18.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart -- /home/opt/intelFPGA_lite/18.1/quartus/../ip/altera/sopc_builder_ip/altera_avalon_jtag_uart/generate_rtl.pl --name=soc_system_jtag_uart --dir=/tmp/alt8404_5668509278319344642.dir/0003_jtag_uart_gen/ --quartus_dir=/home/opt/intelFPGA_lite/18.1/quartus --verilog --config=/tmp/alt8404_5668509278319344642.dir/0003_jtag_uart_gen//soc_system_jtag_uart_component_configuration.pl  --do_build_sim=0  ]
Info: jtag_uart: Done RTL generation for module 'soc_system_jtag_uart'
Info: jtag_uart: "soc_system" instantiated altera_avalon_jtag_uart "jtag_uart"

エラー原因

ログから、generate_rtl.plの18行目のGetopt::Longが見つからないためにエラーが発していることがわかります。

Info: jtag_uart: Can't locate Getopt/Long.pm in @INC (you may need to install the Getopt::Long module) (@INC contains: /home/opt/intelFPGA_lite/19.1/quartus/sopc_builder/bin/europa 
:
) at generate_rtl.pl line 18.
use Getopt::Long;

バージョン18.1の場合、perl実行時に-Iオプションで/home/opt/intelFPGA_lite/18.1/quartus/linux64/perl/libが指定されていますが、バージョン19.1の場合、それに対応するパスが指定されていないためにエラーが発生しているようです。

解決策

環境変数PERL5LIBにperlのライブラリパスを追加してからquartusを起動します。

追加するパスは、Quartusをインストールしたディレクトリ以下でGetoptを検索するとわかります。(以下の例は、インストールディレクトリが/home/opt/intelFPGA_lite/19.1)

/home/opt/intelFPGA_lite/19.1/quartus/linux64/perl/lib/5.28.1/Getopt

よって、ターミナルを開いてPERL5LIBに上記のパス(/home/opt/intelFPGA_lite/19.1/quartus/linux64/perl/lib/5.28.1)を設定してからquartusを起動すると、問題なくPlatform Designerでgenerateできるようになります。

$export PERL5LIB=/home/opt/intelFPGA_lite/19.1/quartus/linux64/perl/lib/5.28.1
$cd /home/opt/intelFPGA_lite/19.1/quartus/bin
$./quartus
タイトルとURLをコピーしました