Добрый вечер. Прошу помощи по следующим вопросам.
ПЛИС (циклон 3) подключается к процессору через интерфейс асинхронной SRAM. Процессор может читать/писать внтуренние регистры ПЛИС.
Тактовая в ПЛИС - около 98 МГц, клок внешней шины процессора - около 101 МГц.
Сигнал wr_stb - это строб записи внутри ПЛИС (полученный после цепочки триггеров для предотвращения метастабильности).
Возникли сомнения по поводу того как правильно организовать запись в ПЛИС.
1. Можно ли завести данные на вход регистра напрямую и использовать wr_stb в качестве сигнала clock enable?
Может ли возникнeть метастабильное состояние триггера при смене данных и при неактивном CE? Или это полностью безопасно?
2. Можно ли формировать clock enable для триггера, объединяя через логику линии адреса и wr_stb? Или же это может вызвать глитч на выходе LUT при изменениях на шине адреса и как следствие метастабильное состояние (из-за нарушения требования по setup/hold на входе CE триггера)? Согласно документации, у LUT-а в режиме двух входов глитч на выходе исключен. Однако где гарантия, что так получится при синтезе и quartus не будет использовать, например, все 4 входа LUT-а для wr_wtb и линий адреса?
3. Может быть использование общего сигнала wr_stb является неверными, а для каждого регистра нужно формировать свой строб записи, объединяя через логику ADDR, nCS и nWR, а затем пропуская через цепочку триггеров?
Ответов на эти вопросы в альтеровской документации пока не нашел, в инете тоже.
Так что буду благодарен всем откликнувшимся.
Сообщение отредактировал winipuh - Nov 2 2012, 16:10