Работа со строками в Verilog

Мне нужно выполнять основные операции со строками, такие как конкатенация, замена и сравнение в моей симуляции Verilog. Как это возможно? Есть ли встроенная поддержка?

Заранее спасибо.


person sjtaheri    schedule 12.09.2012    source источник


Ответы (3)


Если у вас есть доступ к современному симулятору, который поддерживает синтаксис SystemVerilog, существует тип данных string. Строки можно объединять и сравнивать. См. стандарт IEEE (1800-2009).

person toolic    schedule 12.09.2012

В Verilog нет строкового типа данных, однако Verilog поддерживает строковые литералы и использует их как байтовые векторы. Это пример из спецификации:

module string_test;
reg [8*14:1] stringvar;
initial begin
  stringvar = "Hello world";
  $display ("%s is stored as %h", stringvar,stringvar);
  stringvar = {stringvar,"!!!"};
  $display ("%s is stored as %h", stringvar,stringvar);
  end
endmodule

Поскольку строки используют тип данных reg, вы можете использовать обычные операторы для управления ими, помня, что каждый символ использует 8 бит.

5.2.3.1 Операции со строками

Стандартные операции копирования, объединения и сравнения строк поддерживаются операторами Verilog HDL. Копия предоставляется простым присвоением. Конкатенация обеспечивается оператором конкатенации. Сравнение обеспечивается операторами равенства. При манипулировании строковыми значениями в векторных регистрах регистры должны быть не менее 8*n бит (где n — количество символов ASCII), чтобы сохранить 8-битный код ASCII.

Вам придется написать некоторые задачи или функции, если вам нужны такие операции, как поиск.

person Community    schedule 12.09.2012

ситахери,

Возрождение мертвой темы, но я вижу, что возникает этот вопрос, и для него есть более новое решение.

svlib — это бесплатная библиотека служебных функций с открытым исходным кодом для SystemVerilog. Он включает в себя функции манипулирования файлами и строками, полный поиск/замену регулярных выражений, простое чтение и запись файлов конфигурации, доступ к переменным среды и времени настенных часов и многое другое. Этот проект был представлен на DVCon 2014.

http://www.verilab.com/resources/svlib/

person jmcneal    schedule 10.03.2017