如果我有 9 根线的阵列,如果 9 根线中恰好有一根是高的,是否有一种简单的方法可以制作一根高的新线?我知道我能做到
wire[8:0] data;
wire exactlyOneActive;
assign exactlyOneActive = (data[0] & !data[1] & !data[2] ...) |
(!data[0] & data[1] & !data[2] ...) |
(!data[0] & !data[1] & data[2] ...) |
...etc
但是,糟糕,对吧?特别是因为九根线在某个时候可能是 25 根。任何更好的方法来做到这一点,也许使用generate
?它也必须是可合成的。