Цитата(VladimirB @ May 7 2011, 15:32)

потому что в первом случае если dk_tmp не равно '1' то, так как if неполный,
fk_tmp не изменяет своего состояния - т.е. синтезируется асинхронный триггер или latch
а во втором случае просто логика XOR.
учите схемотехнику

Спасибо за отклик. Но, вопросов только добавилось.
Речь идёт о последовательном процессе, чувствительном для clk. Во втором случае должен иметь место всё-таки синхронный триггер, фиксирующий выход логики XOR. Или я не прав?
Чисто для изучения схемотехники

изменил if до полного:
if (dk_tmp='1') then --вариант 1
fk_tmp <= not fk_tmp;
else
fk_tmp <= fk_tmp;
end if;
но результат не изменился. Пробовал ещё так:
if (dk_tmp='1') then --вариант 2
fk_tmp <= not fk_tmp;
else
null;
end if;
- без изменений.
Действительно ли вариант 1 отличается от: fk_tmp <= fk_tmp xor dk_tmp; ?