Случайные действительные числа с равномерным распределением в verilog - PullRequest
0 голосов
/ 01 июля 2018

Есть ли функция для генерации случайных действительных чисел в диапазоне [0,1] с равномерным распределением в verilog. Я пробовал $random%2, но он генерирует только целые значения {-1,0,1}. В VHDL есть функция uniform(), есть ли аналогичная функция в verilog?

1 Ответ

0 голосов
/ 01 июля 2018

Не совсем.

Функция $ random возвращает случайное 32-разрядное целое число. С помощью некоторой простой математики вы можете преобразовать это в реальное число и отобразить его в диапазоне -1..1. (Оператор по модулю не является правильным способом сделать это) Но у вас не будет «бесконечных» случайных чисел в этом диапазоне, поскольку есть только 2 ^ 32 различных числа, которые может вернуть $ random.

Я не уверен, но я не думаю, что есть какой-либо язык программирования, который поддерживает бесконечно плавающие случайные числа от -1 до 1. Насколько я знаю, все они используют псевдослучайный генератор, который генерирует целое число. нужно манипулировать им, чтобы получить кривую случайной вероятности, которую вы хотите.

...