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.