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

System verilog tasks и ООП

Здравствуйте ! Подскажите пожалуйста литературу по system verilog. Пишу на verilog, знаю основы ООП , но не могу увязать принципы system verilog, смотря на чужой код. Например не понятно как запускать задачи где описывать их приоритет?. Мне по сути необходимо немного подкорректировать чужой код.

Поэтому прошу подсказать подходящую литературу.

Спасибо!

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


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

Приветствую!

 

Вам это для симуляции нужно или для синтеза?  И что вы имеете ввиду под "запускать задачи"? 

 

Удачи! Rob.

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


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

7 hours ago, another_one said:

не понятно как запускать задачи где описывать их приоритет?

Присоединюсь, что значит описывать приоритет?

Код на HDL исполняется параллельно. Код "исполняется" событийно, т.е. после выражения always или же assign (присвоение). То что находится внутри блока имеет очерёдность, то фактически это комбинация if-else которая имеет единственное значение в данный момент времени. Все блоки работают одновременно, независимо от их расположения в коде.

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


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

9 hours ago, another_one said:

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

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

Если же симуляция, то нужно понимать это базовая симуляция или специфическое UVM, OVM, UMM и т.д.

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


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

13 hours ago, another_one said:

Здравствуйте ! Подскажите пожалуйста литературу по system verilog. Пишу на verilog, знаю основы ООП , но не могу увязать принципы system verilog, смотря на чужой код. Например не понятно как запускать задачи где описывать их приоритет?. Мне по сути необходимо немного подкорректировать чужой код.

Поэтому прошу подсказать подходящую литературу.

Спасибо!

Попробую в вангу и порекомендую очень хорошую книжку по SV в области верификации:

SystemVerilog for Verification: A Guide to Learning the Testbench Language Features, Chris Spear

Все основные несинтезируемы конструкции описаны приятно, просто, с объяснениями. Плюс масса примеров: как надо делать и как не надо делать.

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


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

On 7/17/2020 at 10:07 PM, RobFPGA said:

Приветствую!

 

Вам это для симуляции нужно или для синтеза?  И что вы имеете ввиду под "запускать задачи"? 

 

Удачи! Rob.

прошу прощения, забыл упомянуть, - для верификации

On 7/17/2020 at 10:07 PM, RobFPGA said:

Приветствую!

 

Вам это для симуляции нужно или для синтеза?  И что вы имеете ввиду под "запускать задачи"? 

 

Удачи! Rob.

под под "запускать задачи" - fork join task

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


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

Приветствую!

1 hour ago, another_one said:

под под "запускать задачи" - fork join task

Ну вот сами и ответили наполовину вопроса "как запускать  задачи".  Про вторую  половину выше уже говорили - приоритетов  выполнения задач нет. Задачи в evend-drive симуляции выполняются с "равным" приоритетом, виртуально параллельно. Вы можете лишь  управлять последовательностью запуска/останова, а также  приостанавливать выполнения при ожидании определенный событий. 

Удачи! Rob.

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


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

Грубо говоря, вы можете в любом месте вставить свою функцию, и она начнёт работу с нулевого времени. Событием для выполнения может быть как время, так и любое изменение сигнала. 

В коде нет main, указан только верхний уровень иерархии, а все остальное исполняется в параллели, все вместе, одновременно. 

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


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

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

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

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

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

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

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

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

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

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