Verilog: XOR todas las señales de vector juntas

11

Diga que me dieron un vector wire large_bus[63:0] de ancho 64. ¿Cómo puedo XORAR las señales individuales juntas sin escribirlas todas?

assign XOR_value = large_bus[0] ^ large_bus[1] ^ ... ^ large_bus[63] ?

Estoy especialmente interesado en hacer esto para vectores donde el ancho está especificado por un localparam .

    
pregunta Randomblue

1 respuesta

14

Los operadores binarios como & amp ;, |, ^ y algunos otros también pueden ser únicos en verilog, lo cual es bastante conveniente. Realizan operaciones bitwise en el operando y devuelven un solo valor de bit. Ver por ejemplo operadores de reducción en asic-world.com.

reg [63:0] large_bus;

wire xor_value;
assign xor_value = ^large_bus;
    
respondido por el Thorn

Lea otras preguntas en las etiquetas