Continuous Assignment (연속 할당)
assign문을 사용하여 Net Type에 값을 할당combinational logic를 구현할 때 사용
모든 연산이 병렬로 수행
예시
wire A;
assign A = (B|C)&D;
Procedural Assignment (절차적 할당)
always 또는 initial 내부에서 사용always 같은 경우 always @ (*)에서 *에 해당하는 신호가 트리거될때 "순차적"으로 실행
주로 reg Type 변수를 대상으로 함
Blocking Assignment (=)
한 문장 실행 후 다음 문장 실행
Nonblocking Assignment (<=)
모든 할당 동시에 실행
예시
always @(posedge clk) begin
out <= a & b;
end
=, <= 같은 경우 섞어서 한 블록에서 사용하지 않는 것이 좋고
assing문과 Blocking은 Combinational에서
Nonblocking은 Sequential에서 사용하는 것이 권장된다.