比较运算符
本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 21 课,共 90 课。
比较运算符用于比较两个值,并返回 1(真)或 0(假)。
可用的比较运算符
| 运算符 | 含义 |
|---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
代码示例
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这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Verilog 在线编译器