ID บทความ: 000080098 ประเภทข้อมูล: ข้อมูลผลิตภัณฑ์และเอกสารประกอบ การตรวจสอบครั้งล่าสุด: 11/09/2012

ตัวดําเนินการกะใน Verilog HDL ได้รับการสังเคราะห์ในซอฟต์แวร์ MAX PLUS® II อย่างไร

สิ่งแวดล้อม

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย การปรับใช้ตัวดําเนินการ Shift (เช่น < and >>) จะขึ้นอยู่กับขนาดของตัวแปรที่ผู้ใช้ประกาศ ตัวอย่างเช่น พิจารณารหัสต่อไปนี้ใน Verilog HDL:
reg [3:0] in;
                  output [3:0] shfta;

assign shfta = {in

ในกรณีนี้ เนื่องจาก shfta กว้าง 4 บิต ค่าของ {in<<2} จะถูกตัดให้สั้นลงเป็น 4 บิตน้อยที่สุด หาก in = 4'b0100เป็น เช่นนั้น shfta = 4'b0000 บิตที่สําคัญที่สุดสองตัวของค่าที่เปลี่ยนไป 6 บิตจะสูญหายไป

ในรหัสต่อไปนี้ ค่าที่เปลี่ยน 6 บิตจะถูกเก็บรักษาไว้และshftaจะได้รับค่าที่ถูกต้อง หาก in=4'b0100เป็น เช่นนั้นshfta = 6'b010000

              reg [3:0] in;
             output [5:0] shfta;

             assign shfta = {in<<2};

ซอฟต์แวร์ MAX PLUS II จะอนุมานขนาดที่เหมาะสมสําหรับการเปลี่ยนโดยขึ้นอยู่กับขนาดของตัวแปรทางด้านซ้ายของรายงานการมอบหมาย พิจารณารหัสต่อไปนี้:

             reg [3:0] in;
             output [7:0] shfta;

             assign shfta = {in<<2}   7'h10;

เนื่องจากมี shfta ความกว้างแปดบิต {in<<2} จึงมีการกําหนดแปดบิต กฎเดียวกันนี้ใช้กับผู้ให้บริการ>> อย่างไรก็ตาม เนื่องจากธรรมชาติของผู้ให้บริการ>> ผลลัพธ์จึงไม่ได้รับผลกระทบจากความกว้างของการปรับใช้ตัวดําเนินการเปลี่ยนแปลง ตัวอย่างเช่น หาก in =4'b1000{in>>2} เป็น 4'b0010 ทางด้านซ้ายของข้อมูลที่เปลี่ยนไปจะเบาะเป็นศูนย์ นี่คือบิตที่สําคัญที่สุดจะไม่สูญหาย แต่บิตที่สําคัญน้อยที่สุดจะหายไปเนื่องจากการเปลี่ยนเป็นอิสระจากความกว้างของ การปรับใช้ตัวดําเนินการกะ

ผลิตภัณฑ์ที่เกี่ยวข้อง

บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้