[an error occurred while processing this directive]
Один из методов(+)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено -=Sergei=- 02 октября 2002 г. 12:26
В ответ на: Между триггерами 90 Мгц. Кто подскажет методы оптимизации для VHDL? отправлено TIMS 02 октября 2002 г. 11:53

Как обычно на VHDL описывается запись в регистр по условию?

if (CE = '1') then REG <= Din; end if;

В результате мы получаем, что СЕ должен подойти ко ВСЕМ триггерам регистра REG и разрешить запись в эти регистры.

В качестве оптимизации можно предложить следующий механизм

Введем дополнительно
REG1, REG2 - регистры аналогичные REG. пусть будут 64 битные.
CE1 - 4 битный регистр, СЕ2 - 16 битный регистр.
и опишем следующим образом

process (CLK)
if (CLK'event and CLK='1') then
REG1 <= Din;
REG2 <= REG1;
for i in 0 to 3 loop
CE1(i) <= CE;
CE2(i) <= CE1(0);
CE2(i+4) <= CE1(1);
CE2(i+8) <= CE1(2);
CE2(i+12) <= CE1(3);
end loop;
for I in 0 to 64 loop
if (CE2(i/4)='1') then REG(i)<= REG2(i);
end loop;
end if; -- CLK
end process;

Таким образом мы получаем увелечение задержки выполнения (НО ОНО КОНВЕЙЕРИЗИРОВАНО) на 2 такта. Увеличение ОБЪЕМА РЕСУРСОВ в 3 с хвостиком раза, НО сокращение длины цепей разрешения с 64 до 4, и соответсвующее ускорение. Изменяя выще описанные характеристики, делая не 2 промежуточных, а 1 регистр, деля не до 4 длины связей, а например до 16 итп, можно экономить, но оставаться в заданой скорости.



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru