Прежде всего argv
и @ARGV
повторяют аргументы, передаваемые программе, а не функции. Verilog реализует аналогичную функциональность с plusargs
. Другими словами, вы можете передавать аргументы, начинающиеся с +
, и использовать plusargs
функции для их поиска. Например, если вы называете изображение симуляции следующим образом:
%> simv +HELLO
во Врейлоге вы можете использовать что-то вроде следующего
initial begin
if ($test$plusargs("HELLO")) $display("Hello argument found.");
...
end
Стандарт определяет 2 функции:
$test$plusargs ( string )
$value$plusargs ( user_string, variable )
Во-вторых, c
не не позволяет вам просматривать аргументы функций, если только вы не используете varargs
с variadic
функциями. perl
разрешает это, рассматривая аргументы как массив. verilog
не не имеет какую-либо языковую функцию для этого.
Однако Verilog определяет набор pli
функций для взаимодействия с c
. Интерфейс vpi
имеет функции, позволяющие просматривать аргументы задачи и функции (в «c»).