Я узнал, что сигнал сразу не изменяется при встрече с выражением, но когда процесс заканчивается. В этом примере:
...
signal x,y,z : bit;
...
process (y)
begin
  x<=y;
  z<=not x;
end process;
В этом примере сказано следующее:
Если сигнал y изменяется, событие будет запланировано на x, чтобы сделать его таким же, как y. Кроме того, событие запланировано на z, чтобы сделать его противоположным x. Вопрос в том, будет ли значение z противоположным y? Конечно, ответ отрицательный, потому что, когда выполняется второй оператор, событие в x еще не обработано, а событие, запланированное на z, будет противоположно значению x до начала процесса.
Ну, мне нужно понять некоторые вещи:
- Из того, что я узнал, значения сигналов обновляются только в конце процесса. Правильно ли это?
-  Сигнал xобновляется как первый оператор. Это еще не меняет значениеx, это изменение помещается в очередь, которая должна быть выполнена после завершения процесса. Итак, все после этого утвержденияx <= yне увидит изменения и увидит, чтоxимеет старое значение. Правильно ли это?
-  Второй оператор - попытка изменить значение сигнала z. То же самое здесь, z не изменит свое значение, но зависит от значения другого процесса. Изменение вzбудет помещено в очередь, которая будет выполнена в конце процесса. Правильно ли это?
Что происходит в конце процесса?
Номер возможности 1) Значение в x изменяется так, что x имеет новое значение. Обновлен второй сигнал z, обновлен первый сигнал x и, учитывая, что z зависит от x, его значение изменяется на основе НОВОГО ОБНОВЛЕННОГО значения x. И пример должен работать нормально. 
Номер возможности 2) Значение в x изменяется так, что x имеет новое значение. Второй сигнал z обновляется. Учитывая, что z было присвоено старое значение x, что значение, которое z будет удерживать, старое значение x, которое было обновлено, но это обновление не рассматривается.
Не могли бы вы рассказать мне, какой из них правильный?
