[an error occurred while processing this directive]
|
1. Если у вас все правильно написано, то это свинья от синтезатора, действительно.
Тогда надо делать так (в слущае например PCI это вообще обязательно):
bus <= internal_bus when bus_oe else (others => 'Z');
(вне каких-либо процедурных блоков)
То есть, вы должны управлять енейблом в явном виде в той же стейт-машине (или в другой).
2. Я таки не понял, куда конкретно влезла логика. Если между выходом IFF(IFF есть) / входом IFF(IFF обходится) и входом CLB, то это нормально.
3. Если делать так как вы хотите, то тот же PCI сделать вообще невозможно было бы :) А как там сделано? Просто ограничено максимальное времы распространения по плате (мамке), а вам вменяется в обязанность законстрейнить время от распространения сигнала от пина до триггера (с учётом времени распространения клока) (offset короче) и клок-аут на выходах. То есть в фпга констрейнятся только Максимальные значения. А одинаковыми они не будут - некоторые могут быть гораздо меньше максимальных.
E-mail: info@telesys.ru