@(expression)
- это конструкция, которая ожидает изменения состояния выражения. posedge
квалифицирует изменение от 0 до чего-то еще.
Изменение - это событие, похожее на триггер или квант времени. Ваш код должен ждать изменения выражения, когда оно произойдет. Таким образом, второй @(posedge clk)
ожидает следующего представления clk.
Рассмотрим этот код
always @(postage clk)
begin
#11 din = in;
end
Этот блок всегда выполняется во всех остальных этапах, потому что событие posedge происходит, когда процедура ожидает прохождения единиц времени # 11.