본문 바로가기
HW Design/1. Verilog HDL Basic

[Statement] 1. if문

by 한PU 2024. 1. 13.
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 트리거됨.
  • 두번째 if 문
    • addr 활성화
      • Q = b
    • addr 비활성화
      • Q = a
728x90
반응형

'HW Design > 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