728x90
반응형
- if statement 와 case statement 에 대해 배울 것.
- (복습) always blocks 등의 procedural blocks를 쓰는 이유?
- 순차적으로 실행되는 베릴로그 code를 작성하기 위해.
- sequential statements
- if statement
- case statement
Verilog If Statement
- conditional statement
- 불리언 조건을 이용하여 실행할 코드 블록을 결정.
- C 등의 if문과 유사
// 일반 구문
if (<expression1>) begin
// code to execute
end
else if (<expression2>) begin
// code to execute
end
else begin
// code to execute
end
- else 와 else if 는 제외 가능.
- expressions는 순차적으로 평가됨.
- if문에서 else를 생략하면 어떠한 분기도 실행되지 않음.
- 중첩 if문 가능.
- 중첩이 많아지면 타이밍 제어가 어려우므로 주의.
If Statement Example
always @(posedge clock, posedge reset) begin
if (reset) begin
Q <= 1'b0;
end
else begin
if (addr) begin
Q <= b;
end
else begin
Q <= a;
end
end
end
- 첫번째 if 문
- reset이 활성화
- Q = 0b로 설정
- reset 비활성화
- always block 트리거됨.
- reset이 활성화
- 두번째 if 문
- addr 활성화
- Q = b
- addr 비활성화
- Q = a
- addr 활성화
728x90
반응형
'Verilog HDL > 1. Verilog HDL Basic (문법)' 카테고리의 다른 글
[Statement] 3. 예제 풀이 (1) | 2024.01.13 |
---|---|
[Statement] 2. case문 (0) | 2024.01.13 |
[Testbench] 8. 예제 풀이 (0) | 2024.01.13 |
[Testbench] 7. 테스트벤치 full 작성 (1) | 2024.01.13 |
[Testbench] 6. System Tasks (0) | 2024.01.13 |