[an error occurred while processing this directive]
|
Написал такую асинхронную конструкцию:
BusXXX <= busWriteData when busOE else (others=>'Z');
busWriteData и busOE изменяются по клоку внутри процесса управляющего конечного автомата.
При симуляции моделсимом обнаружил, что на вхоте T выходных буферов шины при переключении автомата присутствуют глитчи - шина отпирается на короткое время когда должна быть запертой.
Анализ показал, что XST заоптимизировал сигнал busOE, и получает сигнал tristate как выход комбинационной логики от состояния управляющего автомата. Это было бы допустимо, если бы схема было полностью синхроной - не в случае с Tristate это не так.
Кто-нибудь знает, как заставить XST породить триггер? Выражение
attribute register_balancing of busOE : signal is "no";
не помогает.
E-mail: info@telesys.ru