Здрасте.
Достался мне в наследство проект системы на Cyclone2 имеющий общую шину (16бит) с обычным управлением подобно интерфейсу SRAM (Adres, CS, WR, OE). На шине навешаны регистры управляющие работой системы. Регистры как записываются так и читаются по етой общей шине - для етого их выходы выставляются на нее через tribuf - буферы. И ква эту шину нормально конвертит в мультиплексор.
беда моя началась после добавления к шине очередного регистра - тайминг анализ стал показывать что выход одного регистра до входа другого не укладывается в тактовую шины.
Глобально ломать тайминги шины нехочется ибо придется перепиливать проекты других устройств сопряженных с проблемным.
Есть надежда что если я както сумею разделить пути: от шины ко входам регистров и от выходов к шине то уложусь в тактовую.
Еще есть одна надежда:
у меня 1 такт шины занят выставлением адреса перед чтением\записью - этот такт можно былобы использовать для синхронного мультиплексора, если бы я сам делал его, но он синтезируется самим квартусом;
или можно попробовать обконстрейнить мультиклок, одна беда узлов больше полусотни, я заколебусь это делать.
Вобчем ищу умного совета, как организовывать большую шину и как возможно проще поправить то что есть?