Procedural Assignment은 절차적 할당이라고 하며, initial이나 always 등과 같은 event block 내에서 값을 할당하는 것을 말한다.
아래의 예제를 보자.
module continuous(
input a,
output reg b
);
always @ (*) begin
b <= a;
end
endmodule
always block에서 값을 할당한 것을 볼 수 있다.
event block 안에서는 reg에 값을 할당해야 한다.
Procedural Assignment은 절차적 할당이라고 하며, assign 키워드를 이용하여 값을 할당하는 것을 말한다.
아래의 예제를 보자.
module procedural(
input a,
output b
);
assign b = a;
endmodule
assign 키워드를 통해 값을 할당한 것을 볼 수 있다.
assign으로 할당할 때는 wire에 값을 할당해야 한다.
괜히 용어만 번지르르하지, 크게 중요하지 않은 것 같다.