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

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


Участник
*

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



На входе бинарные 12 разрядные коды, на выходе дв.дес.числа.
Нашел другой способ перевода - через счетчики по модулю 10 с переносом - уложился в 1500 ячеек (весь проект) при этом вернул точность обратно.
Go to the top of the page
 
+Quote Post
sazh
сообщение Jul 30 2010, 10:49
Сообщение #3


Гуру
******

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



Цитата(Docent86 @ Jul 30 2010, 09:42) *
На входе бинарные 12 разрядные коды, на выходе дв.дес.числа.
Нашел другой способ перевода - через счетчики по модулю 10 с переносом - уложился в 1500 ячеек (весь проект) при этом вернул точность обратно.


Vhdl не знаю. Но сама идея - преобразование за 13 тактов
Код
library ieee;     -- U.Tietze - Ch.Schenk  page 321
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity bin_bcd is port
(
clk              : in std_logic;
bin              : in std_logic_vector(11 downto 0);
bcd              : out std_logic_vector(15 downto 0);
enable_rd_bcd : out std_logic
);
end bin_bcd;

architecture bin2bcd of bin_bcd is

signal ct_bit_bin : std_logic_vector(3 downto 0);
signal     bin_rg : std_logic_vector(11 downto 0);
signal     bcd_rg : std_logic_vector(15 downto 0);
signal         sum: std_logic_vector(15 downto 0);

begin

sum(3 downto 0) <= bcd_rg(3 downto 0) + 3 when bcd_rg(3 downto 0) > 4 else bcd_rg(3 downto 0);
sum(7 downto 4) <= bcd_rg(7 downto 4) + 3 when bcd_rg(7 downto 4) > 4 else bcd_rg(7 downto 4);
sum(11 downto 8) <= bcd_rg(11 downto 8) + 3 when bcd_rg(11 downto 8) > 4 else bcd_rg(11 downto 8);
sum(15 downto 12) <= bcd_rg(15 downto 12) + 3 when bcd_rg(15 downto 12) > 4 else bcd_rg(15 downto 12);

process (clk)
begin
if (clk'event and clk = '1') then
    if ct_bit_bin = 0 then
        enable_rd_bcd <= '1';
        bcd <= bcd_rg;
        bcd_rg <= X"0000";
        bin_rg <= bin;
        ct_bit_bin <= "1100";
    else
        enable_rd_bcd <= '0';
        bcd_rg <= sum(14 downto 0) & bin_rg(11);
        bin_rg <= bin_rg(10 downto 0) & '0';
        ct_bit_bin <= ct_bit_bin - 1;
    end if;
end if;
end process;

end bin2bcd;

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
|- - des00   Цитата(Docent86 @ Jul 30 2010, 00:42) На ...   Jul 30 2010, 07:42
- - 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 Текстовая версия Сейчас: 20th July 2025 - 14:41
Рейтинг@Mail.ru


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