Есть задача: на входе идет поток и байтовых данных с rate скажем Х MHz (каждый clock - запись байта). На выходе нужно дать строенные слова, т.е. 24 бита (паковать по 3 последовательно полученных байта и выдавать слово наружу), т.е. со скоростью Х/3 MHz. Если предположим выходной (read) clock получен делением на 3 входного (write) clockа (значит есть небольшая задержка между edges входного и выходного clocks), можно ли каким-то образом использовать буфер из 3 байт по накоплении которого слово в 24 бита выдается наружу согласно read clock ? Проблема (как я вижу) в том что по третьему write clockу когда третий байт только записался нужно сразу-же читать все слово (все три байта буфера параллельно) по read clockу, что может примерно совпасть с записью первого байта следующей тройки (т.е. четвертого по счету с streame). Может ли тут помочь dual port ram ?
Если это не реально, какие более реальные идеи есть ? Может что-то врое ping-pong buffer (т.е. иметь 2 буфера по 3 байта каждый - как только первый заполнился со входа всеми тремя байтами - он тут-же асинхронно скидывается во второй и 24-битное слово считывается на выхом со второго, в то время как первый заполняется следующими 3мя байтами потока, и т.д.)...
Что скажем ?
|