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

Зачем нужны структуры в SV?

В языках Си и SystemVerilog есть такой удобный элемент языка, как структуры. Он позволяет объединять переменные (и другие структуры) в иерархию, а в дальнейшем абстрагироваться от внутреннего устройства структуры. Благодаря абстрагированию возможно эффективно разделять большую задачу на малые и решать их по отдельности. В Си переменную структурного типа можно передавать в качестве аргумента, возвращать в качестве значения, создавать массив и т.д. Таким образом механизм структур удается активно задействовать в коде.

Правильно ли я понимаю, что раз в структуре SV невозможно указать input/output/inout, то структуры не предназначены для передачи связей между модулями (а следовательно, если имеется иерархия модулей, то в каждой ветви иерархии порты нижнего модуля в тупую копипастятся через всю иерархию до верхнего модуля, логически объединяясь разве что префиксами в именах)?

Если оно так, то зачем нужны структуры в SV? И используете ли вы их в своих проектах?

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


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

Прочитайте стандарт, потом вот это SystemVerilog for Design Second Edition: A Guide to Using SystemVerilog for Hardware Design and Modeling (Stuart Sutherland, Simon Davidmann, Peter Flake, P. Moorby) и ответы на ваши вопросы найдутся сами собой.

А то ощущение складывается что в "Свои" набиваетесь

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


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

Представим что есть вход

...
input [ 31:0 ] data_i;
...

И что идейно он "как-то" парсится.

Выделять из вектора нужные биты можно, но не интуитивно.

поэтому можно просто сделать тайпдеф

typedef struct packed {
	logic [7:0] a;
	logic [7:0] b;
	logic [7:0] c;
	logic [7:0] d;
} data;

приводить вход к типу и работать со структурой а не с битами.

 

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


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

Quote

Прочитайте ... A Guide to Using SystemVerilog


Спасибо за совет. Прочитал. Interface это - то, что надо :)

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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