Цифровой схемотехникой и темой ПЛИС занимаюсь не так давно, поэтому прошу знающих людей пояснить следующую ситуацию.
Имеем код, синтезируемый в два последовательно соединенных триггера:
Код
always @(posedge clk) begin
z <= y;
y <= x;end
z <= y;
y <= x;end
может ли при разводке возникнуть ситуация, когда новые данные на вход второго триггера придут раньше, чем клок на второй триггер, т. е. новые данные появятся на выходе второго триггера не по второму фронту, как ожидаем, а по первому? Или же трассировщик не допустит такой ситуации?
Аналогичный вопрос для другого примера:
CODE
always @(posedge clk)
case (state)
...
1: begin
z <= in1 + in2;
state <= 2;
end
2: begin
z <= in1 - in2;
state <= 3;
end
...
endcase
case (state)
...
1: begin
z <= in1 + in2;
state <= 2;
end
2: begin
z <= in1 - in2;
state <= 3;
end
...
endcase
Если этот код синтезируется в следующую конструкцию, то допустима ли ситуация, когда состояние автомата успеет измениться и пройти через логику на вход триггера до прихода того же самого фронта клока на этот триггер?
