Quartus Prime ライト・エディションのバージョン19.1からPlatform Designerを起動し、GenerateでHDLを生成しようとすると、次のようなエラーが発生しました。
Quartus Primeの実行プラットフォームはCentOS7です。
エラーのログを見ると、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