Ну само-то always реагирует на оба фронта. А вот внутри видимо уже при неблокирующем присваивании защёлки нет? Хотя... вот сделал сдвиговой регистр с параллельной загрузкой
Вот так работает
always @(posedge load or posedge clock) begin
if (load) begin
q <= data;
end else if (clock) begin
shiftout <= q[15];
q[15:1] <= q[14:0];
q[0] <= shiftin;
end
end
А вот так даже не компиляется по понятным причинам (попытка два раза использовать ячейки reg)
always @(posedge load) begin
q <= data;
end
always @(posedge clock) begin
shiftout <= q[15];
q[15:1] <= q[14:0];
q[0] <= shiftin;
end
Вопросов два:
1) Почему первый вариант работает?
2) Как сделать по второму варианту корректно?