两个8位输入被馈送到比较器,如果第一个大于第二个,则应该减去它们,否则它们应该被添加。但是,>和<运算符不应该被用来比较它们。 所以,我把我的逻辑写成:
input[7:0] in1,in2;
output select;
assign select=(in1-in2)?0:1;
它总是减去,除非差值等于0.如果我使用除法,0不能是输入或我的程序可能会崩溃。关于如何解决这个问题的任何建议?
非常感谢你的时间。
答案 0 :(得分:2)
请记住,负数的最左边位是1。所以你可以用它来检查差异的符号。
input[7:0] in1,in2;
output select;
wire [7:0] difference = in1-in2;
wire sign_of_difference = difference[7];
assign select = sign_of_difference? 0:1;