Jump to content

    

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

Если Гауссовскость не нужна - можно испльзовать просто LFSR, у Xilinx на тему есть XAPP. Если сильно прижмет - могу куда-нибудь выложить тексты.
Будьте добры, выложите, пожалуйста, имеющуюся у Вас информацию об этом на местный ФТП или на почту paul_paul (gav-gav) ngs (tochka) ru

Share this post


Link to post
Share on other sites
Рекомендую следующий ресурс:

 

http://web.univ-ubs.fr/lester/~boutillon/wgng/wgng.html

 

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

 

Если Гауссовскость не нужна - можно испльзовать просто LFSR, у Xilinx на тему есть XAPP.

 

Если сильно прижмет - могу куда-нибудь выложить тексты.

 

Доступа на фтп у меня нет. Не могли бы вы прислать тексты на ящик alfinyu(собака)мэйл.ру

Заранее спасибо :)

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites
Исходные тексты всем выслал. При необходимости - пишите в личку.

 

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

 

Спасибо автору и спасибо Вам,что выслали очень интересный пример. :a14:

Share this post


Link to post
Share on other sites
Исходные тексты всем выслал. При необходимости - пишите в личку.
Посмотрел. Как-то чересчур сложно мне показалось. Вот такой у меня генератор ПСП в графике получился (см. прикрепление)

generator_psp.bmp

Share this post


Link to post
Share on other sites
Исходные тексты всем выслал. При необходимости - пишите в личку.
Посмотрел. Как-то чересчур сложно мне показалось. Вот такой у меня генератор ПСП в графике получился (см. прикрепление)

 

А Вы уверены что получите нужное распределение своим генератором :) ? Автор упомянутых исходников получает гауссовское распределение.

Share this post


Link to post
Share on other sites
А Вы уверены что получите нужное распределение своим генератором :) ? Автор упомянутых исходников получает гауссовское распределение.
Ясно, я не вникал особо.

Подумал, что речь об этом идёт:

Если Гауссовскость не нужна - можно испльзовать просто LFSR, у Xilinx на тему есть XAPP. Если сильно прижмет - могу куда-нибудь выложить тексты.
Т.е. думал, что там пример про LFSR. У меня тоже на LFSR, гауссовости нет, зато есть простота реализации :)))

Share this post


Link to post
Share on other sites

Если кому надо. Случайно наткнулся на реализацию Mersenne Twister (Вихря Менсона) на VHDL. Проверил она сентезиться в XST 9.2

http://www.ht-lab.com/freecores/mt32/mersenne.html

 

Говорит что работает на 336МГц на Virtex4-SX35

Share this post


Link to post
Share on other sites

Пример простого генератора псевдослучайных чисел с кратким объяснением работы смотри вложения :)

Share this post


Link to post
Share on other sites
Пример с кратким объяснением работы смотри вложения

 

Ээ это не совсем так, генератор ПСП это конечно хорошо, но длинна псевдослучайной последовательности 2^19937-1 это значительно кручем чем обычное ПСП

см. http://www.math.sci.hiroshima-u.ac.jp/~m-m...ARTICLES/mt.pdf

Share this post


Link to post
Share on other sites

Вопрос немного не в тему....

Как сделать на FPGA самому генератор случайной последовательности, т.е. не псевдо, а полностью.

Чтоб к FPGA подключать мелкий микроконтроллер с кодовыми ключами, а все вместе использовать для интеллектуальной защиты IP.

Конечно есть готовые решения с ИМС, но хотелось бы что-то свое…

Edited by 608

Share this post


Link to post
Share on other sites
Вопрос немного не в тему....

Как сделать на FPGA самому генератор случайной последовательности, т.е. не псевдо, а полностью.

Чтоб к FPGA подключать мелкий микроконтроллер с кодовыми ключами, а все вместе использовать для интеллектуальной защиты IP.

Конечно есть готовые решения с ИМС, но хотелось бы что-то свое…

См. http://electronix.ru/forum/index.php?s=&am...st&p=120223

Share this post


Link to post
Share on other sites
Вопрос немного не в тему....

Как сделать на FPGA самому генератор случайной последовательности, т.е. не псевдо, а полностью.

Чтоб к FPGA подключать мелкий микроконтроллер с кодовыми ключами, а все вместе использовать для интеллектуальной защиты IP.

Конечно есть готовые решения с ИМС, но хотелось бы что-то свое…

если попроще, так пара ринг осцилляторов разной длинны, выходы семплирутся, ксорятся и на выходе что-то подобное к рандому

можно также семплить один быстрый ринг осциллятор другим медленным

материалов полно, пригодных в той или иной мере к реализации на ФПГА. например Goliс "High-Speed True Random Number Generation with Logic Gates Only" с CHES 2007

а если что-то серьезнее, то ..... все над этм работаю, в т.ч. Интел, ВИА и т.д. ;)

успехов :)

Share this post


Link to post
Share on other sites
если попроще, так пара ринг осцилляторов разной длинны, выходы семплирутся, ксорятся и на выходе что-то подобное к рандому

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

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

 

можно также семплить один быстрый ринг осциллятор другим медленным

материалов полно, пригодных в той или иной мере к реализации на ФПГА. например Goliс "High-Speed True Random Number Generation with Logic Gates Only" с CHES 2007

а если что-то серьезнее, то ..... все над этм работаю, в т.ч. Интел, ВИА и т.д. ;)

успехов :)

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

 

По поводу защиты IP у меня был такой вариант: Требуется маловыводной микроконтроллер типа tinyAVR или PIC c жесткими ключами в рабочей программе и перепрограммируемой EEPROM. EEPROM здесь нужна для хранения псевдослучайных кодов, которые вычисляются в микроконтроллере с определенным псевдослучайным темпом или с плавающим периодом, например от 10с до 60с. После снятия питания, в EEPROM хранится этот определенный код который и будет считан сразу после рестарта в FPGA. Далее FPGA модифицирует этот код и передает результат в микроконтроллер, который тоже модифицирует его и возвращает окончательный результат в FPGA. Если FPGA не найдет ожидаемый код она подвисает. Пересылаемые псевдослучайные коды могут также шифроваться. А интерфейс между микроконтроллером и FPGA может быть SPI или I2C.

Модераторов просьбы извинить за отход от темы... Уж очень эти вопросы связаны...

Edited by 608

Share this post


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

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

Еще раз: смотри http://electronix.ru/forum/index.php?s=&am...st&p=120223 - там рассматривается именно этот вариант

 

Генератор ПОЛНОСТЬЮ случайный (не псевдо!)

 

По поводу защиты IP у меня был такой вариант:
Тогда смотри вышеупомянутую тему с самого начала - это оно и есть :1111493779:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this