Цитата(BSV @ Dec 1 2007, 02:27)

Почитайте мой предыдущий пост - я его немного поправил. Если устройство на которое пойдут 24 бита не предполагает управления потоком (например, не м.б. занято), то FIFO не нужно ИМХО. Тут же самый обычный конвейер - каждые 3 такта (только со сдвижкой на 1 такт) будете получать на выходе слово.
В общем, как-то так (сбросы если где-то нужны - сами добавьте, и порядок байт в слове проверьте)
Код
process (CLK)
begin
if (CLK'event and CLK = '1') then
if (IN_WE = '1') then
RA <= IN;
RB <= RA;
RC <= RB;
CNT <= CNT + 1;
end if;
OUT_WE <= CNT(1) and not CNT(0);
end if;
end process;
process (CLK)
begin
if (CLK'event and CLK = '1') then
if (OUT_WE = '1') then
R_OUT <= RA & RB & RC;
end if;
end if;
end process;
CLK_OUT <= not OUT_WE;
За код спасибо, но не очень работал, но идея понятна (в том-же направлении сам прикидывал - FIFO pipe, только на 2 регистра, запись в выходной буфер по третьему клоку (2 данных беруться из FIFO, третий - напрямую со входа).
Переписал по своему, кое-что изменял и т.д. и т.п. - все работает (функционально в симуляторе)!
Наверно не написан не самым оптимальным образом, но можно сказать мой первый VHDLевский "микро-проэктик"
Будем двигаться дальше...
Если кому интересно - могу кинуть свой код.