Verilog: XOR wszystkie sygnały wektora razem


13

Powiedzmy, że otrzymałem wektor wire large_bus[63:0]o szerokości 64. Jak mogę XOR razem przesłać poszczególne sygnały bez zapisywania ich wszystkich:

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

Szczególnie mnie to interesuje w przypadku wektorów, w których szerokość jest określona przez a localparam.

Odpowiedzi:


14

Operatory binarne, takie jak &, |, ^ i niektóre inne, mogą być również jednostronne w verilog, co jest dość wygodne. Wykonują operacje bitowe na operandzie i zwracają wartość pojedynczego bitu. Patrz np. Operatorzy redukcji na asic-world.com.

reg [63:0] large_bus;

wire xor_value;
assign xor_value = ^large_bus;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.