|
Как уменьшить объем проекта?, по количеству логических ячеек |
|
|
|
 |
Ответов
|
Jul 30 2010, 09:52
|

Участник

Группа: Участник
Сообщений: 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; ***************************************
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|