Verilog: XOR สัญญาณทั้งหมดของเวกเตอร์เข้าด้วยกัน


13

สมมติว่าฉันได้เวกเตอร์ที่มีwire large_bus[63:0]ความกว้าง 64 ฉันจะแฮคเกอร์แต่ละสัญญาณด้วยกันได้อย่างไรโดยไม่ต้องเขียนออกทั้งหมด:

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;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.