Verilog: XOR tüm vektör sinyallerini birlikte


13

wire large_bus[63:0]64 genişliğinde bir vektör verildiğini varsayalım. Tek tek sinyalleri hepsini yazmadan nasıl XOR yapabilirim:

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

Özellikle genişliği bir tarafından belirtilen vektörler için bunu yapmakla ilgileniyorum localparam.

Yanıtlar:


14

&, |, ^ Ve diğerleri gibi ikili operatörler de verilogda tekli olabilir, ki bu oldukça uygundur. İşlenen üzerinde bitsel işlemler yaparlar ve tek bir bit değeri döndürürler. Bkz. Örneğin asic-world.com adresindeki azaltma operatörleri .

reg [63:0] large_bus;

wire xor_value;
assign xor_value = ^large_bus;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.