728x90
반응형
- 지금까지는 Always 블록으로 순차 회로 모델링만 고려했음.
- 조합 회로 모델링도 가능은 하다.
// Verilog 2001
always @(a, b, c) begin
logic_out = (a & b) | c;
end
// Verilog 1995
always @(a or b or c) begin
logic_out = (a & b) | c;
end
- assign 키워드 대신 always block 사용
- 조합 논리 회로 모델링 시, sen list 작성 방법 두 가지
- 회로의 각 입력을 or 또는 , 로 구분
- 문자를 사용하여 sen list에 포함할 신호를 자동으로 결정할 수도 있음.
- 문자는 Verilog 2001 표준
- 문자를 사용하여 sen list에 포함할 신호를 자동으로 결정할 수도 있음.
- 회로의 각 입력을 or 또는 , 로 구분
// Sen list
always @(a, b, c)
// Sen list in Verilog 1995
always @(a or b or c)
// 자동 Sen list with *
always @(*)
- 일반적으로 always 블록으로 조합 회로를 모델링하면 보일러 플레이트 코드가 추가됨.
- 복잡한 회로를 간소화 하는 몇 가지 상황에만 사용
- => 거의 사용 X
Multiplexors
- always 블록을 사용하여 조합 회로를 모델링하는 유용한 예시
- case 문을 통해 모델링
- 대규모 mux를 모델링하는 더 간단하고 직관적인 방법
always @(*)
case (addr) begin
0 : begin
mux_out = a;
end
1 : begin
mux_out = b;
end
2 : begin
mux_out = c;
end
3 : begin
mux_out = d;
end
endcase
end
728x90
반응형
'Verilog HDL > 1. Verilog HDL Basic (문법)' 카테고리의 다른 글
[Verilog Tutorial] level-5 Using the Always Block 모음 (0) | 2024.01.10 |
---|---|
[Using the Always Block] 4. 예제 풀이 (0) | 2024.01.10 |
[Using the Always Block] 2. Blocking, Non-Blocking 할당 (0) | 2024.01.10 |
[Using the Always Block] 1. Always block 이란? (1) | 2024.01.10 |
[Verilog Tutorial] level-4 Using Continuous Assignment 모음 (0) | 2024.01.10 |