Перейти к содержанию
    

verilog, function, array

Доброго времени суток. И простите, что не умею пользоваться поиском (либо такое нигде не встречалось).

Есть множество многомерных массивов, например

reg [A:0] array [0:B][0:C]...[0:X]

Нужно часто изменять (проводить опперации с элементами) этот массив. Пробовал реализовать опперацию обработки массива в виде функции

function abc;
input reg [A:0] mas [0:B][0:C]...[0:X];
begin
какие-то действия
вернуть 1 если удачно
end
endfunction

Но при компиляции выходит ошибка что такое можно сделать в SV(работать в нем не выход из сложившейся проблемы).

declaring module ports of function arguments with unpacked array types requires SystemVerilog

Как выйти из такой ситуации? Может каким-то образом преобразовать массив?

Изменено пользователем griha-leha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел решение проблемы, применяя define-ы. Но хотелось бы увидеть ответ в виде функций.

Изменено пользователем griha-leha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел решение проблемы, применяя define-ы. Но хотелось бы увидеть ответ в виде функций.

запаковать массив

 

что такое можно сделать в SV(работать в нем не выход из сложившейся проблемы).

а почему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

запаковать массив

 

а почему?

 

1) Как запаковать массив? 2) А почему люди до сих пор пишут на С, когда есть С++ (С#)?

Изменено пользователем griha-leha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как выйти из такой ситуации? Может каким-то образом преобразовать массив?

1. Использовать SV

2. Использовать VHDL

Если всё это не подходит, то забыть о функциях и лабать все на процессах.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Как запаковать массив? 2) А почему люди до сих пор пишут на С, когда есть С++ (С#)?

1)перенести непкованные размерности в пакованные при объявлении

2) а)не хотят развиваться; б)пишут для платформ, для которых компиляция С++ не поддержена. у вас первое или второе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слава богу, C и C++ сосуществуют параллельно. Не думаю, например, что кому-то сильно нужен C++ для PIC.

А вот Verilog свои годы доживает. Дальше будет только SystemVerilog.

Так что аналогия с C не совсем корректна.

Работать в SV, компилятор-то понимает его, верно? - самый правильный выход.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...