Использование Quartus из командной строки
Я пытаюсь использовать Quartus II 13.0 (бесплатный веб-пакет) в Linux (Kubuntu 12.04 LTS) из командной строки для создания сетевых списков технологий Verilog из Verilog RTL. Мне это нужно для проекта, в котором я сравниваю результаты синтеза, полученные различными инструментами, для тысяч сгенерированных файлов Verilog. Так что использование графического интерфейса на самом деле не вариант..
Например, с Xilinx Vivado я могу сделать это, используя следующие команды TCL:
read_verilog input.v
synth_design -part xc7k70t -top top_module
write_verilog output.v
Большинство инструментов ASIC, с которыми я работал, предоставляют похожие интерфейсы.
С Xilinx XST все немного сложнее:
1.) создание файла work.xst:
run -ifn work.prj ..some..more..options..
2.) создание файла work.prj:
verilog work "input.v"
3.) работает синтез:
xst -ifn work.xst
4.) создание verilog netlist из двоичного файла verilog:
netgen -w -ofmt verilog work.ngc output
Но с Quartus II я не могу найти никакой документации о том, как использовать инструменты командной строки. Все, что я могу найти, это документация к графическому интерфейсу IDE. Может я просто смотрю не в тех местах?
Итак, прежде чем я начну тыкать в Quartus II IDE с помощью strace и аналогичных инструментов: кто-нибудь использует Quartus II из командной строки и может указать мне правильное направление?
4 ответа
Он очень хорошо спрятан - Quartus-II Handbook Version 13.0, стр. 2-10 (или поиск ASSIGNMENT_FILES) - создает один пример Makefile. Кажется, у него немного гниль - я удалил материал ASSIGNMENT_FILES, и штампы излишни (вы можете проверить файлы журналов), но это начало, и базовая структура работает.
Например, следующий скрипт оболочки синтезирует модуль binary_ops_00000000
из файла дизайна binary_ops_00000000.v
:
PATH=$PATH:/opt/altera/13.0/quartus/bin
quartus_map binary_ops_00000000 --source=binary_ops_00000000.v --family="Cyclone III"
quartus_fit binary_ops_00000000
quartus_eda binary_ops_00000000 --formal_verification --tool=conformal
cp -v fv/conformal/binary_ops_00000000.vo output.v
quartus_eda
поддерживает широкий спектр различных режимов (см. quartus_eda --help=tool
за столом). Verilog, сгенерированный для Conformal LEC, отлично подходит для моей цели.
Я бы порекомендовал запускать эти команды в другом пустом каталоге, так как они генерируют кучу файлов и в некоторых случаях выводят сообщения об ошибках, если обнаружены файлы предыдущих запусков (с другими настройками).
Вы можете найти полезную страницу примеров Quartus II Tcl на altera.com ( http://www.altera.com/support/examples/tcl/tcl.html).
Вы также можете использовать следующее для получения справки обо всех аргументах командной строки и функциях Tcl
quartus_sh --qhelp