Menu
CoddyTech

有符号比较

本课属于 Coddy Verilog 学习旅程的“RTL 设计与验证”单元。第 7 课,共 38 课。

相同的位模式可以表示不同的 signed 数和无符号数。比较二进制补码值时,将两个操作数都声明为 signed。混用 signed 和无符号操作数可能会改变比较时的解释方式。拼接表达式是无符号表达式,即使其中包含 signed 信号也是如此。

相关摘录;周围的声明和连接已在挑战中提供。

wire signed [7:0] a,b;
assign less = a < b;

signed 声明会让负值与非负值比较时小于非负值。

保持比较运算数的 signed 属性一致,并使用符号位扩展 signed 值。

challenge icon

挑战

中等

比较 8 位 signed 类型的 a 和 b。当 a 小于 b 时输出 less,相等时输出 equal。两个输入都是二进制补码 signed 值。输出列:less、equal。所有激励值都是已知的二进制值。

完成 design.v,并保留其模块名称和端口。锁定的 testbench.v 会提供输入变化,并在输出稳定后打印输出。它会使用模拟器参数(例如 +CASE=1)选择一个场景;不需要标准输入。不要在设计中添加打印、延迟或仿真终止操作。预期输出为每次观测一行十进制值,值之间用一个空格分隔,并以换行符结尾。

亲手试试

module dut (input signed [7:0] a, input signed [7:0] b, output less, output equal);
    // 用你的设计替换这里的占位内容。
    assign less = 0;
    assign equal = 0;
endmodule
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

RTL 设计与验证中的所有课

自己练习: Verilog 在线编译器