为什么"小于"当等于"等于"作品?

时间:2016-01-03 11:17:34

标签: verilog logical-operators

我有一个简单的项目:

NET "sw<2>"   LOC = "P89";
NET "sw<1>"   LOC = "P95";
NET "sw<0>"   LOC = "P101";
NET "ld"   LOC = "P59";
module top_module(
    input [2:0] sw,
    output ld
);
assign ld = sw == 3'd2;
endmodule

它编译没有任何错误。但是,如果我将==更改为<,则会赢得

  

警告:PhysDesignRules:367 - 信号&lt; sw&lt; 0&gt; _IBUF&gt;不完整。信号不会驱动设计中的任何负载引脚。

     

警告:参数:288 - 信号sw&lt; 0&gt; _IBUF没有负载。 PAR不会尝试路由此信号。

有谁能解释我为什么会这样?

1 个答案:

答案 0 :(得分:2)

这是因为只有两个(无符号整数)小于2的数字是1和0,所以数字的最低位并不重要,即sw [0]不是物。什么都没有&#39;没有工作&#39;这里,只是一些可能无关的警告。

警告只是告诉你sw [0]不会影响输出。如果您将比较更改为FirstViewController,则警告将消失,因为逻辑需要再次关注sw [0]。