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