为什么赋值语句没有使用总和值更新



logic [31:0] sum_count;

/

/cnt0 和 cnt1 是 24 位信号

案例1:

assign sum_count = (cnt0 & {8'b0,{24{en0}}}) + (cnt1 & {8'b0,{24{en1}}});

案例2:

assign sum_count = (cnt0 & {8'b0,{24{en0}}});

对于 en0=1 的条件,en1=0;我在模拟中看到的是sum_count保持"0",而对于情况 2,sum_count正在正确更新。如何调试问题?

更好的写法是

assign sum_count = (en0 ? cnt0 : 32'b0) + (en1 ? cnt1 : 32'b0)

最新更新