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

Verilog $random

Доброй всем пятницы! Пытаюсь освоить $random для Verilog в среде xilinx ISE 14 с целью симуляции случайной начальной задержки в определенном диапазоне. Только проблема в том, что начальная задержка не совсем случайная получается, а скажем, строго фиксированная из заданного мной диапазона при каждом перезапуске симуляции, если не менять аргументов функции $random. Это очередная особенность Verilog или среды ISE, или я чего-то не так делаю?

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


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

random генерирует псевдослучайные значения в соответствии с алгоритмом генерации псевдослучаных значений, впервые определенном ЕМНИП в стандарте IEEE 1364-2001. Аргументом является начальное значение генератора псевдослучаных чисел (seed). Для одинакового seed последолвательность псевдослучайных значений между запусками моделирования не изменяется.

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


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

Спасибо за ответ, я похоже не так сформировал вопрос. Если не брать чтение из файла, сформировать случайный seed для функции random можно стандартными средствами Verilog?

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


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

Рандом должен быть повторяемым, иначе вы поймав ошибку не сможете ее воспроизвести. Так что выносите сид в параметры и меняйте их от запуска к запуску. Можно попробовать как то текущее время подтянуть как сиид, или время компиляции исходников...

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


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

Спасибо за ответ, я похоже не так сформировал вопрос. Если не брать чтение из файла, сформировать случайный seed для функции random можно стандартными средствами Verilog?

автоматизированно проще всего это сделать средствами tcl-скрипта: в random передать в качестве аргумента параметр или макроопределение, значение которого передается в команде запуска моделирования, сгенерировать средствами tcl случайный seed и передать его в команду запуска моделирования, при этом не забыть сохранить значение seed, чтобы в случае ошибки воспроизвести random-последовательность

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


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

сгенерировать средствами tcl случайный seed

 

В качестве такого seed можно взять текущий момент запуска теста , преобразованный в необходимый формат .

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


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

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

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

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

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

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

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

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

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

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