Параметры для скрипта

Есть ли способ передать параметры (или аргументы командной строки) скрипту Yosys?

Я вижу в этом вопросе (Можем ли мы иметь переменные в сценарии Yosys?) вы можете запустить скрипт Yosys в интерпретаторе TCL. Есть ли способ передать аргумент?

Причина, по которой я это делаю, заключается в том, что у меня есть сценарий, и я хочу иметь возможность вызывать сценарий с параметризованным путем к файлу Verilog. Конечно, это общая потребность, и должен быть какой-то простой способ сделать это, но я его не вижу.


person jgoeders    schedule 09.06.2017    source источник


Ответы (2)


Единственный способ сделать это на данный момент — использовать переменные среды и скрипты TCL. Например, вы можете написать TCL-скрипт test.tcl:

yosys read_verilog $::env(VLOG_FILE_NAME)
yosys synth -top $::env(TOP_MODULE)
yosys write_verilog output.v

А затем вызовите if с VLOG_FILE_NAME и TOP_MODULE, установленными в среде:

VLOG_FILE_NAME=tests/simple/fiedler-cooley.v TOP_MODULE=up3down5 yosys test.tcl

Если вы запускаете Yosys из сценария оболочки, вы также можете просто запустить что-то вроде export VLOG_FILE_NAME=... в начале вашего сценария. Точно так же вы можете использовать оператор export Makefile при запуске Yosys из Makefile.

person CliffordVienna    schedule 10.06.2017

Я столкнулся с подобным случаем. Этот вопрос появился, когда я работал над решением. Однако я остановился на другом подходе:

Я создаю оболочку для своего верхнего модуля, написанную на языке m4. Это очень просто, он переопределяет значение параметров, а затем включает определение моего верхнего модуля.

Затем в Makefile я обрабатываю файл wrapper.m4, чтобы создать результирующий файл wrapper.v, который будет вводом для yosys.

Я подробно описал решение здесь.

person Alexandre Dumont    schedule 10.07.2018