Только начинаю работать с FPGA в частности и с Verilog в целом :) Появился довольно тривиальный, но всеже вопрос.
Предположим, я проектирую некий МК. Пусть, например, у меня есть модули:
* ядро
* модуль внешнего интерфейса (скажем I2C или CAN)
* MIU
* ...
Я считаю, что они должны быть максимально развязаны друг от друга (если ошибаюсь - поправьте, пожалуйста), но тогда встает вопрос о едином интерфейсе связи.
Сразу приходит в голову некоторая внутренняя шина, разделяемая модулями и обладающая простым протоколом.
Все бы хорошо, но тогда я начинаю "терять такты":
Скажем ядру нужно что-то считать из памяти через MIU. Что получается.
Фронт1: Установить на шину управления команду "работа с MIU", на шину адреса - адрес :)
Фронт2: MIU снимает запрос, защелкивает адрес/управляющие сигналы на порт внешней памяти памяти
....
ФронтN: По приходу готовности от памяти MIU защелкивает на шине возврат от памяти
ФронтN+1: Ядро снимает данные
Я что-то глобально делаю не так или зря боюсь потери тактов? Разъясните, пожалуйста!
P.S. Эта ночь будет у меня занята Wishbon'ом :)