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

 
 
> Как уменьшить объем проекта?, по количеству логических ячеек
Docent86
сообщение Jul 28 2010, 21:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 2-03-10
Из: С.-Пб.
Пользователь №: 55 772



Создаю проект и столкнулся с такой проблемой - логических ячеек категорически нехватает, установил оптимизацию по площади - всего 1% выиграл. Есть ограничение по используемой ПЛИС - максимум cycloneIII EP3c10... Пока не повесил пины - проект занимал копейки (270), после вывода на пины объем увеличился в сотни раз (57,162). Разделение на несколько ПЛИС помогает, но тогда устройство не выгодно по себестоимости. Подскажите новичку как можно оптимизировать?
на входе в схему 72 разряда, затем разные преобразования для каждых 12 разрядов и 2 пина на выходе - последовательный код + сигнал управления.
P.S. Возможно ли это из-за использования длинных шаблонов в преобразовании и/или больших функций case
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Docent86
сообщение Jul 29 2010, 20:06
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 2-03-10
Из: С.-Пб.
Пользователь №: 55 772



Задержался с просмотром страницы... Сегодня на работе поковырял что к чему - весь ресурс "съела" математика - в частности деления и умножения на числа не кратные 2^х. Пришлось снизить точность вычислений.

Тут тогда навязывается другой вопрос - подскажете экономичный алгоритм перевода из двоичного кода в ДДК. Я делал перевод в integer затем брал остаток от делений на 10 для каждого разряда десятичного числа и каждую из десятичных цифр обратно в двоичное:

aD:= conv_integer (Average(11 downto 0));
aD:= aD/1187; -- деление подобного рода повторяется но с разными коэфициентами

aD0:=aD rem 10; aD:=(aD-aD0)/10; --а такое преобразование можно и в одну функцию записать
aD1:=aD rem 10; aD:=(aD-aD1)/10;
aD2:=aD rem 10; aD:=(aD-aD2)/10;
aD3:=aD rem 10;
...
X(0 to 3) <= conv_std_logic_vector(aD4,4);
X(4 to 7) <= conv_std_logic_vector(aD3,4);
...


C VHDL начал совсем недавно работать, до этого занимался ОПК и в основном только на Си, поэтому понял не целесообразность таких вычислений. Другого пока не придумал, но перевод крайне необходим. Можно было бы как одну функцию записать, но там коэфициенты разные.

Как это было связано с выставлением пинов понятия пока не имею - видимо при компиляции блок без разводки игнорировался

А так в целом проект уместился теперь в 4.000, но математику надо все равно поменять

Сообщение отредактировал Docent86 - Jul 29 2010, 20:00
Go to the top of the page
 
+Quote Post
sazh
сообщение Jul 29 2010, 20:17
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(Docent86 @ Jul 29 2010, 23:06) *
Тут тогда навязывается другой вопрос - подскажете экономичный алгоритм перевода из двоичного кода в ДДК.

Что такое ДДК
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Docent86   Как уменьшить объем проекта?   Jul 28 2010, 21:22
- - Kuzmi4   2 Docent86 ЦитатаПока не повесил пины - проект зан...   Jul 28 2010, 21:51
- - agate   QUOTE (Docent86 @ Jul 29 2010, 00:22) Соз...   Jul 28 2010, 22:49
- - des00   Цитата(Docent86 @ Jul 28 2010, 15:22) Пок...   Jul 29 2010, 01:12
|- - agate   QUOTE (des00 @ Jul 29 2010, 05:12) Что то...   Jul 29 2010, 10:24
|- - des00   Цитата(agate @ Jul 29 2010, 05:24) Имеетс...   Jul 29 2010, 11:51
|- - agate   QUOTE (des00 @ Jul 29 2010, 14:51) Глубин...   Jul 29 2010, 12:13
- - Gothard   Не знаю, как у Альтеры, но у Xilinx есть инструмен...   Jul 29 2010, 04:05
- - iosifk   Цитата(Docent86 @ Jul 29 2010, 01:22) Соз...   Jul 29 2010, 05:11
- - rv3dll(lex)   ну последовательная обработка это конечно хорошо, ...   Jul 29 2010, 06:15
|- - iosifk   Цитата(rv3dll(lex) @ Jul 29 2010, 10...   Jul 29 2010, 07:10
|- - rv3dll(lex)   Цитата(iosifk @ Jul 29 2010, 11:10) Да не...   Jul 29 2010, 07:22
||- - Docent86   Цитата(sazh @ Jul 29 2010, 23:17) Что так...   Jul 29 2010, 20:25
||- - sazh   Цитата(Docent86 @ Jul 29 2010, 23:25) Дво...   Jul 29 2010, 20:28
|- - des00   Цитата(Docent86 @ Jul 29 2010, 14:06) aD:...   Jul 30 2010, 00:27
|- - Maverick   Цитата(Docent86 @ Jul 29 2010, 23:06) Ц...   Jul 30 2010, 10:19
- - rv3dll(lex)   на входе ДДК а внутри бинарный?   Jul 30 2010, 04:31
|- - des00   Цитата(rv3dll(lex) @ Jul 29 2010, 23...   Jul 30 2010, 04:35
- - rv3dll(lex)   иногда проще домножить и делить потом на 2^n   Jul 30 2010, 05:04
|- - bogaev_roman   Действительно проще привести коэффициент к требуем...   Jul 30 2010, 05:23
- - Docent86   На входе бинарные 12 разрядные коды, на выходе дв....   Jul 30 2010, 06:42
|- - des00   Цитата(Docent86 @ Jul 30 2010, 00:42) На ...   Jul 30 2010, 07:42
|- - sazh   Цитата(Docent86 @ Jul 30 2010, 09:42) На ...   Jul 30 2010, 10:49
- - Docent86   RE: Как уменьшить объем проекта?   Jul 30 2010, 09:52
- - Docent86   Еще нашел HEX-BIN signal hidigit:std_logic_vector...   Jul 30 2010, 09:52


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

 


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


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