Verilog: XOR todas las señales del vector juntas


13

Digamos que me dan un vector wire large_bus[63:0]de ancho 64. ¿Cómo puedo XOR 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 se especifica mediante a localparam.

Respuestas:


14

Los operadores binarios como &, |, ^ y algunos otros también pueden ser unarios en verilog, lo cual es bastante conveniente. Realizan operaciones bit a bit 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;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.