Verilog: XOR semua sinyal vektor bersama

13

Katakanlah saya diberi vektor wire large_bus[63:0]lebar 64. Bagaimana saya bisa XOR sinyal individu bersama-sama tanpa menuliskan semuanya:

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

Saya terutama tertarik melakukan ini untuk vektor di mana lebar ditentukan oleh a localparam.

Randomblue
sumber

Jawaban:

14

Operator biner seperti &, |, ^ dan beberapa lainnya juga bisa unary di Verilog, yang cukup nyaman. Mereka melakukan operasi bitwise pada operan dan mengembalikan nilai bit tunggal. Lihat misalnya operator reduksi di asic-world.com.

reg [63:0] large_bus;

wire xor_value;
assign xor_value = ^large_bus;
Duri
sumber