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

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

Отправлено A_S_N 10 января 2005 г. 16:50
В ответ на: Ответ: Вот. У меня вроде получилось что-то похожее. Только чуть больше по объему и меньше по частоте. отправлено Shamray 10 января 2005 г. 15:57

Количество тактов - 1(разрузка) + 32(основной цикл) + 1(выгрузка) + 1(Ack от регистра-приёмника). А таблицу реализовал в лоб:


subtype Nibble_Type is std_logic_vector(PERMUTE-1 downto 0);
type S_Type is array (2**PERMUTE-1 downto 0) of Nibble_Type;
type Permute_Type is array (KEY_MIX_ROUND-1 downto 0) of S_Type;
constant S_Table:Permute_Type:=(....)
и, соответсвенно, функции

function Permutate_Nibble(Op1: in Nibble_Type; Number: in integer range 0 to BLOCKS-1) return Nibble_Type is
begin
return S_Table(Number)(CONV_INTEGER(Op1));
end;
function PERMUTE_4x4(Op1: in Data_Type) return Data_Type is
variable Res : Data_Type;
begin
G1: for I in 0 to 7 loop
Res(PERMUTE*(I+1)-1 downto PERMUTE*I):=Permutate_Nibble(Op1(PERMUTE*(I+1)-1 downto PERMUTE*I), I);
end loop G1;
return Res;
end function PERMUTE_4x4;

В операционном блоке просто PM := PERMUTE_4x4(CM1).

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru