เมื่อคุณกําหนดค่าช่องสัญญาณตัวรับส่งสัญญาณ Stratix® II GX ในโปรโตคอล SONET OC12 ที่มีอินพุตสัญญาณนาฬิกา 155.52 MHz จากพิน Refclk เฉพาะ ซอฟต์แวร์ Quartus® II จะไม่สร้างอินสแตนซ์ Pre-divider refclk ที่จําเป็นเพื่อเรียกใช้ช่องสัญญาณที่อัตราข้อมูล SONET OC12 (622 Mbps) เนื่องจาก refclk pre-divider ไม่ได้สร้างอินสแตนซ์ ช่องสัญญาณ SONET OC12 จึงทํางานที่อัตราข้อมูลสองเท่า (1244 Mbps)
ปัญหานี้เกิดขึ้นเฉพาะในซอฟต์แวร์ Quartus II เวอร์ชั่น 7.0, 7.1, และ 7.1 SP1 เท่านั้นและได้รับการแก้ไขเริ่มต้นด้วยซอฟต์แวร์ Quartus II เวอร์ชั่น 7.2
มีสองวิธีในการแก้ไขปัญหานี้ในซอฟต์แวร์ Quartus II เวอร์ชั่น 7.0, 7.1 และ 7.1 SP1 ขึ้นอยู่กับการออกแบบ การแก้ไขปัญหาชั่วคราว 1 ใช้สําหรับการออกแบบที่ใช้คุณสมบัติการกําหนดค่าแชนแนลแบบไดนามิกและ TXPLL (เปิดใช้งานโดยตัวเลือก การกําหนดค่าแชนแนลและ TX PLL ใหม่ ในปลั๊กอิน ALT2GXB MegaWizard®) การแก้ไขปัญหาชั่วคราว 2 ใช้สําหรับการออกแบบที่ใช้การกําหนดค่าแชนเนลใหม่แบบไดนามิก (เปิดใช้งานโดยตัวเลือก ใช้ตัวเลือกนาฬิกาอ้างอิงสํารองในหน้า กําหนดค่าใหม่ ของปลั๊กอิน ALT2GXB MegaWizard) หรือไม่ได้ใช้การกําหนดค่าใหม่แบบไดนามิกใดๆ
วิธีแก้ไขปัญหาชั่วคราว 1 - สําหรับการออกแบบที่ใช้คุณสมบัติการกําหนดค่าช่องสัญญาณแบบไดนามิกและ TXPLL ใหม่ในซอฟต์แวร์ Quartus II เวอร์ชั่น 7.0, 7.1 และ 7.1 SP1
ในไฟล์ห่อหุ้มที่สร้างขึ้นโดย MegaWizard สําหรับโปรโตคอล SONET OC12 alt2gxb ให้ปรับเปลี่ยน enable_pll_inclk<x>_divider
พารามิเตอร์ (โดยที่ x คือ 0,1,2,3 หรือ 4) ไปยัง true
สําหรับอินพุตนาฬิกาที่เกี่ยวข้องที่เชื่อมต่อกับพิน refclk ที่ให้ความถี่สัญญาณนาฬิกา 155.52 MHz ตัวอย่างเช่น หากอินพุตสัญญาณนาฬิกา 1 ในอินสแตนซ์ SONET OC12 ALT2GXB MegaWizard เชื่อมต่อกับพิน Refclk ที่ให้สัญญาณนาฬิกา 155.52 MHz ให้ตั้งค่า enable_pll_inclk1_divider
เป็น true
การเปลี่ยนแปลงนี้ช่วยให้ซอฟต์แวร์ Quartus II สร้าง refclk pre-divider สําหรับอินพุต Clock1 เมื่อคุณคอมไพล์อินสแตนซ์ alt2gxb ที่แก้ไขแล้ว
enable_pll_inclk<x>_divider
เปลี่ยนพารามิเตอร์เป็นtrue
ในไฟล์ห่อหุ้ม alt2gxb MegaWizard ที่สร้างขึ้นสําหรับอินสแตนซ์ทั้งหมดที่เชื่อมต่อกับอินพุตสัญญาณนาฬิกา 155.52 MHz เดียวกัน ตัวอย่างเช่น หากพอร์ตอินพุต Clock2 ของอินสแตนซ์ alt2gxb อื่น ๆ เชื่อมต่อกับพิน refclk ที่ให้ 155.52 MHz เปลี่ยนenable_pll_inclk2_divider
เป็น true
ในไฟล์ห่อหุ้มที่เกี่ยวข้อง
หลังจากที่คุณทําการปรับเปลี่ยนข้างต้นแล้ว ให้สร้างไฟล์ Memory Initialization (. mif) สําหรับอินสแตนซ์ที่แก้ไขทั้งหมด
หากต้องการจําลองการออกแบบ ให้สร้างไฟล์จําลองโมเดลตัวรับส่งสัญญาณ (.vo สําหรับ Verilog HDL, .vho for VHDL) ด้วย Quartus II EDA Netlist Writer แทนการใช้ปลั๊กอิน alt2gxb MegaWizard คุณต้องใช้ EDA Netlist Writer เนื่องจากโมเดลการจําลองการทํางานที่สร้างขึ้นโดยปลั๊กอิน alt2gxb MegaWizard ไม่มี enable_pll_inclk_divider
พารามิเตอร์ EDA Netlist Writer สร้าง Pre-divider refclk ในไฟล์แบบจําลองการจําลอง (.vo หรือ .vho) ใช้ขั้นตอนต่อไปนี้เพื่อสร้างไฟล์แบบจําลองการจําลอง:
- ในเมนู การมอบหมาย ให้เลือก การตั้งค่า
- ภายใต้ การตั้งค่าเครื่องมือ EDA ให้เลือก การจําลอง
- เลือก ชื่อเครื่องมือ สําหรับเครื่องมือการจําลองของบริษัทอื่น
- ในรายการ รูปแบบสําหรับเอาต์พุตเน็ตลิสต์ ให้เลือก VHDL หรือ Verilog ตามความต้องการของคุณ
- ในฟิลด์ ไดเรกทอรีเอาต์พุต ให้ระบุไดเรกทอรีสําหรับไฟล์ .vo หรือ .vho
- คลิก การตั้งค่าเพิ่มเติม และตั้งค่า สร้าง netlist สําหรับการจําลองการทํางานเป็น เปิด เท่านั้น
- คอมไพล์โมดูลระดับบนสุดของการออกแบบของคุณที่มี alt2gxb และอินสแตนซ์alt2gxb_reconfig
- หมายเหตุ: คุณต้องเชื่อมต่อ
reconfig_fromgxb
พอร์ตและreconfig_togxb
ระหว่าง alt2gxb และอินสแตนซ์ alt2gxb_reconfig ไม่เช่นนั้น ซอฟต์แวร์ Quartus II จะลบพอร์ตเหล่านี้ออก และไฟล์แบบจําลองการจําลอง .vo หรือ .vho ที่สร้างขึ้นจะไม่ทํางานตามที่คาดไว้
วิธีแก้ไขปัญหาชั่วคราว 2 - สําหรับการออกแบบที่ใช้การกําหนดค่าแชนแนลแบบไดนามิกหรืออย่าใช้การกําหนดค่าใหม่แบบไดนามิกในซอฟต์แวร์ Quartus II เวอร์ชัน 7.0, 7.1 และ 7.1 SP1
เพิ่มโค้ด Verilog ต่อไปนี้ในการออกแบบของคุณเพื่อเพิ่ม refclk pre-divider เชื่อมต่อพอร์ตอินพุตของอินสแตนซ์ pre-divider refclk เข้ากับพิน refclk ที่ให้อินพุตสัญญาณนาฬิกา 155.52 MHz เชื่อมต่อพอร์ตเอาต์พุตเข้ากับอินสแตนซ์ alt2gxb ทั้งหมด ที่ใช้อินพุตสัญญาณนาฬิกา 155.52 MHz นี้
//refclk divider Verilog code for Workaround 2
module my_refclk_div(in, out);
input in;
output out;
stratixiigx_hssi_refclk_divider my_refclk_divider (
.inclk(in),
.clkout(out));
defparam my_refclk_divider.enable_divider = "true";
defparam my_refclk_divider.divider_number = 0;
defparam my_refclk_divider.refclk_coupling_termination = "normal_100_ohm_termination";
endmodule
หากการออกแบบของคุณมีอินสแตนซ์ของแชนแนลตัวรับส่งสัญญาณอื่นๆ ที่ใช้อินพุตสัญญาณนาฬิกา 155.52 MHz จากพิน refclk เดียวกันกับอินสแตนซ์ SONET OC12 alt2gxb ให้เปลี่ยนการตั้งค่า ความถี่สัญญาณนาฬิกาอินพุตเป็น 77.76 MHz ในหน้า ทั่วไป ของปลั๊กอิน alt2gxb MegaWizard
ขั้นตอนนี้จําเป็นเนื่องจากช่องสัญญาณใดๆ ที่ใช้อินพุตสัญญาณนาฬิกา 155.52 MHz เดียวกันจะได้รับความถี่สัญญาณนาฬิกาอ้างอิงอินพุต 77.76 MHz เมื่อเพิ่ม refclk pre-divider ลงในพาธนาฬิกา ตัวอย่างเช่น หากคุณกําหนดค่าช่องสัญญาณใดๆ ในโหมด BASIC ให้ทํางานที่ 2488 Mbps โดยใช้อินพุตสัญญาณนาฬิกา 155.52 MHz เดียวกัน ให้ตั้งค่า ความถี่อินพุตเป็น 77.76 MHz คืออะไร
หากเปิดใช้งานคุณสมบัติการกําหนดค่าแชนแนลใหม่ ให้สร้างไฟล์เริ่มต้นหน่วยความจํา ( mif) สําหรับอินสแตนซ์ที่แก้ไขทั้งหมด
คุณสามารถใช้ไฟล์แบบจําลองการจําลอง (.vo หรือ .vho) ที่สร้างขึ้นโดยปลั๊กอิน ALT2GXB MegaWizard เพื่อจําลองการออกแบบ