เนื่องจากปัญหากับตัวแปร Altera® Hard IP สําหรับ PCI® Express ที่ใช้ Soft Reset Controller (SRC) อาจทําให้ไม่สามารถรีเซ็ตได้ภายในเวลาที่กําหนด
หมายเหตุ: การออกแบบ Gen2 ใน Quartus รีลีส 13.1 หรือใหม่กว่า และการออกแบบ Gen 3 ทั้งหมดสําหรับอุปกรณ์ Stratix® V และ Arria® V GZ จําเป็นต้องใช้ SRC อุปกรณ์อื่นๆ ไม่ได้ใช้ SRC
ลําดับสําหรับ Hot Reset มีดังนี้:
- โฮสต์ PCIe เริ่มการรีเซ็ตแบบ Hot Reset และเข้าสู่สถานะ Hot Reset
- Hard IP เข้าสู่สถานะ Hot Reset ของ It\'s
- เมื่อโฮสต์ PCIe ออกจากสถานะ Hot Reset ของ Hard IP ควรอยู่ในสถานะ Hot Reset สําหรับ 2ms เพิ่มเติม แล้วออกจาก Detect.Quiet ตามข้อกําหนด PCIe
อย่างไรก็ตาม ในการออกแบบที่ใช้ SRC การหมดเวลา 2ms จะเริ่มต้นใหม่ถ้าตัวรับสลับ locked_to_data บนเลนที่ใช้งานอยู่ หากมีเสียงรบกวนมากเกินไปบนเลนใดๆ ตัวรับอาจสลับ locked_to_data ได้ การสลับ locked_to_data แต่ละครั้งทําให้ตัวนับ 2ms รีสตาร์ทอาจตลอดไปโดยอาจปล่อยให้ Hard IP อยู่ในสถานะการรีเซ็ตที่ร้อนตลอดเวลา
เพื่อหลีกเลี่ยงปัญหานี้ ให้ทําตามขั้นตอนต่อไปนี้
เปิดไฟล์ altpcie_rs_serdes.v,
ค้นหาและแสดงความคิดเห็นเกี่ยวกับรหัสด้านล่าง
dl_ltssm_r <= ltssm;
dl_ltssm_rr <= dl_ltssm_r;
ถ้า ((dl_ltssm_r == 5\'h14) & (rx_signaldetect_sync[7:0]==8\'h0) & (hotreset_cnt>20\'h0))
hotreset_cnt <= hotreset_cnt-20\'h1;
สิ้น สุด
อื่น ๆ เริ่ม
hotreset_cnt <= (test_sim=1\'b1)?20\'h10:(rc_inclk_eq_125mhz=1\'b1)?20\'h3D091:20\'h7A121;
สิ้น สุด
hotreset_2ms <= (hotreset_cnt==20\'h1)?1\'b1:1\'b0;
แทรกบรรทัดต่อไปนี้:
dl_ltssm_r <= ltssm;
dl_ltssm_rr <= dl_ltssm_r;
if((dl_ltssm_r == 5\'h14) & (dl_ltssm_rr != 5\'h14) เริ่มต้น
hotreset_cnt <= (test_sim=1\'b1)?20\'h10:(rc_inclk_eq_125mhz=1\'b1)?20\'h3D091:20\'h7A121;
สิ้น สุด
if(hotreset_2ms == 1\'b1) เริ่มต้น
exits_hotreset <= 1\'b0;
สิ้น สุด
อื่นๆ ถ้า ((dl_ltssm_r == 5\'h14) & (rx_signaldetect_sync[7:0]==8\'h0))
exits_hotreset <= 1\'b1;
สิ้น สุด
ถ้า ((exits_hotreset == 1\'b1) & (hotreset_cnt > 20\'h0)) เริ่มต้น
hotreset_cnt <= hotreset_cnt-20\'h1;
สิ้น สุด
hotreset_2ms <= (hotreset_cnt==20\'h1)?1\'b1:1\'b0;