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

SV task outputs

Коллеги, я тут давеча посмотрел вебинар на тему Common mistakes in SystemVerilog и был удивлен настолько, что сразу побежал проверять в симулятор, вдруг я чего не понял. А как проверил - сразу сюда.

Так вот, удивление вызвал факт, что выходы задач обновляются в момент завершения всей задачи. В VHDL я частенько использую процедуры чтобы из них генерировать длительные транзакции на шинах. Дальше подключал процедуру к нужным портам. А тут мне поведали что так нельзя, а нужно (если хочется из задачи) рулить сигналами верхнего уровня, т.е. глобально в обход портов задачи.

Собственно вопрос - а как в реальной жизни-то делается, если, скажем, хочется организовать подпрограмму, которая бы могла работать с разными наборами сигналов (3 шины, скажем)?

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


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

Используйте ref вместо output.

 

О! Я знал что не может быть все так грустно. Спасибо.

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


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

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

Подтверждаю. Сам много и с удовольствием пользуюсь задачами/процедурами на Verilog/VHDL именно таким способом, в обход портов.

 

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


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

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

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

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

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

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

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

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

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

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