비교 연산자
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 21번째.
비교 연산자는 두 값을 비교하여 1 (true) 또는 0 (false)을 반환합니다.
사용 가능한 비교 연산자
| 연산자 | 의미 |
|---|---|
== | 같음 (Equal to) |
!= | 같지 않음 (Not equal to) |
> | 보다 큼 (Greater than) |
< | 보다 작음 (Less than) |
>= | 크거나 같음 (Greater than or equal) |
<= | 작거나 같음 (Less than or equal) |
코드 예제
module comparison_demo;
reg [3:0] a, b;
reg result;
initial begin
a = 5;
b = 3;
result = (a == b);
$display("5 == 3 : %d", result); // 0 (거짓)
result = (a != b);
$display("5 != 3 : %d", result); // 1 (참)
result = (a > b);
$display("5 > 3 : %d", result); // 1 (참)
result = (a < b);
$display("5 < 3 : %d", result); // 0 (거짓)
result = (a >= 5);
$display("5 >= 5 : %d", result); // 1 (참)
result = (a <= 3);
$display("5 <= 3 : %d", result); // 0 (거짓)
$finish;
end
endmodule출력:
5 == 3 : 0
5 != 3 : 1
5 > 3 : 1
5 < 3 : 0
5 >= 5 : 1
5 <= 3 : 0조건문에서 비교 사용하기
비교는 if 문에서 자주 사용됩니다:
if (count == 10)
$display("Reached maximum");
if (value > threshold)
$display("Value is too high");중요 참고 사항
- 비교 결과는 1비트 값입니다 (0 또는 1).
- 비교 연산은 모든 비트 폭에서 작동합니다.
- 신호에 X 또는 Z가 포함되어 있을 때
==및!=연산에 주의하세요 (X를 반환합니다).
챌린지
각 작업에 맞는 올바른 비교식을 작성하세요.
수행할 작업:
a와b가 같은지 비교하고 결과를eq에 저장하세요.a가b보다 큰지 비교하고 결과를gt에 저장하세요.a가b보다 작거나 같은지 비교하고 결과를le에 저장하세요.
직접 해보기
module comparison_challenge;
reg [3:0] a, b;
reg eq, gt, le;
initial begin
a = 4'd7;
b = 4'd7;
eq = ______; // a가 b와 같다
gt = ______; // a가 b보다 크다
le = ______; // a가 b보다 작거나 같다
$display("a = %d, b = %d", a, b);
$display("a == b : %d", eq);
$display("a > b : %d", gt);
$display("a <= b : %d", le);
$finish;
end
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.