假设我得到了一个wire large_bus[63:0]
宽度为 64 的向量。如何在不将它们全部写出的情况下对各个信号进行异或运算:
assign XOR_value = large_bus[0] ^ large_bus[1] ^ ... ^ large_bus[63]
?
对于宽度由 a 指定的向量,我特别感兴趣localparam
。
假设我得到了一个wire large_bus[63:0]
宽度为 64 的向量。如何在不将它们全部写出的情况下对各个信号进行异或运算:
assign XOR_value = large_bus[0] ^ large_bus[1] ^ ... ^ large_bus[63]
?
对于宽度由 a 指定的向量,我特别感兴趣localparam
。
&、|、^等二元运算符在verilog中也可以是一元的,非常方便。它们对操作数执行按位运算并返回单个位值。参见asic-world.com 上的归约运算符。
reg [63:0] large_bus;
wire xor_value;
assign xor_value = ^large_bus;