两个逻辑信号相加的结果中出现意外的 X

Unexpected Xs in the result of addition of two logic signals

我有一个添加了两个信号的代码。只有信号的高位是 X。低位是 0。 但是,结果全是 X。我希望结果中的最低位为 0。

logic [3:0] a; // 4'bxx00
logic [3:0] b; // 4'bxx00
logic [4:0] c;

assign c = a + b; // Results in c = 4'bxxxxx

我想了解为什么结果中的低 2 位是 x。

此行为在 IEEE 标准 1800-2017,第 11.4.3 节中指定算术运算符

For the arithmetic operators, if any operand bit value is the unknown value x or the high-impedance value z , then the entire result value shall be x .

表达式a + b包含算术运算符:+