Цитата(KP580BM80 @ May 7 2011, 16:22)

В работающем, отлаженном процессе меняю конструкцию:
if (dk_tmp='1') then
fk_tmp <= not fk_tmp;
end if;
на:
fk_tmp <= fk_tmp xor dk_tmp;
и получаю нерабочую систему. В тесте на железе появляется порядка 1% ошибок. До замены их не было вообще!
Замечены и другие подобные нюансы. В чём могут быть грабли?
потому что в первом случае если dk_tmp не равно '1' то, так как if неполный,
fk_tmp не изменяет своего состояния - т.е. синтезируется асинхронный триггер или latch
а во втором случае просто логика XOR.
учите схемотехнику