Чтение строки переменной длины в файле с помощью SystemVerilog - PullRequest
0 голосов
/ 08 мая 2018

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

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 Ответ

0 голосов
/ 08 мая 2018

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

...