Чтение строки переменной длины в файле с помощью SystemVerilog

Предположим, у меня есть строка переменной длины, как показано ниже:

Write <Address> <Data0> <Data1> <Data2>
Read <Address>
Write <Address> <Data0>
Write <Address> <Data0> <Data1> <Data2> <Data3>

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

integer file    = $fopen(file_name,"r");
code = $fgets(line, file);
code = $sscanf(line, "%s %h %h %h", txn_type, Address, Data[i]);

1 ответ

Ты можешь использовать $sscanf когда количество полей не фиксировано, если вы указали максимально возможное количество полей. Возвращаемое значение помещается в code указывает фактическое количество проверенных аргументов. Так что просто создайте фиктивный список аргументов и скопируйте те, что указаны в строке

Другие вопросы по тегам