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

สามารถใช้ PLL สําหรับ TX และ RX ร่วมกันโดยใช้คอร์ SPI 4.2 ในอุปกรณ์ IV GX ES Stratixได้หรือไม่

สิ่งแวดล้อม

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย

ได้ คุณสามารถแชร์ PLL ได้โดยใช้ฟังก์ชัน Altera® SPI 4.2 MegaCore® ในอุปกรณ์ Stratix® IV GX การแชร์ PLL กับคอร์ SPI 4.2 ระหว่างการส่ง (TX) และการรับ (RX) มีความซับซ้อนมากขึ้นสําหรับ Stratix IV GX ES นอกเหนือจากอุปกรณ์FPGAอื่นๆ

ความผิดปกติของ ALTLVDS ของคอร์ SPI 4.2 สําหรับ Stratix IV GX ES ไม่รองรับการแชร์ภายในของ PLL สําหรับ Tx และ Rx การทําให้ไม่ถูกต้องของ DPA ใช้เวลานานกว่าที่คาดไว้อย่างมากในการเลือกเฟสที่เหมาะสม ซึ่งจะทําให้เฟสที่ไม่เหมาะและส่งผลให้เกิดข้อผิดพลาดด้านบิตข้อมูลแม้ว่าหลังจากที่มีการยืนยันสัญญาณล็อก DPA แล้วก็ตาม การรีเซ็ตวงจร DPA จะทําให้เกิดปัญหานี้เช่นกัน

หากต้องการเปิดใช้งานการแชร์ PLL โปรดทําตามขั้นตอนด้านล่างตามการตั้งค่าทีละขั้นตอน :

1. ตรวจสอบ "ใช้ PLL ภายนอก" ในแท็บการตั้งค่าพารามิเตอร์ของฟังก์ชัน ALTLVDS

2. ยกเลิกการเลือก "ใช้ PLL ที่ใช้ร่วมกันสําหรับตัวรับสัญญาณและตัวส่งสัญญาณ" ในแท็บการตั้งค่า Frequency/PLL ของฟังก์ชัน ALTLVDS Megafunction

3. ตรวจสอบ "เปิดใช้งานการปรับเทียบ PLL" ในแท็บการตั้งค่า DPA ที่ 3 ของฟังก์ชันเมกะฟังก์ชัน ALTLVDS

4. ดําเนินการตัวจัดการปลั๊กอิน Megawizard และสร้างฟังก์ชัน ALTPLL ใช้ความถี่ในการป้อนสัญญาณนาฬิกาและเกรดความเร็วอุปกรณ์ที่เหมาะสมตามการกําหนดค่าของระบบ เลือก Left_Right PLL

4-1. ในแท็บการกําหนดค่า PLL ใหม่ ภายใต้การกําหนดค่าเฟสแบบไดนามิก ให้เลือก "สร้างอินพุตเพิ่มเติมสําหรับการกําหนดค่าเฟสแบบไดนามิก"

4-2. ในแท็บนาฬิกาออก - clk c0 ให้ป้อนความถี่สัญญาณนาฬิกาเอาต์พุต (สัญญาณนาฬิกาเร็วที่ทํางานที่อัตราข้อมูล LVDS) นาฬิกานี้จะป้อนrx_inclockและtx_inclock ตั้งค่า Phase Shift = -180 องศาในส่วนที่เกี่ยวข้องกับนาฬิกา VCO ตั้งค่าวงจรหน้าที่เป็น 50% เลือก "ใช้การตั้งค่านาฬิกาเหล่านี้สําหรับนาฬิกา DPA"

4-3. ในแท็บนาฬิกาเอาต์พุต - clk c1 ให้ป้อนความถี่สัญญาณนาฬิกา Ouput (ตัวประกอบสัญญาณนาฬิกา / ดีซีเรียลไลเซชันอย่างรวดเร็ว) ป้อนเอาต์พุตสัญญาณนาฬิกานี้เพื่อtx_enableและrx_enable ตั้งค่าการเปลี่ยนเฟสเป็น [(ปัจจัยการดีซีเรียลไลเซชัน - 2) / ปัจจัยการดีซีเรียลไลเซชัน] * 360 องศา ตั้งค่ารอบหน้าที่เป็น (100 / ปัจจัยการดีซีเรียลไลเซชัน)

4-4. ในแท็บนาฬิกาออก - clk c2 ให้ป้อนความถี่สัญญาณนาฬิกาเอาต์พุต (ตัวประกอบสัญญาณนาฬิกา / ดีซีเรียลไลเซชันอย่างรวดเร็ว) ป้อนเอาต์พุตสัญญาณนาฬิกานี้ไปยังrx_syncclock ตั้งค่าการเปลี่ยนเฟสเป็น (-180 degress / deserialization factor) ตั้งค่าวงจรหน้าที่เป็น 50%

Figure 1 

รูปภาพที่ 1 PLL ไปยังรูปแบบการตอกบัตร LVDS

5. ทําการเปลี่ยนแปลงโมดูลคอร์ SPI4.2 Rx

5-1. ในชื่อรูปแบบต่างๆ _rx_core.v ให้แทนที่การสร้างอินสแตนซ์ของชื่อรูปแบบต่างๆ _rx_data_phy_altlvdsด้วยการสร้างอินสแตนซ์ด้านล่าง :

ชื่อรูปแบบต่างๆ _rx_data_phy_altlvds rx_data_phy_altlvds (

.pll_areset(pll_areset),
.pll_phasedone (phasedone),
.rx_cda_reset({lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset},
.rx_channel_data_align (bitslip),
.rx_enable (rx_enable)
.rx_fifo_reset({lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset})
.rx_in (rx_in)
.rx_inclock(rx_inclock),
.rx_reset({lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset, lvds_reset}), // input [16:0],
.rx_syncclock (rx_syncclock)
.dpa_pll_cal_busy (dpa_pll_cal_busy)
.pll_phasecounterselect (phasecounterselect),
.pll_phasestep (phasestep),
.pll_phaseupdown (การยุติการทํางาน)
.pll_scanclk (scanclk),
.rx_dpa_locked (stat_rd_dpa_lvds_locked)
.rx_out (rx_out_serdes) );

5-2. ในชื่อรูปแบบ .v ( ตัวห่อคอร์ SPI4.2 Rx) รวมถึงการสร้างอินสแตนซ์ต่อไปนี้:

ชื่อรูปแบบต่างๆ _pl4_rx_core _pl4_rx_core_inst (

...

.rx_inclock(rx_inclock),
.rx_enable (rx_enable)
.rx_syncclock (rx_syncclock)
.dpa_pll_cal_busy (dpa_pll_cal_busy)
.phasecounterselect (phasecounterselect),
.phasestep (phasestep),
.phaseupdown (เฟสดาวน์),
.scanclk (scanclk),
.phasedone (phasedone),

...);

6. ทําการเปลี่ยนแปลงโมดูล SPI4.2 Tx Core :

6-1. ในชื่อรูปแบบต่างๆ _tx_core.v ให้แทนที่การสร้างอินสแตนซ์ของชื่อรูปแบบต่างๆ _tx_data_phy_altlvdsด้วยการสร้างอินสแตนซ์ด้านล่าง :

ชื่อรูปแบบต่างๆ _tx_data_phy_altlvds tx_data_phy_altlvds (

.tx_enable(tx_enable), //อินพุต
.tx_in(tx_in_i), //อินพุต
.tx_inclock (tx_inclock),/อินพุต
.tx_coreclk (tx_coreclk)
.tx_out(tx_out), //เอาต์พุต
.tx_outclock(tx_outclock) //เอาต์พุต );

6-2. ใน .v ( ตัวห่อคอร์ SPI4.2 Tx) รวมถึงการสร้างอินสแตนซ์ต่อไปนี้ :

ชื่อรูปแบบต่างๆ _pl4_tx_core _pl4_tx_core_inst (

...

.trefclk (trefclk),
.tx_enable (tx_enable)
.tx_coreclk (tx_coreclk)

... );

7. เอาต์พุตบัส rx_out ตัวรับสัญญาณ SPI4.2 จะลงทะเบียนกับrx_outclock

8. บัส tx_in ตัวส่งสัญญาณ SPI4.2 ALTLVDS จะต้องลงทะเบียนกับ tx_coreclockล่วงหน้า

9. แปลงเอาต์พุตการล็อก PLL ที่ใช้ร่วมกันและป้อนให้กับพอร์ต pll_areset ของฟังก์ชัน ALTLVDS

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

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

Stratix® IV GX FPGA

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