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에서 사용하는 것이 권장된다.