Verilog: XOR всі сигнали вектора разом


13

Скажіть, мені дають вектор wire large_bus[63:0]шириною 64. Як я можу XOR окремі сигнали разом, не записуючи їх усіх:

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

Мені особливо цікаво це робити для векторів, де ширина задана а localparam.

Відповіді:


14

Двійкові оператори, такі як &, |, ^ та деякі інші, також можуть бути неоднаковими у verilog, що досить зручно. Вони виконують побітові операції на операнді та повертають єдине бітове значення. Див. Наприклад оператори скорочення на asic-world.com.

reg [63:0] large_bus;

wire xor_value;
assign xor_value = ^large_bus;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.