Intel ได้ระบุปัญหาในการจําลองการทํางานและฮาร์ดแวร์สําหรับอุปกรณ์ Stratix® IV เมื่อใช้คุณสมบัติการกําหนดค่าใหม่แบบไดนามิก Multi-PLL คุณสมบัติ Multi-PLL นี้ช่วยให้คุณสามารถกําหนดค่าช่องรับส่งสัญญาณใหม่เพื่อฟัง PLL ตัวส่งสัญญาณเพิ่มเติมที่อยู่นอกบล็อกตัวรับส่งสัญญาณ
เมื่อคุณใช้คุณสมบัตินี้ในการจําลองการทํางาน คุณอาจสังเกตได้ว่า เมื่อคุณเปลี่ยนจาก PLL ตัวส่งสัญญาณภายในบล็อกตัวรับส่งสัญญาณเป็นตัวส่งสัญญาณ PLL (CMU/ATX) ที่อยู่นอกบล็อกตัวรับส่งสัญญาณ ความถี่ tx_clkout ไม่ถูกต้อง ในฮาร์ดแวร์ ซอฟต์แวร์ Quartus® II ไม่ผสาน PLL ตัวส่งสัญญาณระหว่างหลายอินสแตนซ์ตามที่คาดไว้
อธิบายปัญหานี้เพิ่มเติมเกี่ยวกับตัวอย่างต่อไปนี้: พิจารณาการออกแบบที่มีข้อกําหนดต่อไปนี้
- ช่องสัญญาณเดียว (แสดงเป็นตัวเลข) ที่ทํางานที่อัตราข้อมูล OTU1 (2.666 Gbps)
- ช่องสัญญาณเดียว (B แสดงในรูปภาพ) ที่สามารถสลับระหว่าง OTU1, Fibre Channel 4G (4.25G) และ SONET OC48 (2.488 Gbps)
- สมมติฐานว่าช่องสัญญาณทั้งสองข้างต้นจําเป็นต้องใส่ไว้ในบล็อกตัวรับส่งสัญญาณที่แตกต่างกันสองบล็อก
ในการปรับใช้การออกแบบนี้ คุณต้องสร้างอินสแตนซ์ ALTGX สองอินสแตนซ์ทันทีตามที่แสดงด้านล่างและใช้คุณสมบัติการกําหนดค่า PLL ใหม่ (ตัวเลือก - "ใช้ CMU/ATX PLL เพิ่มเติม..." ในหน้าจอการตั้งค่าการกําหนดค่าใหม่ของ ALTGX Megawizard™)
- ALTGX Instance 1: มีช่อง A, Main PLL เป็น PLL2 ทํางานที่ 2666 Mbps
- อินสแตนซ์ ALTGX 2: มีช่อง B, Main PLL เป็น PLL0 (0 เป็นดัชนีอ้างอิงเชิงตรรกะของ PLL) ที่ทํางานที่ 4250 Mbps, PLL เพิ่มเติมเป็น PLL1 ที่ทํางานที่ 2488.32 Mbps และ PLL2 ทํางานที่ 2666 Mbps
ในทั้งสองอินสแตนซ์ ALTGX ให้ใช้จํานวนสัญญาณนาฬิกาอ้างอิงอินพุตเท่าเดิม ซึ่งจําเป็นจะต้องแชร์ PLL2 ระหว่างสองอินสแตนซ์ตามที่อธิบายไว้ในขั้นตอนที่ 3 ด้านล่าง
สําหรับการกําหนดค่าการออกแบบนี้ จําเป็นต้องมี PLL เพียงสามตัวเท่านั้นเพื่อให้บรรลุเป้าหมายดังที่แสดงไว้ในรูปภาพที่ 1:
รูปภาพที่ 1.สถานการณ์การออกแบบตัวอย่างการกําหนดค่า PLL ใหม่หลายรูปแบบ
ปัญหาในการจําลองการทํางาน:
ในการจําลองการทํางานเมื่อคุณเปลี่ยนจาก PLL0 เป็น PLL2 โดยใช้โหมด 'การกําหนดค่าแชนแนลใหม่กับโหมด TX PLL select' คุณจะพบว่าความถี่ tx_clkout ไม่ถูกต้อง วิธีแก้ปัญหาต่อไปนี้
หาก CMU PLL เป็น 'บล็อกตัวรับส่งสัญญาณภายนอก PLL' :
- ทําการกําหนดค่า TX PLL ใหม่บน 'บล็อกตัวรับส่งสัญญาณภายนอก' ( PLL2) แล้ว
- ดําเนินการ 'Channel and TX PLL select' บนช่องสัญญาณที่ต้องการ (ช่องสัญญาณ B) เพื่อสลับไปยัง 'บล็อกตัวรับส่งสัญญาณภายนอก PLL' นี้
หาก ATX PLL เป็น 'บล็อกตัวรับส่งสัญญาณภายนอก PLL' :
- ไม่รองรับการกําหนดค่าใหม่สําหรับ ATX PLL
- ทําให้ ATX PLL (PLL2) เป็น PLL หลักของคุณ (PLL ตั้งต้นที่ช่องรับฟัง) จากนั้น
- สลับไปที่ CMU PLL (PLL0) ภายในบล็อกตัวรับส่งสัญญาณและด้านหลัง
ปัญหาในฮาร์ดแวร์
ซอฟต์แวร์ QII ไม่ผสาน PLL2 ระหว่างสองอินสแตนซ์ที่ไม่ถูกต้อง
หากต้องการผสาน PLL2 ของอินสแตนซ์ ALTGX ทั้งสองไว้ในตําแหน่ง PLL ตัวส่งสัญญาณทางกายภาพเดียว ให้ทําตามขั้นตอนต่อไปนี้
1) สร้างการตั้งค่า กลุ่มกําหนดค่า PLL ใหม่ GXB TX ในเครื่องมือแก้ไขการมอบหมายและกําหนดค่าเดียวกัน (เช่น 0 หรือ 1, 2,ฯลฯ) สําหรับtx_dataoutของทั้งสองอินสแตนซ์
2) กําหนดตําแหน่งของ TX PLL ด้วยตนเองที่ส่งสัญญาณนาฬิกาไปยังช่องสัญญาณภายนอกบล็อกตัวรับส่งสัญญาณ ในตัวอย่างนี้คือ PLL2 ขั้นตอนด้านล่างแสดงวิธีการกําหนดตําแหน่งด้วยตนเอง
- เลือก PLL ตัวส่งสัญญาณ GXB จาก ส่วนทรัพยากร ของตัวเลือก Fitter ใน รายงานการคอมไพล์ คุณสามารถดูข้อมูลโหนด PLL ของตัวส่งสัญญาณสําหรับ PLL ทั้งหมดที่ใช้ในการออกแบบ
- สําหรับ PLL2 คุณสามารถดูการบ้านสองตําแหน่งสําหรับโหนดเดียวกัน (ตัวอย่าง:tx_pll_edge0)
- ใช้หนึ่งในสองตําแหน่งสําหรับ tx_pll_edge0 และมอบหมายด้วยตนเองในเครื่องมือแก้ไขการมอบหมายตามที่แสดงในรูปภาพที่ 2
รูปภาพที่ 2.การกําหนด PLL ของตัวส่งสัญญาณด้วยตนเอง
สําหรับข้อมูลเกี่ยวกับตําแหน่งทางกายภาพของ PLL ที่เกี่ยวข้องกับพิกัด x, y โปรดดู AN578: การจัดวาง CMU PLLs และ ATX PLL ด้วยตนเองในอุปกรณ์ Stratix IV GX และอุปกรณ์ GT
3) ทําให้พารามิเตอร์ 'txplledge.inclk<>' เหมือนกันในอินสแตนซ์ ALTGX โดยการปรับเปลี่ยนไฟล์ห่อหุ้ม
สําหรับสถานการณ์ตัวอย่างนี้ ไฟล์ตัวห่อหุ้มอินสแตนซ์ 2 จะแสดงพารามิเตอร์ต่อไปนี้
tx_pll_edge0.inclk0_input_period = 9412,
tx_pll_edge0.inclk1_input_period = 6430,
tx_pll_edge0.inclk2_input_period = 6002,
ไฟล์ห่อหุ้มอินสแตนซ์ 1 จะแสดงพารามิเตอร์ต่อไปนี้
tx_pll_edge0.inclk0_input_period = 0
tx_pll_edge0.inclk1_input_period = 0
tx_pll_edge0.inclk2_input_period = 6002,
ซอฟต์แวร์ QII ไม่สามารถผสาน PLL2 ของทั้งสองอินสแตนซ์ได้ เมื่อมีความไม่ตรงกันระหว่างพารามิเตอร์สัญญาณนาฬิกาอ้างอิงอินพุต (INCLK INPUT PERIOD)
ดังนั้นให้ระบุ tx_pll_edge<> พารามิเตอร์จากอินสแตนซ์2 ที่มีจํานวน PLL สูงสุดและรวมไว้ในห่อสําหรับ instance1 ต่อไปนี้คือการเปลี่ยนแปลงที่จําเป็นในอินสแตนซ์1
tx_pll_edge0.inclk0_input_period = 9412,
tx_pll_edge0.inclk1_input_period = 6430,
tx_pll_edge0.inclk2_input_period = 6002,
3) คอมไพล์การออกแบบและสังเกต PLL ตัวส่งสัญญาณ GXB จาก ส่วนทรัพยากร ของตัวเลือก Fitter ใน รายงานการคอมไพล์
ตอนนี้คุณจะเห็นว่า PLL ตัวส่งสัญญาณจากสองอินสแตนซ์ถูกผสานรวมไว้ในตําแหน่งทางกายภาพเดียว (ตัวอย่าง:HSSIPLL_X119_Y10_N135)