Jump to content

    

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


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

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

Share this post


Link to post
Share on other sites
сгенерировать средствами tcl случайный seed

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this