如果我有一个由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
?它也必须是合成化的。
i
将是一个整数。由于循环将在编译时展开,因此仍然可以合成。 - Morgan