Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: массив констат
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
sergey sva
Нужно сохранить несколько десятков параметров в массиве, что бы доступ был по индексу. Как обычно эту задачу решают в плис (cyclone 1)?
des00
Цитата(sergey sva @ Oct 13 2014, 01:24) *
Как обычно эту задачу решают в плис (cyclone 1)?

используют RAM
sergey sva
Для нее нужно будет сделать модуль работы, в начале загрузить в нее данные из файла. (название команды забыл memreadh) правильно? Это рам память мне нужно константы хранить вдруг они там попортятся, какие еще есть варианты?, видел вариант с массив parameter..

Если не затруднит бросьте ссылку на пример как правильно сделать. Поиск по словам array cost verilog ничего подходящего не вижу.
krux
у Cyclone-ов конфигурационный bitstream тоже в RAM находится =) и как часто у вас портится конфигурация загруженной плисины? =)

реализация при помощи case() на синтезе сделает вам громадный мультиплексор, который соберется на невменяемо низкой частоте.
лучший вариант для плисины - это RAM.
vadimuzzz
Цитата(sergey sva @ Oct 13 2014, 01:54) *
Если не затруднит бросьте ссылку на пример как правильно сделать. Поиск по словам array cost verilog ничего подходящего не вижу.

http://www.altera.com/literature/hb/qts/qts_qii51007.pdf

начиная с 8-й страницы
SM
Цитата(krux @ Oct 13 2014, 00:11) *
реализация при помощи case() на синтезе сделает вам громадный мультиплексор, который соберется на невменяемо низкой частоте.

да-да... Именно! wink.gif http://www.altera.com/literature/hb/qts/qts_qii51007.pdf Example 12-31, 12-32 на стр. 28 (12-28)
krux
SM
я имел в виду
Код
always @(*)
   case ()

это раз.
во-вторых, там слишком много всяких "если" для того чтобы это дело из примера всегда гарантированно infer-илось.
при этом явных указаний например на то какая должна быть минимальная разрядность шины адреса, шины данных, допустимо ли использовать default: - нету.
считаю что надежнее заложить RAM явно
SM
Цитата(krux @ Oct 13 2014, 13:56) *
во-вторых, там слишком много всяких "если" для того чтобы это дело всегда гарантированно infer-илось.
при этом явных указаний например на то какая должна быть минимальная разрядность шины адреса, шины данных, допустимо ли использовать default: - нету.
считаю что надежнее сделать RAM руками


Вообще, там всего два "если":
1) требуется, чтобы подходящий блок памяти был в наличии (поэтому, например, always @* синтезируется в ROM на ACEX1K, но в мультиплексор или логику - в Cyclone, а в Arria - может в distributed RAM разместить)
2) требуется, чтобы реализация на блоке памяти была в реальной жизни эффективнее, чем на логике.

Других "если" там никаких нет, минимальную разрядность просчитает синтезатор, если эффективность от применения блока памяти есть, будет блок, если нет, будет логика. default на Ваше хотение, синтезатору от него ни холодно, ни горячо.

а вот насчет "надежности", тут в принципе согласен, только не в этом разрезе. Если есть вероятность использовать этот код потом не для ПЛИС, а для синтеза ASIC - то вот в этом случае надо вынести на блок.
sergey sva
Понятно, да что то я написал не подумал, за 3г работы устройств с плис не было замечено случаев с порчей конфигурации в процессе работы плис, но это на нескольких устройствах. А если несколько тысяч наверняка такие случаи будут ? Спасибо за инфу, сейчас посмотрю ссылки, мне не попадались эти доки когда искал.(
SM
Цитата(sergey sva @ Oct 13 2014, 14:10) *
А если несколько тысяч наверняка такие случаи будут ?

Ну если там радиация, или еще какие-то неприятные условия, то может быть, один раз в миллион лет сбойнет.... Вот как-то так. Докучи, есть механизмы контроля целостности конфиг. ОЗУ - http://www.altera.com/literature/an/an357.pdf
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.