5. Continuous Assignments

[Concurrency : 동시성]

 - Verilog HDL은 Description Language이기 때문에, 동시에 각각의 코드 블럭이 실행된다.

예로,

 

module AND(
input	A, B,
output	C
    );
    
wire w;
NAND	U1	(A, B, w);
NAND	U2	(w, w, C);

endmodule

여기서 동시에 수행되는 부분은 NAND U1과 NAND U2 부분이다.

Continuous AssignmentsProcedural Blocks같은 것들이 동시적으로 수행된다.

즉, 순서가 바뀌어도 동시에 수행되기 때문에 결과는 같다.

 

[Continuous Assignments]

assign ~ ;

의 형태로 기술되는 것을 Continuous Assignments라고 한다.

Combinational logic을 항상 수행하며 우측(RHS : Right Hand Side)의 변화가 일어날 때마다 이 변화를 좌측(LHS : Left Hand Side)에 반영한다. => 우변을 계산해서 좌변에 assign한다.(저장 X) 즉, 연결이다.

※ assign 문은 wire를 사용해야 한다.

절대로 Sequential Logic을 기술할 수 없다.



assign C = ~(A&B);
assign C = A&B;
C = ~&{2{~(A&B)}}