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

 
 
> Как уменьшить объем проекта?, по количеству логических ячеек
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 30 2010, 09:52
Сообщение #2


Участник
*

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



Всё, проблемы решены.
Нашел и протестировал BIN-2-BCD на 16 разрядов Binary. Занимает примерно 300 Logic cells работает просто замечательно, намного удобнее в использовании чем на счетчиках. На весь проект ушло 1200 cells

BIN-2-BCD - AHDL:
*****************************************
SUBDESIGN bin2dec
( DATA[15..0] : INPUT;
DIG5[3..0],DIG4[3..0],DIG3[3..0],DIG2[3..0],DIG1[3..0] : OUTPUT;
)
VARIABLE
DATA_A[15..0],DATA_B[15..0],DATA_C[15..0],DATA_D[15..0] : NODE;
BEGIN
IF DATA[]>=60000 THEN DIG5[]=6; DATA_A[]=DATA[]-60000;
ELSIF DATA[]>=50000 THEN DIG5[]=5; DATA_A[]=DATA[]-50000;
ELSIF DATA[]>=40000 THEN DIG5[]=4; DATA_A[]=DATA[]-40000;
ELSIF DATA[]>=30000 THEN DIG5[]=3; DATA_A[]=DATA[]-30000;
ELSIF DATA[]>=20000 THEN DIG5[]=2; DATA_A[]=DATA[]-20000;
ELSIF DATA[]>=10000 THEN DIG5[]=1; DATA_A[]=DATA[]-10000;
ELSE DIG5[]=0; DATA_A[]=DATA[];
END IF;

IF DATA_A[]>=9000 THEN DIG4[]=9; DATA_B[]=DATA_A[]-9000;
ELSIF DATA_A[]>=8000 THEN DIG4[]=8; DATA_B[]=DATA_A[]-8000;
ELSIF DATA_A[]>=7000 THEN DIG4[]=7; DATA_B[]=DATA_A[]-7000;
ELSIF DATA_A[]>=6000 THEN DIG4[]=6; DATA_B[]=DATA_A[]-6000;
ELSIF DATA_A[]>=5000 THEN DIG4[]=5; DATA_B[]=DATA_A[]-5000;
ELSIF DATA_A[]>=4000 THEN DIG4[]=4; DATA_B[]=DATA_A[]-4000;
ELSIF DATA_A[]>=3000 THEN DIG4[]=3; DATA_B[]=DATA_A[]-3000;
ELSIF DATA_A[]>=2000 THEN DIG4[]=2; DATA_B[]=DATA_A[]-2000;
ELSIF DATA_A[]>=1000 THEN DIG4[]=1; DATA_B[]=DATA_A[]-1000;
ELSE DIG4[]=0; DATA_B[]=DATA_A[];
END IF;

IF DATA_B[]>=900 THEN DIG3[]=9; DATA_C[]=DATA_B[]-900;
ELSIF DATA_B[]>=800 THEN DIG3[]=8; DATA_C[]=DATA_B[]-800;
ELSIF DATA_B[]>=700 THEN DIG3[]=7; DATA_C[]=DATA_B[]-700;
ELSIF DATA_B[]>=600 THEN DIG3[]=6; DATA_C[]=DATA_B[]-600;
ELSIF DATA_B[]>=500 THEN DIG3[]=5; DATA_C[]=DATA_B[]-500;
ELSIF DATA_B[]>=400 THEN DIG3[]=4; DATA_C[]=DATA_B[]-400;
ELSIF DATA_B[]>=300 THEN DIG3[]=3; DATA_C[]=DATA_B[]-300;
ELSIF DATA_B[]>=200 THEN DIG3[]=2; DATA_C[]=DATA_B[]-200;
ELSIF DATA_B[]>=100 THEN DIG3[]=1; DATA_C[]=DATA_B[]-100;
ELSE DIG3[]=0; DATA_C[]=DATA_B[];
END IF;

IF DATA_C[]>90 THEN DIG2[]=9; DATA_D[]=DATA_C[]-90;
ELSIF DATA_C[]>80 THEN DIG2[]=8; DATA_D[]=DATA_C[]-80;
ELSIF DATA_C[]>70 THEN DIG2[]=7; DATA_D[]=DATA_C[]-70;
ELSIF DATA_C[]>60 THEN DIG2[]=6; DATA_D[]=DATA_C[]-60;
ELSIF DATA_C[]>50 THEN DIG2[]=5; DATA_D[]=DATA_C[]-50;
ELSIF DATA_C[]>40 THEN DIG2[]=4; DATA_D[]=DATA_C[]-40;
ELSIF DATA_C[]>30 THEN DIG2[]=3; DATA_D[]=DATA_C[]-30;
ELSIF DATA_C[]>20 THEN DIG2[]=2; DATA_D[]=DATA_C[]-20;
ELSIF DATA_C[]>10 THEN DIG2[]=1; DATA_D[]=DATA_C[]-10;
ELSE DIG2[]=0; DATA_D[]=DATA_C[];
END IF;
DIG1[]=DATA_D[3..0];
END;
***************************************
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   Задержался с просмотром страницы... Сегодня на раб...   Jul 29 2010, 20:06
|- - sazh   Цитата(Docent86 @ Jul 29 2010, 23:06) Тут...   Jul 29 2010, 20:17
||- - 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   Еще нашел HEX-BIN signal hidigit:std_logic_vector...   Jul 30 2010, 09:52


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

 


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


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