[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 Assignments와 Procedural 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)}} |
'Verilog' 카테고리의 다른 글
6. 게이트 지연(Gate Delay) (0) | 2023.08.17 |
---|---|
4. 연산자 Operator (0) | 2023.07.13 |
3. Verilog의 모듈 구조 (0) | 2023.07.13 |
2. Verilog의 벡터(Vector) 표현 및 카운터 모듈 예제 (0) | 2023.07.13 |
포스팅 할 수 있는게 생기긴 했는데 (0) | 2023.07.11 |