คุณอาจเห็นพินเอาต์พุตผู้ใช้เข้าสู่สถานะที่ไม่คาดคิดระหว่างขั้นตอนการเตรียมใช้งานในอุปกรณ์ Intel® Arria® 10
ทั้งนี้เนื่องจากตรรกะผู้ใช้และพิน I/O ผู้ใช้จะถูกเปิดใช้งานแบบค่อยเป็นค่อยไป ไม่ใช่ในเวลาเดียวกันระหว่างขั้นตอนการเริ่มต้น
ตัวอย่างแสดงไว้ด้านล่าง ( ภาพตัวอย่าง )
- พินอินพุตผู้ใช้จะเชื่อมต่อกับพอร์ตชุดที่ใช้งานต่ําของการลงทะเบียน
- พินอินพุตของผู้ใช้นี้จะถูกเก็บไว้ต่ําจากโหมดเพิ่มพลังงานจนถึงโหมดผู้ใช้
- พอร์ตเอาต์พุตข้อมูลจากเครื่องบันทึกข้อมูลจะเชื่อมต่อกับพินเอาต์พุตของผู้ใช้
คาดว่าพินเอาต์พุตของผู้ใช้จะอยู่ในระดับสูง เนื่องจากพิน I/O ผู้ใช้อยู่ในสถานะ tri-state อินพุตโดยมีการดึงขึ้นที่อ่อนแอในระหว่างขั้นตอนการกําหนดค่าและสถานะการเตรียมใช้งาน และคาดว่าการลงทะเบียนจะถูกตั้งค่าให้สูงโดยพอร์ตที่ตั้งไว้ในโหมดผู้ใช้
แต่ใช้พินลอจิกและ I/O ผู้ใช้จะเปิดใช้งานทีละน้อยในระหว่างขั้นตอนการเตรียมใช้งาน เมื่อรีจิสเตอร์และพินเอาต์พุตผู้ใช้ถูกเปิดใช้งานเร็วกว่าพอร์ตอินพุตและสถานะเริ่มต้นของรีจิสเตอร์ต่ํา พินเอาต์พุตจะแพร่กระจายต่ําจากการลงทะเบียนจนกว่าพอร์ตอินพุตจะถูกเรียกใช้งาน และพอร์ตชุดของรีจิสเตอร์จะต่ํา
เมื่ออุปกรณ์ภายนอกตรวจสอบเอาต์พุตจากอุปกรณ์ Intel Arria 10 สถานะที่ไม่คาดคิดระหว่างขั้นตอนการเริ่มต้นอาจส่งผลต่อพฤติกรรมของอุปกรณ์ภายนอก
หากต้องการแก้ไขปัญหานี้ ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้
- การแก้ไขปัญหาที่ 1: ทําให้อุปกรณ์ภายนอกละเว้นสถานะของพินผลลัพธ์ของผู้ใช้จนกว่าพิน INIT_DONE จะสูง (รูปภาพการแก้ไขปัญหาที่ 1)
- การแก้ไขปัญหาที่ 2: รักษาสถานะอินพุตให้อุปกรณ์ภายนอกอย่างถูกต้องโดยใช้ตรรกะภายนอกจนกว่าพิน INIT_DONE จะสูง (รูปภาพการแก้ไขปัญหาที่ 2)
- การแก้ไขปัญหาที่ 3: รักษาสถานะเอาต์พุตของอุปกรณ์ Arria 10 ไว้โดยใช้ตรรกะผู้ใช้จนกว่าสัญญาณINIT_DONEภายในจะอยู่ในระดับสูง (รูปภาพการแก้ไขปัญหาที่ 3)
คุณสามารถใช้สัญญาณINIT_DONEภายในกับการสร้างอินสแตนซ์ WYSIWYG ต่อไปนี้
<< Verilog >>
twentynm_controller u1 ( .initdonecore();
>> VHDL <<
twentynm_controllerส่วนประกอบคือ
พอร์ต (initdonecore: out STD_LOGIC );
ส่วนประกอบสิ้นสุด;
u1 : twentynm_controller
แผนที่พอร์ต ( initdonecore => );