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

ข้อผิดพลาด: ข้อผิดพลาด Verilog HDL Conditional Statement ที่ <location>: คําสั่ง If-Else ไม่ตรงกับ Edge รายการความไวใดๆ</location>

สิ่งแวดล้อม

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย ข้อผิดพลาดนี้อาจเกิดขึ้นหากคุณพยายามจําลอง DFF ที่มีสัญญาณควบคุมหลายตัว The Quartus®ซอฟต์แวร์ II จะอนุมานเป็นสัญญาณรองจากสัญญาณสํารองเพียงสัญญาณเดียวเท่านั้น IF เงื่อนไข ตัวอย่างเช่น คุณอาจเขียนโครงสร้างตัวอย่างต่อไปนี้เพื่อจําลองรูปแบบดั้งเดิมของ DFF ที่สามารถรีเซ็ตได้ด้วยสองสัญญาณ rst1 หรือ rst2:

always @ (posedge clk or posedge rst1 or posedge rst2) 

begin  

 if (rst1 == 1'b1 || rst2 == 1'b1) 

  q <= 1'b0; 

 else   

  q <= d; 

 end

ในการแก้ไขสิ่งนี้ ให้แก้ไขการออกแบบเพื่อระบุขอบเพียงหนึ่งขอบต่อเงื่อนไขถ้า ตัวอย่างเช่น หากคุณต้องแก้ไขตัวอย่างก่อนหน้านี้เพื่อระบุ Edge เพียงหนึ่งขอบต่อเงื่อนไข หากเงื่อนไข ซอฟต์แวร์ Quartus II จะยอมรับความแตกต่าง DFF ได้สําเร็จ จากนั้นโค้ดตัวอย่างจะปรากฏดังนี้:

always @ (posedge clk or posedge rst1 or posedge rst2) 

begin  

 if (rst1 == 1'b1)

  q <= 1'b0;  

 else if (rst2 == 1'b1)

  q <= 1'b0;

 else

  q <= d; 

end

หรือคุณอาจสร้าง OR rst1 และ rst2 นอก Always โครงสร้างได้

ข้อจํากัดนี้จะได้รับการแก้ไขในซอฟต์แวร์ Quartus II เวอร์ชันในอนาคต

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

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

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

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