Строки

В Verilog, строковые литералы упакованы массивов, ширина которого кратна 8 битам. В масиве этом хранятся ASCII коды. Если в Verilog возникает ситуация, когда строка больше, чем отведенная для нее строковая переменная, строка усекается слева и крайние левые символы теряются. SystemVerilog добавляет новое ключевое слово “string”, которое используется для объявления строкового типа данных. Строка типа string может быть произвольной длины и не усекается.

  1. string ProjName = "SUPER-PUPER PCI CONTROLLER";

Методы для работы со строками

SystemVerilog включает набор методов для работы со строками

  1. str.len() – возвращает длину строки (количество символов в строке)
  2. str.putc(i, c) – заменяет i-й элемент строки на c
  3. str.getc(i) – возвращает ASCII код i-го символа строки str
  4. str.toupper() – возвращает строку с символами в верхнем регистре (вся строка большими буквами)
  5. str.tolower() – возвращает строку с символами в нижнем регистре (вся строка маленькими буквами)
  6. str.compare(s) – сравнивает строку str со строкой s и возвращает результат. Эта функция чувствительна к регистру.
  7. str.icompare(s) – сравнивает строку str со строкой s и возвращает результат. Эта функция НЕчувствительна к регистру.
  8. str.substr(i, j) – возвращает новую строку, которая содержит с i-го по j-й символ строки str
  9. str.atoi() – конвертирует строку str в числовой вид (из ASCII в целое число)
  10. str.atoreal() – конвертирует строку str в числовой вид (из ASCII в вещественное число)
  11. str.itoa(i) – конвертирует десятичный ASCII код в строку str (функция обратная atoi)
  12. str.hextoa(i) – конвертирует шестнадцатиричный ASCII код в строку str (функция обратная atohex)
  13. str.bintoa(i) – конвертирует двоичный ASCII код в строку str (функция обратная atobin)
  14. str.realtoa(r) – конвертирует вещественный ASCII код в строку str (функция обратная atoreal)

Share this post