Menu
Coddy logo textTech

If - Else

Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 53번째.

if-else 문을 사용하면 condition에 따라 서로 다른 두 가지 동작 중 하나를 선택할 수 있습니다. condition이 true이면 한 블록이 실행됩니다. false이면 다른 블록이 실행됩니다.

if-else 문은 코드에 의사 결정 지점을 제공합니다. condition이 true이면 한 가지 작업을 수행하고, condition이 false이면 다른 작업을 수행합니다.

구문:

if (condition) begin
  // condition이 true(1)일 때 실행됩니다
end else begin
  // condition이 false(0)일 때 실행됩니다
end

간단한 예제

if (reset) begin
  count = 0;
end else begin
  count = count + 1;
end
  • reset이 1이면 → count는 0이 됩니다
  • reset이 0이면 → count가 1씩 증가합니다

여러 문

문이 둘 이상인 경우 beginend를 사용합니다:

if (enable) begin
  out = data_in;
  valid = 1;
end else begin
  out = 0;
  valid = 0;
end

여러 조건을 사용하는 If-Else

if-else 문을 연결할 수 있습니다:

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a;  // a와 b는 같다
end

중요한 규칙

규칙설명
else는 선택 사항입니다else 없이 if를 사용할 수 있습니다
else는 가장 가까운 if에 속합니다중첩에 주의하세요
여러 문장에는 begin/end를 사용하세요두 줄 이상인 경우 필요합니다
challenge icon

챌린지

해야 할 일:

  1. 누락된 if-else statement를 Add하여 이 작업이 작동하도록 하세요.
  2. enable이 1일 때, outa & b와 equal해야 합니다.
  3. enable이 0일 때, outa | b와 equal해야 합니다.

직접 해보기

module ifelse_challenge;
  reg a, b, enable;
  reg out;
  
  initial begin
    a = 1;
    b = 0;
    enable = 1;
    
    // TODO: if-else 문 추가
    // enable이 1이면: out = a & b
    // 그렇지 않으면: out = a | b
    
    $display("out = %d (should be 0 because 1&0=0)", out);
    $finish;
  end
endmodule
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 Verilog 컴파일러