เนื่องจากปัญหากับวงจรตรวจจับฮาร์ดล็อกของอุปกรณ์ Arria® 10 แบบ Fractional PLL (fPLL) fPLL อาจรายงานสภาพปลดล็อคเมื่อใช้โหมด "ความแม่นยํา k" เป็นเสี้ยว
เมื่อ fPLL อยู่ในโหมดเสี้ยวหนึ่ง ค่าตัวนับความคิดเห็นจะเป็นฟังก์ชันของ M และ K(pll_dsm_fractional_division) สูตรคือ "M (จํานวนเต็ม) K/2^32" ค่าทางกฎหมายของ K คือ 1 ถึง 2^32-1
"K Factor" หมายถึง "pll_dsm_fractional_division/2^32"
เมื่อ K Factor น้อยกว่า 0.1 หรือมากกว่า 0.9 วงจรตรวจจับฮาร์ดล็อก fPLL จะไม่น่าเชื่อถือ
เมื่อ K Factor อยู่ระหว่าง 0.1 และ 0.9 วงจรตรวจจับฮาร์ดล็อก fPLL จะเชื่อถือได้
ตัว อย่าง เช่น
ตัวอย่างด้านล่างอธิบายถึงArriaวงจรตรวจจับการล็อก fPLL 10 ตัวเมื่อใดและไม่น่าเชื่อถือ
Refclk (ความถี่) = 100MHz
ตัวนับ N = 1
เคาน์เตอร์ M = 40
เคาน์เตอร์ K (pll_dsm_fractional_division) = 2147483648
เคาน์เตอร์ L = 4
เอาต์พุต PLL (ความถี่) = ( refclk (ความถี่) / N) * ( ( M ( K / 2^32) ) / L )
ในกรณีนี้
เอาต์พุต PLL (ความถี่) = 100 * ( ( 40 ( 2147483648 / 2^32) ) / 4 )
= 100 * ( ( 40 0.5 ) / 4)
= 100 * ( 40.5 / 4 )
= 100 * 10.125
= 1012.5 MHz
เนื่องจากค่าเศษส่วนคือ 0.5 (2147483648 / 2^32 โดยมี K = 2147483648) และอยู่ระหว่าง 0.1 และ 0.9 สัญญาณการล็อกจึงเชื่อถือได้
เมื่อค่าเป็นเศษส่วนน้อยกว่า 0.1 หรือมากกว่า 0.9 สัญญาณล็อก fPLL จะไม่น่าเชื่อถือ ในกรณีนี้ คุณสามารถสร้างอินสแตนซ์ตรรกะการตรวจจับซอฟต์ IP Lock ต่อไปนี้
ดาวน์โหลดไฟล์ soft_lockppm_det.zip นี้
ไฟล์ soft_lckppm_det.v ได้รับการเข้ารหัสแล้ว แต่สามารถใช้สําหรับการสังเคราะห์ การจําลอง และการทดสอบฮาร์ดแวร์ได้
รายการพอร์ตและคําอธิบายของไฟล์วงจรตรวจจับซอฟต์ล็อกมีด้านล่าง
ชื่อพอร์ต | อินพุต/เอาต์พุต | คำ อธิบาย |
ref_clk | อินพุต | อินพุตสัญญาณนาฬิกาอ้างอิงสําหรับ fpll |
clk_low | อินพุต | สัญญาณนาฬิกาต่ําจาก fpll, สลับเสมอ ความถี่อาจปิด reg เอาต์พุตpll_locked |
dead_ref_clk | ผลลัพธ์ | ระบุว่า CLK อ้างอิงไม่สลับเร็วพอและถือว่าตายแล้ว ขีดจํากัดเริ่มต้นจะถูกกําหนดโดยพารามิเตอร์โมดูล PPM_THRESHOLD_FOR_DEAD_CLK |
calibration_done | อินพุต | cal_doneจาก fpll ถือได้ว่าเป็นการรีเซ็ตรอง |
config_en | อินพุต | เปิดใช้งานพอร์ตการกําหนดค่า |
config_clk | อินพุต | การกําหนดค่านาฬิกาของพอร์ต |
config_data | อินพุต | ข้อมูลพอร์ตการกําหนดค่า เมื่อconfig_enมีค่าสูง ข้อมูลจะถูกสุ่มตัวอย่างที่ขอบของconfig_clkที่เพิ่มขึ้นและเปลี่ยนเป็นการลงทะเบียนภายในที่จัดเก็บเกณฑ์สําหรับสภาพการล็อกและนาฬิกาที่ตายแล้ว ความกว้างของการลงทะเบียนจะถูกกําหนดโดยCLK_LOW_CNT_WIDTHพารามิเตอร์โมดูล ดังนั้นรอบทั้งหมดจึงจําเป็นต้องเปลี่ยนไปใช้ข้อมูลทั้งหมดคือรอบCLK_LOW_CNT_WIDTH 2* การทํางานที่เปลี่ยนไปเริ่มที่ LSB ของการลงทะเบียนสําหรับเงื่อนไขการล็อก หลังจากรอบCLK_LOW_CNT_WIDTH 2* มูลค่าของconfig_dataจะกลายมาเป็น MSB ของการลงทะเบียนสําหรับเงื่อนไขdead_lock |
รี เซ็ต | อินพุต | รีเซ็ตจาก fpll |