Verilog: XOR tất cả các tín hiệu của vectơ với nhau


13

Giả sử tôi được cung cấp một vectơ wire large_bus[63:0]có chiều rộng 64. Làm cách nào tôi có thể XOR các tín hiệu riêng lẻ với nhau mà không ghi tất cả chúng ra:

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

Tôi đặc biệt thích làm điều này cho các vectơ trong đó chiều rộng được chỉ định bởi a localparam.

Câu trả lời:


14

Các toán tử nhị phân như &, |, ^ và một số toán tử khác cũng có thể là unary trong verilog, khá thuận tiện. Chúng thực hiện các phép toán bitwise trên toán hạng và trả về một giá trị bit đơn. Xem ví dụ các toán tử giảm trên asic-world.com.

reg [63:0] large_bus;

wire xor_value;
assign xor_value = ^large_bus;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.