реклама на сайте
подробности

 
 
> массив констат
sergey sva
сообщение Oct 12 2014, 17:24
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Нужно сохранить несколько десятков параметров в массиве, что бы доступ был по индексу. Как обычно эту задачу решают в плис (cyclone 1)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
des00
сообщение Oct 12 2014, 17:50
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(sergey sva @ Oct 13 2014, 01:24) *
Как обычно эту задачу решают в плис (cyclone 1)?

используют RAM


--------------------
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Oct 12 2014, 18:54
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



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

Если не затруднит бросьте ссылку на пример как правильно сделать. Поиск по словам array cost verilog ничего подходящего не вижу.
Go to the top of the page
 
+Quote Post
krux
сообщение Oct 12 2014, 20:11
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



у Cyclone-ов конфигурационный bitstream тоже в RAM находится =) и как часто у вас портится конфигурация загруженной плисины? =)

реализация при помощи case() на синтезе сделает вам громадный мультиплексор, который соберется на невменяемо низкой частоте.
лучший вариант для плисины - это RAM.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Oct 12 2014, 23:38
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



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

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

начиная с 8-й страницы
Go to the top of the page
 
+Quote Post
SM
сообщение Oct 13 2014, 05:14
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(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)
Go to the top of the page
 
+Quote Post
krux
сообщение Oct 13 2014, 09:56
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



SM
я имел в виду
Код
always @(*)
   case ()

это раз.
во-вторых, там слишком много всяких "если" для того чтобы это дело из примера всегда гарантированно infer-илось.
при этом явных указаний например на то какая должна быть минимальная разрядность шины адреса, шины данных, допустимо ли использовать default: - нету.
считаю что надежнее заложить RAM явно


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
SM
сообщение Oct 13 2014, 10:02
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



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


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

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

а вот насчет "надежности", тут в принципе согласен, только не в этом разрезе. Если есть вероятность использовать этот код потом не для ПЛИС, а для синтеза ASIC - то вот в этом случае надо вынести на блок.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Oct 13 2014, 10:10
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Понятно, да что то я написал не подумал, за 3г работы устройств с плис не было замечено случаев с порчей конфигурации в процессе работы плис, но это на нескольких устройствах. А если несколько тысяч наверняка такие случаи будут ? Спасибо за инфу, сейчас посмотрю ссылки, мне не попадались эти доки когда искал.(
Go to the top of the page
 
+Quote Post
SM
сообщение Oct 13 2014, 10:25
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(sergey sva @ Oct 13 2014, 14:10) *
А если несколько тысяч наверняка такие случаи будут ?

Ну если там радиация, или еще какие-то неприятные условия, то может быть, один раз в миллион лет сбойнет.... Вот как-то так. Докучи, есть механизмы контроля целостности конфиг. ОЗУ - http://www.altera.com/literature/an/an357.pdf
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 23:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01462 секунд с 7
ELECTRONIX ©2004-2016