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

Генератор случайных чисел на VHDL

ring и генератор случайных чисел на нем описаны в

1. Altera Advanced Synthesis Cookbook: A Design Guide for Stratix II and Stratix III Devices:

http://www.altera.com/literature/manual/stx_cookbook.pdf

http://www.altera.com/literature/manual/cookbook.zip

глава 13

 

2. http://warmcat.com/_wp/2007/11/12/ring-osc...ng-performance/ и далее по блогу

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


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

to Gate

Большое спасибо за cookbook!! Это книга откровений от Альтеры, давно искал такую.

Может еще есть что-то подобное и от других ПЛИС-фирм?

За разъяснения по ring-генератору тоже спасибо.

Изменено пользователем 608

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


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

Уточните, плз, слова: ринг осциллятор,.. семплируются,... ксорятся... Что это такое и как это все вместе работает? Какие частоты предпочтительней, хотябы приблизительно?

На сколько они приблизят псевдо-генератор к случайному? Что останется еще не случайным?

 

Тоже много специфики, не все понятно.. Есть ли ссылки на статьи и фирмы?

1. обычно RNG не делают на плисах. причин - много, в т.ч. сомнительное пратическое применение

2. проще сделать (если уж плис) генератор используя ринг осциляторы (Ring Oscillator - не четное количество инвертором замкнутых в цикл)/ тут http://rapidshare.com/files/110208435/rnd_fpga_doc.ZIP.html закинул литературу о реализации на плисах; если прохой аутпут (лучше тестить AIS31), используй постпроцесинг (Von Neimann), если тебя не волнует сертификация твоего-же генератора (AIS31); если попроще тестить, то рекомендую полный FIPS140/2 и spectrum test с пакета NIST STS

3. чтобы получить нормальный генератор случайных чисел, надо его делать в asic, поскольку в плис уж очень много шумов и т.д., которые так или иначе влияют на выход генератора, сложность разработки ы т.д..., но это тебе вроде не надо

успехов

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


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

Исходные тексты всем выслал. При необходимости - пишите в личку.

 

Из основных ограничений (для меня) сразу отмечу формирование одного выходного отсчета на четыре тактовых импульса - возможна доработка с ростом ресурсов ПЛИС, но для данной задачи это вполне приемлемо. В любом случае - спасибо автору за бесплатный пример, что встречается далеко не часто.

 

Здравствуйте, kiss!

 

Был бы очень Вам признателен, если вы пришлете мне VHDL описание такого генератора, если конечно у Вас есть ещё такая возможность. Я проектирую декодер сверточного турбокода, вышел на стадию тестирования и теперь вот возникла необходимость моделирования канала АБГШ, т.е. впринципе, мне даже не нужна синтезируемая реализация, хочу попробовать использовать такой генератор в тест-бенче для моделирования искажения передаваемого сигнала.

 

Заранее Вам благодарен!

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


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

Пришлите, ПОЖАЛУЙСТА книжку(или ссылку), если у кого есть! :

 

Иванов М.А., Чугунков И.В. Теория, применение и оценка качества генераторов псевдослучайных последователь-ностей. – М.: КУДИЦ-ОБРАЗ, 2003. – 240 с.

 

не могу никак в эл.виде найти!(только 3-ю главу нашла),,через BooksClient не скачивается((

а если заказывать, то ждать долго..

 

Буду оч признательна за любую инфу по ГПСЧ))): [email protected]

 

мне это все для курсовика по генераторам псевдослучайных чисел..))

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


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

Подскажите, есть ли в VHDL функция (RAND ?) псевдослучайной выдачи в сигнал либо лог'0' либо лог'1'? Нужно для красивого тестбенча, синтезируемость не нужна.

 

Помогите разобраться с примером, приводимым тут http://www.velocityreviews.com/forums/t224...-generator.html

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.math_real.all;

entity psuedo_random_number is
port(
ld : in std_logic;
clk : in std_logic;
result : out std_logic_vector(7 downto 0)
);
end entity psuedo_random_number;

architecture psuedo_random_number of psuedo_random_number is


begin

process(clk, ld)
variable s1 : positive := 234; -- Set to some seed value
variable s2 : positive := 567; -- Set to some seed value
variable randNum : real; -- Where the random number will be set
variable slv : std_logic_vector(7 downto 0);
begin
uniform(s1, s2, randNum); -- Sets randNum to a value between 0.0 and under 1.0

randNum := randNum * 10.0; -- randNum has a value between 0.0 and under 10
randNum := floor(randNum) + 3.0; -- randnum has a value between 3.0 and 12.0 (without fraction)
slv := std_logic_vector(to_unsigned(integer(randNum), 8)); -- Convert to std_logic_vector

if clk'event and clk = '1' and ld = '0' then
result <= slv;
end if;
-- All in one line
--slv := std_logic_vector(to_unsigned(integer(floor(randnum * 256.0)), 8)); -- random data
end process;

end architecture psuedo_random_number;

 

 

 

 

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


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

Подскажите, есть ли в VHDL функция (RAND ?) псевдослучайной выдачи в сигнал либо лог'0' либо лог'1'? Нужно для красивого тестбенча, синтезируемость не нужна.

В чем конкретно вопрос? Что именно не понятно? Приведенное описание работает?

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


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

есть ли в VHDL функция (RAND ?) псевдослучайной выдачи

..
use ieee.math_real.all;
..
uniform(s1, s2, randNum); -- Sets randNum to a value between 0.0 and under 1.0
...

для тестбенча самое оно :laughing:

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


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

для равномерного распределения мы использовали и тестировали вот этот генератор с некоторыми модификациями:

http://opencores.org/project,systemc_rng

 

При тестировании с помощью diehard test battery генератор не прошел 1 тест (Random spheres test или Parking lot test, история не сохранила), что, в общем, не плохо для довольно гуманного по ресурсам генератора.

 

Что касается заданного закона распределения - генератор с таким распределением получается путем нелинейных преобразований последовательности с равномерным законом. В книге "Гнеденко Б. В. - Курс теории вероятностей." это хорошо описано.

 

Успехов

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


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

Народ, нужна программа на VHDL, описывающая работу генератора псевдослучайных чисел, если у кого есть. скиньте пожалуйста на [email protected] Очень нужно!

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


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

Здраствуйте, не подскажете где можно найти код или структурную схему (желательно с описанием) генераторо шума с гауссовским распределением.

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


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

Это же надо было так слово исковеркать!

 

Надо открыть тему технический язык, для обсуждения подобного рода проблем, а то народ уже совсем говорить разучился. :a14:

Меня тоже допекло из статей, присланных на рецензию подобные "продвинутые решения" вырезать...

Так что у меня теперь на сайте выложен "толковый словарь офисно-спекулянтской фени"... А еще в этом же стиле - "Новые решения в обвязке продуктовых линеек"...

Беда только в том, что люди не понимают, когда им об этом говоришь. Ну, так же, как и в этом случае...

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


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

Здраствуйте, не подскажете где можно найти код или структурную схему (желательно с описанием) генераторо шума с гауссовским распределением.

Предельная теорема (есть такая) утверждает, что если складывать сами с собой случайные числа с произвольным распределением(с некоторой дисперсией), то в конце концов... получится само собой то, о чем Вы спрашиваете.

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


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

 

Eсть еще Web-тулз Scrambler, который генерит vhdl код согласно установленным параметрам (полином, ширина данных последовательности):

 

http://outputlogic.com/?page_id=205

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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