โลโก้ไมโครเซมิสมาร์ทฟิวชั่น2
คอนโทรลเลอร์ DDR และคอนโทรลเลอร์ความเร็วสูงแบบอนุกรม
วิธีการเริ่มต้น
คู่มือการใช้งาน

การแนะนำ

เมื่อสร้างการออกแบบโดยใช้อุปกรณ์ SmartFusion2 หากคุณใช้หนึ่งในสองคอนโทรลเลอร์ DDR (FDDR หรือ MDDR) หรือบล็อก Serial High speed Controller (SERDESIF) ใด ๆ คุณต้องเริ่มต้นการลงทะเบียนการกำหนดค่าของบล็อกเหล่านี้ในขณะรันไทม์ก่อน สามารถใช้งานได้ สำหรับอดีตampสำหรับคอนโทรลเลอร์ DDR คุณต้องตั้งค่าโหมด DDR (DDR3/DDR2/LPDDR), ความกว้าง PHY, โหมดถ่ายภาพต่อเนื่อง และ ECC
ในทำนองเดียวกัน สำหรับบล็อก SERDESIF ที่ใช้เป็นจุดปลาย PCIe คุณต้องตั้งค่าหน้าต่าง PCIE BAR เป็น AXI (หรือ AHB)
เอกสารนี้อธิบายขั้นตอนที่จำเป็นในการสร้างการออกแบบ Libero ซึ่งจะเริ่มต้นคอนโทรลเลอร์ DDR และบล็อก SERDESIF โดยอัตโนมัติเมื่อเปิดเครื่อง นอกจากนี้ยังอธิบายวิธีสร้างรหัสเฟิร์มแวร์จาก Libero SOC ที่ใช้ในโฟลว์การออกแบบแบบฝัง
คำอธิบายโดยละเอียดของทฤษฎีการดำเนินการมีให้ก่อน
ส่วนถัดไปจะอธิบายวิธีสร้างการออกแบบดังกล่าวโดยใช้ Libero SoC System Builder ซึ่งเป็นเครื่องมือออกแบบอันทรงพลังที่สร้างโซลูชัน 'initialization' ให้กับคุณ หากคุณใช้บล็อก DDR หรือ SERDESIF ในการออกแบบของคุณ
ส่วนถัดไปจะอธิบายวิธีการรวมโซลูชัน 'การเริ่มต้น' ที่สมบูรณ์เข้าด้วยกันโดยไม่ต้องใช้ SmartFusion2 System Builder ข้อมูลนี้ช่วยอธิบายสิ่งที่ต้องทำหากคุณไม่ต้องการใช้ System Builder และยังอธิบายถึงสิ่งที่เครื่องมือ System Builder สร้างให้คุณ ที่อยู่ในส่วนนี้:

  • การสร้างข้อมูลการกำหนดค่าสำหรับคอนโทรลเลอร์ DDR และการลงทะเบียนการกำหนดค่า SERDESIF
  • การสร้างลอจิก FPGA ที่จำเป็นในการถ่ายโอนข้อมูลการกำหนดค่าไปยังการลงทะเบียนการกำหนดค่า ASIC ที่แตกต่างกัน

ในที่สุดเราก็อธิบายถึงสิ่งที่สร้างขึ้น fileเกี่ยวข้องกับ:

  • การสร้างโซลูชัน 'การเริ่มต้น' ของเฟิร์มแวร์
  • การจำลองการออกแบบสำหรับโซลูชั่น DDR 'initialization'

สำหรับรายละเอียดเกี่ยวกับคอนโทรลเลอร์ DDR และการลงทะเบียนการกำหนดค่า SERDESIF โปรดดูที่ คู่มือผู้ใช้อินเทอร์เฟซซีเรียลและ DDR ความเร็วสูง Microsemi SmartFusion2

ทฤษฎีการดำเนินงาน

โซลูชันการกำหนดค่าเริ่มต้นอุปกรณ์ต่อพ่วงใช้ส่วนประกอบหลักดังต่อไปนี้:

  • ฟังก์ชัน CMSIS SystemInit() ซึ่งทำงานบน Cortex-M3 และเตรียมกระบวนการเริ่มต้น
  • ซอฟต์คอร์ CoreConfigP ซึ่งเริ่มต้นการลงทะเบียนการกำหนดค่าอุปกรณ์ต่อพ่วง
  • ซอฟต์คอร์ CoreResetP ซึ่งจัดการลำดับการรีเซ็ตของ MSS, ตัวควบคุม DDR และบล็อก SERDESIF

กระบวนการเริ่มต้นอุปกรณ์ต่อพ่วงทำงานดังนี้:

  1. เมื่อรีเซ็ต Cortex-M3 จะเรียกใช้ฟังก์ชัน CMSIS SystemInit() ฟังก์ชันนี้จะดำเนินการโดยอัตโนมัติก่อนที่ฟังก์ชัน main() ของแอปพลิเคชันจะถูกดำเนินการ
    สัญญาณเอาต์พุต CoreResetP MSS_HPMS_READY ถูกยืนยันที่จุดเริ่มต้นของกระบวนการเริ่มต้น ซึ่งบ่งชี้ว่า MSS และอุปกรณ์ต่อพ่วงทั้งหมด (ยกเว้น MDDR) พร้อมสำหรับการสื่อสาร
  2. ฟังก์ชัน SystemInit() เขียนข้อมูลการกำหนดค่าไปยังตัวควบคุม DDR และการลงทะเบียนการกำหนดค่า SERDESIF ผ่านบัส MSS FIC_2 APB3 อินเทอร์เฟซนี้เชื่อมต่อกับคอร์ CoreConfigP แบบซอฟต์ที่สร้างอินสแตนซ์ในแฟบริค FPGA
  3. หลังจากกำหนดค่ารีจิสเตอร์ทั้งหมดแล้ว ฟังก์ชัน SystemInit() จะเขียนไปยังรีจิสเตอร์ควบคุม CoreConfigP เพื่อระบุขั้นตอนการกำหนดค่ารีจิสเตอร์เสร็จสิ้น สัญญาณเอาต์พุต CoreConfigP CONFIG1_DONE และ CONIG2_DONE จะถูกยืนยัน
    การกำหนดค่าการลงทะเบียนมีสองขั้นตอน (CONFIG1 และ CONFIG2) ขึ้นอยู่กับอุปกรณ์ต่อพ่วงที่ใช้ในการออกแบบ
  4. หากใช้ MDDR/FDDR อย่างใดอย่างหนึ่งหรือทั้งสองอย่างและไม่มีการใช้บล็อก SERDESIF ในการออกแบบ จะมีเพียงขั้นตอนการกำหนดค่ารีจิสเตอร์เดียวเท่านั้น ทั้งสัญญาณเอาต์พุต CoreConfigP CONFIG1_DONE และ CONIG2_DONE จะถูกยืนยันทีละสัญญาณโดยไม่รอ/หน่วงเวลา
    หากใช้บล็อก SERDESIF ตั้งแต่หนึ่งบล็อกขึ้นไปในโหมดที่ไม่ใช่ PCIe ในการออกแบบ จะมีการกำหนดค่ารีจิสเตอร์เพียงเฟสเดียวเท่านั้น CONFIG1_DONE และ CONIG2_DONE ถูกยืนยันทีละรายการโดยไม่รอ/ล่าช้า
    หากใช้ SERDESIF ตั้งแต่หนึ่งบล็อกขึ้นไปในโหมด PCIe ในการออกแบบ จะมีการกำหนดค่าการลงทะเบียนสองขั้นตอน CONFIG1_DONE ได้รับการยืนยันหลังจากขั้นตอนแรกของการกำหนดค่าการลงทะเบียนเสร็จสมบูรณ์ ระบบ SERDESIF และการลงทะเบียนช่องทางได้รับการกำหนดค่าในขั้นตอนนี้ หาก SERDESIF ได้รับการกำหนดค่าในโหมดที่ไม่ใช่ PCIE สัญญาณ CONFIG2_DONE จะถูกยืนยันในทันทีเช่นกัน
  5. ขั้นตอนที่สองของการกำหนดค่าการลงทะเบียนจะตามมา (หาก SERDESIF ได้รับการกำหนดค่าในโหมด PCIE) ต่อไปนี้เป็นเหตุการณ์ต่าง ๆ ที่เกิดขึ้นในระยะที่สอง:
    – CoreResetP ยกเลิกการยืนยันสัญญาณ PHY_RESET_N และ CORE_RESET_N ที่สอดคล้องกับแต่ละบล็อก SERDESIF ที่ใช้ นอกจากนี้ยังยืนยันสัญญาณเอาต์พุต SDIF_RELEASED หลังจากที่บล็อก SERDESIF ทั้งหมดไม่ได้รีเซ็ต สัญญาณ SDIF_RELEASED นี้ใช้เพื่อระบุกับ CoreConfigP ว่าแกน SERDESIF ไม่ได้รีเซ็ตและพร้อมสำหรับการกำหนดค่ารีจิสเตอร์เฟสที่สอง
    – เมื่อสัญญาณ SDIF_RELEASED ถูกยืนยันแล้ว ฟังก์ชัน SystemInit() จะเริ่มการสำรวจสำหรับการยืนยัน PMA_READY บนเลน SERDESIF ที่เหมาะสม เมื่อยืนยัน PMA_READY แล้ว ชุดที่สองของ SERDESIF register (PCIE register) จะถูกกำหนดค่า/เขียนโดยฟังก์ชัน SystemInit()
  6. หลังจากกำหนดค่ารีจิสเตอร์ PCIE ทั้งหมดแล้ว ฟังก์ชัน SystemInit() จะเขียนไปยังรีจิสเตอร์ควบคุม CoreConfigP เพื่อระบุขั้นตอนที่สองของการกำหนดค่ารีจิสเตอร์เสร็จสิ้น สัญญาณเอาต์พุต CoreConfigP CONIG2_DONE จะถูกยืนยัน
  7. นอกเหนือจากการยืนยัน/ยกเลิกการยืนยันสัญญาณข้างต้นแล้ว CoreResetP ยังจัดการการเริ่มต้นของบล็อกต่างๆ โดยทำหน้าที่ต่อไปนี้:
    – ยกเลิกการยืนยันการรีเซ็ตแกน FDDR
    – การยกเลิกการยืนยัน SERDESIF จะบล็อกการรีเซ็ต PHY และ CORE
    – การตรวจสอบสัญญาณล็อค FDDR PLL (FPLL) ต้องล็อก FPLL เพื่อรับประกันว่าอินเทอร์เฟซข้อมูล FDDR AXI/AHBLite และแฟบริค FPGA สามารถสื่อสารได้อย่างถูกต้อง
    – การตรวจสอบสัญญาณล็อค SERDESIF block PLL (SPLL) SPLL ต้องมีการล็อกเพื่อรับประกันว่า SERDESIF บล็อกอินเทอร์เฟซ AXI/AHBLite (โหมด PCIe) หรืออินเทอร์เฟซ XAUI สามารถสื่อสารได้อย่างถูกต้องกับแฟบริค FPGA
    – รอให้หน่วยความจำ DDR ภายนอกตกลงและพร้อมให้คอนโทรลเลอร์ DDR เข้าถึง
  8. เมื่ออุปกรณ์ต่อพ่วงทั้งหมดเสร็จสิ้นการเริ่มต้น CoreResetP จะยืนยันสัญญาณ INIT_DONE; จากนั้นยืนยันการลงทะเบียนภายใน CoreConfigP INIT_DONE
    หากมีการใช้ MDDR/FDDR อย่างใดอย่างหนึ่งหรือทั้งสองอย่าง และถึงเวลาเริ่มต้น DDR แล้ว สัญญาณเอาต์พุต CoreResetP DDR_READY จะถูกยืนยัน สามารถตรวจสอบการยืนยันสัญญาณ DDR_READY นี้เป็นตัวบ่งชี้ว่า DDR (MDDR/FDDR) พร้อมสำหรับการสื่อสาร
    หากใช้บล็อก SERDESIF ตั้งแต่หนึ่งบล็อกขึ้นไป และขั้นตอนที่สองของการกำหนดค่ารีจิสเตอร์เสร็จสมบูรณ์ สัญญาณเอาต์พุต CoreResetP SDIF_READY จะถูกยืนยัน สามารถตรวจสอบการยืนยันสัญญาณ SDIF_READY นี้เป็นตัวบ่งชี้ว่าบล็อก SERDESIF ทั้งหมดพร้อมสำหรับการสื่อสาร
  9. ฟังก์ชัน SystemInit() ซึ่งกำลังรอให้ INIT_DONE ยืนยัน เสร็จสิ้น และเรียกใช้ฟังก์ชัน main() ของแอปพลิเคชัน ในขณะนั้น คอนโทรลเลอร์ DDR และบล็อก SERDESIF ที่ใช้ทั้งหมดได้รับการเตรียมใช้งานแล้ว และแอปพลิเคชันเฟิร์มแวร์และตรรกะแฟบริคของ FPGA สามารถสื่อสารกับสิ่งเหล่านั้นได้อย่างน่าเชื่อถือ

วิธีการที่อธิบายไว้ในเอกสารนี้ใช้ Cortex-M3 ในการดำเนินการกระบวนการเริ่มต้น ซึ่งเป็นส่วนหนึ่งของรหัสการเริ่มต้นระบบที่ดำเนินการก่อนฟังก์ชัน main() ของแอปพลิเคชัน
ดูผังงานในรูปที่ 1-1, รูปที่ 1-2 และรูปที่ 1-3 สำหรับขั้นตอนการเริ่มต้นของ FDDR/MDDR, SEREDES (โหมด non-PCIe) และ SERDES (โหมด PCIe)
รูปที่ 1-4 แสดงไดอะแกรมระยะเวลาเริ่มต้นของอุปกรณ์ต่อพ่วง

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - แผนภาพเวลา 1 Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - แผนภาพเวลา 2

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - แผนภาพเวลา 3Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - แผนภาพเวลา 4รูปที่ 1-3 • SERDESIF (PCIe) Initialization Flow Chart
ขั้นตอนการเริ่มต้นที่อธิบายไว้ในเอกสารนี้กำหนดให้คุณต้องเรียกใช้ Cortex-M3 ในระหว่างกระบวนการเริ่มต้น แม้ว่าคุณจะไม่ได้วางแผนที่จะเรียกใช้โค้ดใดๆ บน Cortex-M3 ก็ตาม คุณต้องสร้างแอปพลิเคชันเฟิร์มแวร์พื้นฐานที่ไม่ทำอะไรเลย (เช่น การวนซ้ำอย่างง่ายample) และโหลดที่เรียกใช้งานได้ในหน่วยความจำแบบไม่ลบเลือน (eNVM) ที่ฝังอยู่ ดังนั้นตัวควบคุม DDR และบล็อก SERDESIF จึงเริ่มต้นได้เมื่อบูต Cortex-M3

การใช้ตัวสร้างระบบเพื่อสร้างการออกแบบโดยใช้บล็อก DDR และ SERDESIF

SmartFusion2 System Builder เป็นเครื่องมือออกแบบอันทรงพลังที่ช่วยให้คุณบันทึกข้อกำหนดระดับระบบและสร้างการออกแบบที่ดำเนินการตามข้อกำหนดเหล่านั้น หน้าที่ที่สำคัญมากของ System Builder คือการสร้างระบบย่อย Peripheral Initialization โดยอัตโนมัติ “การใช้ SmartDesign เพื่อสร้างการออกแบบโดยใช้บล็อก DDR และ SERDESIF” ในหน้า 17 อธิบายรายละเอียดวิธีสร้างโซลูชันดังกล่าวโดยไม่ต้องใช้ตัวสร้างระบบ
หากคุณใช้ System Builder คุณต้องดำเนินการต่อไปนี้เพื่อสร้างการออกแบบที่เตรียมใช้งานคอนโทรลเลอร์ DDR และบล็อก SERDESIF เมื่อเปิดเครื่อง:

  1. ในหน้าคุณสมบัติอุปกรณ์ (รูปภาพ 2-1) ให้ระบุคอนโทรลเลอร์ DDR ที่ใช้และจำนวนบล็อก SERDESIF ที่ใช้ในการออกแบบของคุณ
  2. ในหน้าหน่วยความจำ ให้ระบุประเภทของ DDR (DDR2/DDR3/LPDDR) และข้อมูลการกำหนดค่าสำหรับหน่วยความจำ DDR ภายนอกของคุณ ดูส่วนหน้าหน่วยความจำสำหรับรายละเอียด
  3. ในหน้าอุปกรณ์ต่อพ่วง เพิ่มแฟบริคมาสเตอร์ที่กำหนดค่าเป็น AHBLite/AXI ไปยังระบบย่อย Fabric DDR และ/หรือระบบย่อย MSS DDR FIC (ทางเลือก)
  4. ในหน้าการตั้งค่านาฬิกา ให้ระบุความถี่สัญญาณนาฬิกาสำหรับระบบย่อย DDR
  5. กรอกข้อกำหนดการออกแบบของคุณแล้วคลิกเสร็จสิ้น สิ่งนี้สร้างการออกแบบที่สร้างโดย System Builder รวมถึงตรรกะที่จำเป็นสำหรับโซลูชัน 'การเริ่มต้น'
  6. หากคุณกำลังใช้บล็อก SERDESIF คุณต้องสร้างอินสแตนซ์ของบล็อก SERDESIF ในการออกแบบของคุณและเชื่อมต่อพอร์ตการกำหนดค่าเริ่มต้นกับพอร์ตของแกนที่สร้างขึ้นโดย System Builder

หน้าคุณสมบัติอุปกรณ์ตัวสร้างระบบ
ในหน้าคุณสมบัติอุปกรณ์ ให้ระบุตัวควบคุม DDR (MDDR และ/หรือ FDDR) ที่ใช้และจำนวนบล็อก SERDESIF ที่ใช้ในการออกแบบของคุณ (รูปที่ 2-1)

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - หน้าคุณสมบัติของอุปกรณ์รูปที่ 2-1 • หน้าคุณสมบัติอุปกรณ์ตัวสร้างระบบ

หน้าหน่วยความจำตัวสร้างระบบ
หากต้องการใช้ MSS DDR (MDDR) หรือ Fabric DDR (FDDR) ให้เลือกประเภทหน่วยความจำจากรายการดรอปดาวน์ (รูปที่ 2-2)

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - หน่วยความจำภายนอกรูปที่ 2-2 • MSS หน่วยความจำภายนอก

คุณจะต้อง:

  1. เลือกประเภท DDR (DDR2, DDR3 หรือ LPDDR)
  2. กำหนดเวลาการตั้งค่าหน่วยความจำ DDR ดูข้อมูลจำเพาะของหน่วยความจำ DDR ภายนอกของคุณเพื่อตั้งเวลาการตั้งค่าหน่วยความจำที่ถูกต้อง หน่วยความจำ DDR อาจล้มเหลวในการเริ่มต้นอย่างถูกต้อง หากไม่ได้ตั้งค่าเวลาในการตั้งค่าหน่วยความจำอย่างถูกต้อง
  3. นำเข้าข้อมูลการกำหนดค่าการลงทะเบียน DDR หรือตั้งค่าพารามิเตอร์หน่วยความจำ DDR ของคุณ สำหรับรายละเอียด โปรดดูที่ คู่มือผู้ใช้อินเทอร์เฟซซีเรียลและ DDR ความเร็วสูง Microsemi SmartFusion2.

ข้อมูลนี้ใช้เพื่อสร้าง DDR register BFM และการกำหนดค่าเฟิร์มแวร์ fileตามที่อธิบายไว้ใน “การสร้างและคอมไพล์แอปพลิเคชันเฟิร์มแวร์” ในหน้า 26 และ “BFM Fileใช้สำหรับจำลองการออกแบบ” ในหน้า 27 สำหรับรายละเอียดเกี่ยวกับการลงทะเบียนการกำหนดค่าคอนโทรลเลอร์ DDR โปรดดูที่ คู่มือผู้ใช้อินเทอร์เฟซซีเรียลและ DDR ความเร็วสูง Microsemi SmartFusion2
อดีตampไฟล์การกำหนดค่า file ไวยากรณ์แสดงในรูปที่ 2-3 ชื่อทะเบียนที่ใช้ในการนี้ file เหมือนกับที่อธิบายไว้ใน คู่มือผู้ใช้อินเทอร์เฟซซีเรียลและ DDR ความเร็วสูง Microsemi SmartFusion2

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - File ไวยากรณ์ เช่นampleรูปที่ 2-3 • การกำหนดค่า File ไวยากรณ์ เช่นample
หน้าอุปกรณ์ต่อพ่วงตัวสร้างระบบ
ในหน้าอุปกรณ์ต่อพ่วง สำหรับคอนโทรลเลอร์ DDR แต่ละตัว จะมีการสร้างระบบย่อยแยกต่างหาก (ระบบย่อย Fabric DDR สำหรับ FDDR และ MSS DDR FIC Subsystem สำหรับ MDDR) คุณสามารถเพิ่ม Fabric AMBA Master (กำหนดค่าเป็นแกน AXI/AHBLite) ให้กับระบบย่อยแต่ละระบบเพื่อให้สามารถเข้าถึง Fabric Master ไปยังตัวควบคุม DDR ได้ เมื่อมีการสร้าง System Builder จะสร้างอินสแตนซ์ของบัสคอร์โดยอัตโนมัติ (ขึ้นอยู่กับประเภทของ AMBA Master ที่เพิ่มเข้ามา) และแสดง BIF หลักของบัสคอร์และนาฬิกาและรีเซ็ตพินของระบบย่อยที่สอดคล้องกัน (FDDR/MDDR) ภายใต้กลุ่มพินที่เหมาะสม ไปยัง สูงสุด. สิ่งที่คุณต้องทำคือเชื่อมต่อ BIF กับแกน Fabric Master ที่เหมาะสมซึ่งคุณจะต้องสร้างอินสแตนซ์ในการออกแบบ ในกรณีของ MDDR คุณสามารถเลือกเพิ่ม Fabric AMBA Master core ไปยังระบบย่อย MSS DDR FIC ได้ Cortex-M3 เป็นต้นแบบเริ่มต้นในระบบย่อยนี้ รูปที่ 2-4 แสดงหน้า System Builder Peripherals

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - Builder Peripherals Pageรูปที่ 2-4 • หน้า System Builder Peripherals

หน้าการตั้งค่านาฬิกาของตัวสร้างระบบ
ในหน้าการตั้งค่านาฬิกา สำหรับคอนโทรลเลอร์ DDR แต่ละตัว คุณต้องระบุความถี่สัญญาณนาฬิกาที่เกี่ยวข้องกับแต่ละระบบย่อย DDR (MDDR และ/หรือ FDDR)
สำหรับ MDDR คุณต้องระบุ:

  • MDDR_CLK – นาฬิกานี้กำหนดความถี่ในการทำงานของคอนโทรลเลอร์ DDR และควรตรงกับความถี่สัญญาณนาฬิกาที่คุณต้องการให้หน่วยความจำ DDR ภายนอกของคุณทำงาน นาฬิกานี้ถูกกำหนดให้เป็นหลายส่วนของ M3_CLK (Cortex-M3 และ MSS Main Clock, รูปที่ 2-5) MDDR_CLK ต้องน้อยกว่า 333 MHz
  • DDR_FIC_CLK – หากคุณเลือกที่จะเข้าถึง MDDR จากโครงสร้าง FPGA ด้วย คุณต้องระบุ DDR_FIC_CLK ความถี่สัญญาณนาฬิกานี้กำหนดเป็นอัตราส่วนของ MDDR_CLK และควรตรงกับความถี่ที่ระบบย่อยแฟบริค FPGA ที่เข้าถึง MDDR กำลังทำงานอยู่

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - นาฬิกา MDDRรูปที่ 2-5 • Cortex-M3 และ MSS Main Clock; นาฬิกา MDDR

สำหรับ FDDR คุณต้องระบุ:

  • FDDR_CLK – กำหนดความถี่ในการทำงานของตัวควบคุม DDR และควรตรงกับความถี่สัญญาณนาฬิกาที่คุณต้องการให้หน่วยความจำ DDR ภายนอกทำงาน โปรดทราบว่านาฬิกานี้ถูกกำหนดให้เป็นหลายส่วนของนาฬิกา M3_CLK (นาฬิกา MSS และ Cortex-M3, รูปที่ 2-5) FDDR_CLK ต้องอยู่ภายใน 20 MHz และ 333 MHz
  • FDDR_SUBSYSTEM_CLK – ความถี่สัญญาณนาฬิกานี้กำหนดเป็นอัตราส่วนของ FDDR_CLK และควรตรงกับความถี่ที่ระบบย่อยโครงสร้าง FPGA ที่เข้าถึง FDDR กำลังทำงานอยู่

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - Fabric DDR Clocksรูปที่ 2-6 • นาฬิกา Fabric DDR
การกำหนดค่า SERDESIF
บล็อก SERDESIF ไม่ได้สร้างอินสแตนซ์ในการออกแบบที่สร้างโดย System Builder อย่างไรก็ตาม สำหรับบล็อก SERDESIF ทั้งหมด สัญญาณการเริ่มต้นจะมีให้ที่อินเทอร์เฟซของแกนตัวสร้างระบบ และสามารถเชื่อมต่อกับแกน SERDESIF ที่ระดับถัดไปของลำดับชั้น ดังแสดงในรูปที่ 2-7คอนโทรลเลอร์ Microsemi SmartFusion2 DDR และคอนโทรลเลอร์ความเร็วสูงแบบอนุกรม - การเชื่อมต่อการเริ่มต้นอุปกรณ์ต่อพ่วงรูปที่ 2-7 • SERDESIF Peripheral Initialization Connectivity
เช่นเดียวกับการลงทะเบียนการกำหนดค่า DDR แต่ละบล็อก SERDES ยังมีการลงทะเบียนการกำหนดค่าที่ต้องโหลดเมื่อรันไทม์ คุณสามารถนำเข้าค่ารีจิสเตอร์เหล่านี้หรือใช้ High Speed ​​Serial Interface Configurator (รูปภาพ 2-8) เพื่อป้อนพารามิเตอร์ PCIe หรือ EPCS และค่ารีจิสเตอร์จะคำนวณให้คุณโดยอัตโนมัติ สำหรับรายละเอียด โปรดดูที่ คู่มือผู้ใช้ตัวกำหนดค่า SERDES.Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - ตัวกำหนดค่าอินเทอร์เฟซแบบอนุกรมรูปที่ 2-8 • ตัวกำหนดค่าอินเทอร์เฟซแบบอนุกรมความเร็วสูง
เมื่อคุณรวมตรรกะผู้ใช้เข้ากับบล็อก System Builder และบล็อก SERDES แล้ว คุณจะสามารถสร้าง SmartDesign ระดับบนสุดได้ สิ่งนี้สร้าง HDL และ BFM ทั้งหมด fileที่จำเป็นในการนำไปใช้และจำลองการออกแบบของคุณ จากนั้น คุณสามารถดำเนินการกับส่วนที่เหลือของ Design Flow ได้

การใช้ SmartDesign เพื่อสร้างการออกแบบโดยใช้บล็อก DDR และ SERDESIF

ส่วนนี้อธิบายวิธีการรวมโซลูชัน 'การเริ่มต้น' ที่สมบูรณ์เข้าด้วยกันโดยไม่ต้องใช้ SmartFusion2 System Builder เป้าหมายคือเพื่อช่วยให้คุณเข้าใจว่าคุณต้องทำอะไร หากคุณไม่ต้องการใช้ System Builder ส่วนนี้ยังอธิบายถึงสิ่งที่เครื่องมือ System Builder สร้างให้กับคุณ ส่วนนี้อธิบายวิธีการ:

  • ป้อนข้อมูลการกำหนดค่าสำหรับคอนโทรลเลอร์ DDR และการลงทะเบียนการกำหนดค่า SERDESIF
  • สร้างอินสแตนซ์และเชื่อมต่อ Fabric Cores ที่จำเป็นในการถ่ายโอนข้อมูลการกำหนดค่าไปยังตัวควบคุม DDR และการลงทะเบียนการกำหนดค่า SERDESIF

การกำหนดค่าคอนโทรลเลอร์ DDR
ตัวควบคุม MSS DDR (MDDR) และ Fabric DDR (FDDR) ต้องได้รับการกำหนดค่าแบบไดนามิก (ที่รันไทม์) เพื่อให้ตรงกับข้อกำหนดการกำหนดค่าหน่วยความจำ DDR ภายนอก (โหมด DDR, ความกว้าง PHY, โหมดต่อเนื่อง, ECC เป็นต้น) ข้อมูลที่ป้อนในตัวกำหนดค่า MDDR/FDDR ถูกเขียนไปยังการลงทะเบียนการกำหนดค่าคอนโทรลเลอร์ DDR โดยฟังก์ชัน CMSIS SystemInit() Configurator มีสามแท็บที่แตกต่างกันสำหรับการป้อนข้อมูลการกำหนดค่าประเภทต่างๆ:

  • ข้อมูลทั่วไป (โหมด DDR, ความกว้างข้อมูล, ความถี่สัญญาณนาฬิกา, ECC, Fabric Interface, ความแรงของไดรฟ์)
  • ข้อมูลการเริ่มต้นหน่วยความจำ (Burst Length, Burst Order, Timing Mode, Latency ฯลฯ)
  • ข้อมูลเวลาหน่วยความจำ

โปรดดูข้อมูลจำเพาะของหน่วยความจำ DDR ภายนอกของคุณ และกำหนดค่าตัวควบคุม DDR ให้ตรงกับข้อกำหนดของหน่วยความจำ DDR ภายนอกของคุณ
สำหรับรายละเอียดเกี่ยวกับการกำหนดค่า DDR โปรดดูที่ คู่มือผู้ใช้การกำหนดค่า SmartFusion2 MSS DDR
การกำหนดค่า SERDESIF
คลิกสองครั้งที่บล็อก SERDES ในผืนผ้าใบ SmartDesign เพื่อเปิด Configurator เพื่อกำหนดค่า SERDES (รูปที่ 3-1) คุณสามารถนำเข้าค่ารีจิสเตอร์เหล่านี้หรือใช้ตัวกำหนดค่า SERDES เพื่อป้อนพารามิเตอร์ PCIe หรือ EPCS และค่ารีจิสเตอร์จะคำนวณให้คุณโดยอัตโนมัติ สำหรับรายละเอียด โปรดดูที่ คู่มือผู้ใช้ตัวกำหนดค่า SERDES.คอนโทรลเลอร์ Microsemi SmartFusion2 DDR และคอนโทรลเลอร์ความเร็วสูงแบบอนุกรม - ตัวกำหนดค่าอินเทอร์เฟซแบบอนุกรมความเร็วสูงรูปที่ 3-1 • ตัวกำหนดค่าอินเทอร์เฟซแบบอนุกรมความเร็วสูง
การสร้างระบบย่อยการเริ่มต้นการออกแบบ FPGA
ในการเริ่มต้นบล็อก DDR และ SERDESIF คุณต้องสร้างระบบย่อยการเริ่มต้นในโครงสร้าง FPGA ระบบย่อยการกำหนดค่าเริ่มต้นแฟบริค FPGA จะย้ายข้อมูลจาก Cortex-M3 ไปยังรีจิสเตอร์การกำหนดค่า DDR และ SERDESIF จัดการลำดับการรีเซ็ตที่จำเป็นเพื่อให้บล็อกเหล่านี้ทำงานได้ และส่งสัญญาณเมื่อบล็อกเหล่านี้พร้อมที่จะสื่อสารกับส่วนที่เหลือของการออกแบบของคุณ ในการสร้างระบบย่อยการเริ่มต้น คุณต้อง:

  • กำหนดค่า FIC_2 ภายใน MSS
  • สร้างอินสแตนซ์และกำหนดค่าคอร์ CoreConfigP และ CoreResetP
  • สร้างอินสแตนซ์ให้กับออสซิลเลเตอร์ RC 25/50MHz บนชิป
  • สร้างอินสแตนซ์มาโครการรีเซ็ตระบบ (SYSRESET)
  • เชื่อมต่อส่วนประกอบเหล่านี้เข้ากับอินเทอร์เฟซการกำหนดค่า นาฬิกา การรีเซ็ต และพอร์ตล็อค PLL ของอุปกรณ์ต่อพ่วง

MSS FIC_2 การกำหนดค่า APB
ในการกำหนดค่า MSS FIC_2:

  1. เปิดกล่องโต้ตอบตัวกำหนดค่า FIC_2 จากตัวกำหนดค่า MSS (รูปที่ 3-2)
  2. เลือก Initialize peripherals using Cortex-M3
  3. ขึ้นอยู่กับระบบของคุณ เลือกหนึ่งหรือทั้งสองกล่องกาเครื่องหมายต่อไปนี้:
    – เอ็มเอสเอส DDR
    – Fabric DDR และ/หรือ SERDES Blocks
  4. คลิก ตกลง และดำเนินการสร้าง MSS (คุณอาจเลื่อนการดำเนินการนี้ไปจนกว่าคุณจะกำหนดค่า MSS ให้ครบถ้วนตามข้อกำหนดการออกแบบของคุณ) พอร์ต FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK และ FIC_2_APB_M_RESET_N) ถูกเปิดเผยที่อินเทอร์เฟซ MSS และสามารถเชื่อมต่อกับคอร์ CoreConfigP และ CoreResetP

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - MSS FIC 2 Configuratorรูปที่ 3-2 • ตัวกำหนดค่า MSS FIC_2

CoreConfigP
ในการกำหนดค่า CoreConfigP:

  1. สร้างอินสแตนซ์ CoreConfigP ลงใน SmartDesign ของคุณ (โดยทั่วไปจะเป็นอินสแตนซ์ MSS)
    คอร์นี้สามารถพบได้ใน Libero Catalog (ใต้ Peripherals)
  2. คลิกสองครั้งที่แกนเพื่อเปิดตัวกำหนดค่า
  3. กำหนดค่าแกนเพื่อระบุว่าอุปกรณ์ต่อพ่วงใดจำเป็นต้องเริ่มต้น (รูปที่ 3-3)

คอนโทรลเลอร์ Microsemi SmartFusion2 DDR และคอนโทรลเลอร์ความเร็วสูงแบบอนุกรม - กล่องโต้ตอบรูปที่ 3-3 • กล่องโต้ตอบ CoreConfigP

CoreResetP
ในการกำหนดค่า CoreResetP:

  1. สร้างอินสแตนซ์ CoreResetP ลงใน SmartDesign ของคุณ (โดยทั่วไปจะเป็นอินสแตนซ์ที่สร้าง MSS)
    คอร์นี้สามารถพบได้ใน Libero Catalog ใต้ Peripherals
  2. คลิกสองครั้งที่แกนภายใน SmartDesign Canvas เพื่อเปิด Configurator (รูปที่ 3-4)
  3. กำหนดค่าแกนเป็น:
    – ระบุพฤติกรรมการรีเซ็ตภายนอก (ยืนยัน EXT_RESET_OUT) เลือกหนึ่งในสี่ตัวเลือก:
    o EXT_RESET_OUT ไม่เคยถูกยืนยัน
    o EXT_RESET_OUT ถูกยืนยันหากมีการยืนยันการรีเซ็ตพลังงาน (POWER_ON_RESET_N)
    o EXT_RESET_OUT ถูกยืนยัน ถ้า FAB_RESET_N ถูกยืนยัน
    o EXT_RESET_OUT ถูกยืนยันหากมีการรีเซ็ตพลังงาน (POWER_ON_RESET_N) หรือ FAB_RESET_N
    – ระบุ Device Voltagอี ค่าที่เลือกควรตรงกับปริมาตรtagที่คุณเลือกในกล่องโต้ตอบการตั้งค่าโครงการ Libero
    – เลือกช่องทำเครื่องหมายที่เหมาะสมเพื่อระบุว่าคุณใช้อุปกรณ์ต่อพ่วงใดในการออกแบบของคุณ
    – ระบุเวลาการตั้งค่าหน่วยความจำ DDR ภายนอก นี่คือค่าสูงสุดสำหรับหน่วยความจำ DDR ทั้งหมดที่ใช้ในแอปพลิเคชันของคุณ (MDDR และ FDDR) โปรดดูแผ่นข้อมูลผู้จำหน่ายหน่วยความจำ DDR ภายนอกเพื่อกำหนดค่าพารามิเตอร์นี้ 200us เป็นค่าเริ่มต้นที่ดีสำหรับหน่วยความจำ DDR2 และ DDR3 ที่ความเร็ว 200MHz นี่เป็นพารามิเตอร์ที่สำคัญมากในการรับประกันการจำลองการทำงานและระบบการทำงานบนซิลิกอน ค่าที่ไม่ถูกต้องสำหรับเวลาตกตะกอนอาจส่งผลให้เกิดข้อผิดพลาดในการจำลอง โปรดดูแผ่นข้อมูลผู้จำหน่ายหน่วยความจำ DDR เพื่อกำหนดค่าพารามิเตอร์นี้
    – สำหรับแต่ละบล็อก SERDES ในการออกแบบของคุณ ให้ทำเครื่องหมายในช่องที่เหมาะสมเพื่อระบุว่า:
    ใช้ PCIe
    o จำเป็นต้องรองรับ PCIe Hot Reset
    o จำเป็นต้องรองรับ PCIe L2/P2

บันทึก: หากคุณใช้ 090 die (M2S090) และการออกแบบของคุณใช้ SERDESIF คุณไม่จำเป็นต้องเลือกช่องทำเครื่องหมายใดๆ ต่อไปนี้: 'ใช้สำหรับ PCIe', 'รวมการสนับสนุน PCIe HotReset' และ 'รวมการสนับสนุน PCIe L2/P2' หากคุณใช้อุปกรณ์ที่ไม่ใช่ 090 และใช้บล็อก SERDESIF อย่างน้อยหนึ่งบล็อก คุณต้องทำเครื่องหมายในช่องทำเครื่องหมายทั้งสี่ช่องภายใต้ส่วน SERDESIF ที่เหมาะสม
บันทึก: สำหรับรายละเอียดเกี่ยวกับตัวเลือกที่มีให้คุณในตัวกำหนดค่านี้ โปรดดูที่คู่มือ CoreResetP

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - CoreResetPConfiguratorรูปที่ 3-4 • CoreResetPCConfigurator

การสร้างอินสแตนซ์ออสซิลเลเตอร์ 25/50MHz
CoreConfigP และ CoreResetP ถูกโอเวอร์คล็อกโดยออสซิลเลเตอร์ RC 25/50MHz บนชิป คุณต้องสร้างอินสแตนซ์ออสซิลเลเตอร์ 25/50MHz และเชื่อมต่อกับคอร์เหล่านี้

  1. สร้างอินสแตนซ์ของชิปออสซิลเลเตอร์คอร์ใน SmartDesign ของคุณ (โดยทั่วไปจะเป็นอินสแตนซ์ MSS) แกนหลักนี้สามารถพบได้ใน Libero Catalog ภายใต้ Clock & Management
  2. กำหนดค่าแกนนี้ให้ RC oscillator ขับเคลื่อนแฟบริค FPGA ดังแสดงในรูปที่ 3-5

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - ตัวกำหนดค่าออสซิลเลเตอร์รูปที่ 3-5 • ตัวกำหนดค่าชิปออสซิลเลเตอร์

การรีเซ็ตระบบ (SYSRESET) การสร้างอินสแตนซ์
มาโคร SYSRESET ให้ฟังก์ชันการรีเซ็ตระดับอุปกรณ์ในการออกแบบของคุณ สัญญาณเอาต์พุต POWER_ON_RESET_N ถูกกำหนด/ยกเลิกการยืนยันเมื่อใดก็ตามที่ชิปเปิดอยู่หรือพินภายนอก DEVRST_N ถูกยืนยัน/ยกเลิกการยืนยัน (รูปที่ 3-6)
สร้างอินสแตนซ์มาโคร SYSRESET ลงใน SmartDesign ของคุณ (โดยทั่วไปจะเป็นอินสแตนซ์ที่สร้าง MSS) มาโครนี้สามารถพบได้ใน Libero Catalog ภายใต้ Macro Library ไม่จำเป็นต้องกำหนดค่ามาโครนี้

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - SYSRESET Macroรูปที่ 3-6 • SYSRESET มาโคร

การเชื่อมต่อโดยรวม
หลังจากที่คุณสร้างอินสแตนซ์และกำหนดค่าแกน MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP และ CoreResetP ในการออกแบบของคุณแล้ว คุณต้องเชื่อมต่อแกนเหล่านี้เพื่อสร้างระบบย่อย Peripheral Initialization เพื่อลดความซับซ้อนของคำอธิบายการเชื่อมต่อในเอกสารนี้ จะแบ่งออกเป็นการเชื่อมต่อเส้นทางข้อมูลการกำหนดค่าที่สอดคล้องกับ APB3 ที่เชื่อมโยงกับการเชื่อมต่อที่เกี่ยวข้องกับ CoreConfigP และ CoreResetP
การเชื่อมต่อเส้นทางข้อมูลการกำหนดค่า
รูปที่ 3-7 แสดงวิธีการเชื่อมต่อ CoreConfigP กับสัญญาณ MSS FIC_2 และอินเทอร์เฟซการกำหนดค่าที่สอดคล้องกับ APB3 ของอุปกรณ์ต่อพ่วง
ตารางที่ 3-1 • คอนฟิกูเรชัน Data Path Port/การเชื่อมต่อ BIF

จาก
อินเทอร์เฟซพอร์ต/บัส
(BIF)/ ส่วนประกอบ
ถึง
พอร์ต/บัสอินเทอร์เฟซ (BIF)/ส่วนประกอบ
APB S พรีเซต N/ CoreConfigP APB S PRESET N/ SDIF<0/1/2/3> APB S พรีเซ็ต N/
เอฟดีดีอาร์
MDDR APB S PRESE TN/MSS
APB S PCLK/CoreConfigP APB S PCLK/SDIF บมจ.เอพีบีเอสแอลเค/FDDR MDDR APB S POLK/ MSS
MDDR APBmslave/CoreConfig MDDR APB ทาส (BIF)/MSS
SDIF<0/1/2/ 3> APBmslave/การกำหนดค่า ทาส APB (BIF)/ SDIF<0/1/2/3>
FDDR APBmslave ทาส APB (BIF)/ FDDR
FIC 2 APBmmaster/ CoreConfigP ฟิค 2 APB MASTER/MSS

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - การเชื่อมต่อระบบย่อยรูปที่ 3-7 • การเชื่อมต่อระบบย่อย FIC_2 APB3

นาฬิกาและรีเซ็ตการเชื่อมต่อ
รูปที่ 3-8 แสดงวิธีการเชื่อมต่อ CoreResetP กับแหล่งรีเซ็ตภายนอกและสัญญาณรีเซ็ตคอร์ของอุปกรณ์ต่อพ่วง นอกจากนี้ยังแสดงวิธีการเชื่อมต่อ CoreResetP กับสัญญาณสถานะการซิงโครไนซ์นาฬิกาของอุปกรณ์ต่อพ่วง (สัญญาณล็อค PLL) นอกจากนี้ยังแสดงให้เห็นว่า CoreConfigP และ CoreResetP เชื่อมต่อกันอย่างไร

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller - การเชื่อมต่อระบบย่อย 2รูปที่ 3-8 • Core SF2Reset Sub-System Connectivity

การสร้างและคอมไพล์แอปพลิเคชันเฟิร์มแวร์

เมื่อคุณส่งออกเฟิร์มแวร์จาก LiberoSoC (หน้าต่างขั้นตอนการออกแบบ > ส่งออกเฟิร์มแวร์ > ส่งออกเฟิร์มแวร์) Libero จะสร้างสิ่งต่อไปนี้ fileอยู่ใน /firmware/drivers_config/ โฟลเดอร์ sys_config:

  • sys_config.c – ประกอบด้วยโครงสร้างข้อมูลที่เก็บค่าสำหรับการลงทะเบียนอุปกรณ์ต่อพ่วง
  • sys_config.h – มี #define คำสั่งที่ระบุอุปกรณ์ต่อพ่วงที่ใช้ในการออกแบบและจำเป็นต้องเริ่มต้น
  • sys_config_mddr_define.h – มีข้อมูลการกำหนดค่าตัวควบคุม MDDR ที่ป้อนในกล่องโต้ตอบการกำหนดค่าการลงทะเบียน
  • sys_config_fddr_define.h – มีข้อมูลการกำหนดค่าตัวควบคุม FDDR ที่ป้อนในกล่องโต้ตอบการกำหนดค่ารีจิสเตอร์
  • sys_config_mss_clocks.h - นี้ file มีความถี่สัญญาณนาฬิกา MSS ตามที่กำหนดไว้ในตัวกำหนดค่า MSS CCC ความถี่เหล่านี้ถูกใช้โดยรหัส CMSIS เพื่อให้ข้อมูลนาฬิกาที่ถูกต้องแก่ไดรเวอร์ MSS จำนวนมากที่ต้องมีสิทธิ์เข้าถึงความถี่ Peripheral Clock (PCLK) (เช่น ตัวหารอัตราบอดของ MSS UART เป็นฟังก์ชันของอัตราบอดและความถี่ PCLK ).
  • sys_config_SERDESIF_ .ค – ประกอบด้วย SERDESIF_ ลงทะเบียนข้อมูลการกำหนดค่าที่ให้ไว้ระหว่าง SERDESIF_ การกำหนดค่าบล็อกในการสร้างการออกแบบ
  • sys_config_SERDESIF_ .ชม – มีคำสั่ง #define ที่ระบุจำนวนคู่การกำหนดค่ารีจิสเตอร์และหมายเลขเลนที่ต้องสำรวจสำหรับ PMA_READY (เฉพาะในโหมด PCIe)

เหล่านี้ files จำเป็นสำหรับโค้ด CMSIS ในการคอมไพล์อย่างถูกต้องและมีข้อมูลเกี่ยวกับการออกแบบปัจจุบันของคุณ รวมถึงข้อมูลการกำหนดค่าอุปกรณ์ต่อพ่วงและข้อมูลการกำหนดค่านาฬิกาสำหรับ MSS
อย่าแก้ไขสิ่งเหล่านี้ fileด้วยตนเอง; สิ่งเหล่านี้ถูกสร้างขึ้นในไดเร็กทอรีส่วนประกอบ/อุปกรณ์ต่อพ่วงที่สอดคล้องกันทุกครั้งที่มีการสร้างส่วนประกอบ SmartDesign ที่มีอุปกรณ์ต่อพ่วงที่เกี่ยวข้อง หากมีการเปลี่ยนแปลงใด ๆ กับข้อมูลการกำหนดค่าของอุปกรณ์ต่อพ่วงใด ๆ คุณต้องส่งออกโครงการเฟิร์มแวร์อีกครั้งเพื่อให้เฟิร์มแวร์ที่อัปเดต files (ดูรายการด้านบน) จะถูกส่งออกไปยัง / โฟลเดอร์ firmware/drivers_config/sys_config
เมื่อคุณส่งออกเฟิร์มแวร์ Libero SoC จะสร้างโครงการเฟิร์มแวร์: ไลบรารีที่กำหนดค่าการออกแบบของคุณ files และไดรเวอร์ถูกรวบรวม
หากคุณตรวจสอบสร้างโครงการ ช่องทำเครื่องหมายเมื่อคุณส่งออกเฟิร์มแวร์ โครงการซอฟต์แวร์ SoftConsole/IAR/Keil จะถูกสร้างขึ้นเพื่อเก็บโครงการแอปพลิเคชันซึ่งคุณสามารถแก้ไข main.c และผู้ใช้ C/H fileส. เปิดโปรเจ็กต์ SoftConSole/IAR/Keil เพื่อคอมไพล์โค้ด CMSIS อย่างถูกต้อง และกำหนดค่าแอปพลิเคชันเฟิร์มแวร์ของคุณอย่างเหมาะสมเพื่อให้ตรงกับการออกแบบฮาร์ดแวร์ของคุณ

บีเอฟเอ็ม Files ใช้สำหรับจำลองการออกแบบ

เมื่อคุณสร้างส่วนประกอบ SmartDesign ที่มีอุปกรณ์ต่อพ่วงที่เกี่ยวข้องกับการออกแบบของคุณ การจำลอง fileที่สอดคล้องกับอุปกรณ์ต่อพ่วงนั้นถูกสร้างขึ้นใน / ไดเร็กทอรีจำลอง:

  • ทดสอบ bfm - BFM ระดับบนสุด file ที่ดำเนินการครั้งแรกระหว่างการจำลองใดๆ ที่ใช้โปรเซสเซอร์ SmartFusion2 MSS Cortex-M3 มันรัน peripheral_init.bfm และ user.bfm ตามลำดับ
  • MDDR_init.bfm – หากการออกแบบของคุณใช้ MDDR Libero จะสร้างสิ่งนี้ file; มีคำสั่งเขียน BFM ที่จำลองการเขียนข้อมูลการลงทะเบียนการกำหนดค่า MSS DDR ที่คุณป้อน (โดยใช้กล่องโต้ตอบแก้ไขการลงทะเบียนหรือใน MSS_MDDR GUI) ลงในการลงทะเบียน MSS DDR Controller
  • FDDR_init.bfm – หากการออกแบบของคุณใช้ FDDR Libero จะสร้างสิ่งนี้ file; ประกอบด้วยคำสั่งเขียน BFM ที่จำลองการเขียนข้อมูลการลงทะเบียนการกำหนดค่า Fabric DDR ที่คุณป้อน (โดยใช้กล่องโต้ตอบแก้ไขการลงทะเบียนหรือใน FDDR GUI) ลงในการลงทะเบียน Fabric DDR Controller
  • SERDESIF_ _init.bfm – หากการออกแบบของคุณใช้บล็อก SERDESIF อย่างน้อยหนึ่งบล็อก Libero จะสร้างสิ่งนี้ file สำหรับแต่ละ SERDESIF_ บล็อกที่ใช้ มีคำสั่งเขียน BFM ที่จำลองการเขียนข้อมูลการลงทะเบียนการกำหนดค่า SERDESIF ที่คุณป้อน (โดยใช้กล่องโต้ตอบแก้ไขการลงทะเบียนหรือใน SERDESIF_ GUI) ลงใน SERDESIF_ ลงทะเบียน หากบล็อก SERDESIF ได้รับการกำหนดค่าเป็น PCIe สิ่งนี้ file นอกจากนี้ยังมี #define คำสั่งที่ควบคุมการดำเนินการของ 2 ขั้นตอนการกำหนดค่ารีจิสเตอร์ในลำดับที่สมบูรณ์แบบ
  • user.bfm - มีคำสั่งผู้ใช้ คำสั่งเหล่านี้จะดำเนินการหลังจาก peripheral_init.bfm เสร็จสิ้น แก้ไขสิ่งนี้ file เพื่อป้อนคำสั่ง BFM ของคุณ
  • SERDESIF_ _user.bfm - มีคำสั่งผู้ใช้ แก้ไขสิ่งนี้ file เพื่อป้อนคำสั่ง BFM ของคุณ ใช้สิ่งนี้หากคุณกำหนดค่า SERDESIF_ บล็อกในโหมดจำลอง BFM PCIe และในฐานะต้นแบบ AXI/AHBLite หากคุณได้กำหนดค่า SERDESIF_ บล็อกในโหมดจำลอง RTL คุณไม่จำเป็นต้องทำสิ่งนี้ file.

เมื่อคุณเรียกใช้การจำลองทุกครั้ง การจำลองสองครั้งต่อไปนี้ files ถูกสร้างขึ้นใหม่เพื่อ / ไดเร็กทอรีจำลองพร้อมเนื้อหาที่อัปเดต:

  • ระบบย่อย.bfm – มีคำสั่ง #define สำหรับอุปกรณ์ต่อพ่วงแต่ละชิ้นที่ใช้ในการออกแบบของคุณ ซึ่งระบุส่วนเฉพาะของ peripheral_init.bfm ที่จะดำเนินการตามอุปกรณ์ต่อพ่วงแต่ละชิ้น
  • โอเปอเรเตอร์_init.bfm – ประกอบด้วยขั้นตอน BFM ที่จำลอง CMSIS:: ฟังก์ชัน SystemInit() ที่ทำงานบน Cortex-M3 ก่อนที่คุณจะเข้าสู่ขั้นตอน main() โดยจะคัดลอกข้อมูลการกำหนดค่าสำหรับอุปกรณ์ต่อพ่วงใดๆ ที่ใช้ในการออกแบบไปยังรีจิสเตอร์การกำหนดค่าอุปกรณ์ต่อพ่วงที่ถูกต้อง จากนั้นรอให้อุปกรณ์ต่อพ่วงทั้งหมดพร้อมก่อนที่จะยืนยันว่าคุณสามารถใช้อุปกรณ์ต่อพ่วงเหล่านี้ได้ รัน MDDR_init.bfm และ FDDR_init.bfm

โดยใช้สิ่งเหล่านี้สร้างขึ้น files คอนโทรลเลอร์ DDR ในการออกแบบของคุณได้รับการกำหนดค่าโดยอัตโนมัติ โดยจำลองสิ่งที่จะเกิดขึ้นบนอุปกรณ์ SmartFusion2 คุณสามารถแก้ไข user.bfm file เพื่อเพิ่มคำสั่งใดๆ ที่จำเป็นในการจำลองการออกแบบของคุณ (Cortex-M3 เป็นโปรแกรมหลัก) คำสั่งเหล่านี้จะดำเนินการหลังจากเริ่มต้นอุปกรณ์ต่อพ่วงแล้ว ห้ามแก้ไข test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files และ SERDESIF_ _init.bfm files.

การสนับสนุนผลิตภัณฑ์

กลุ่มผลิตภัณฑ์ Microsemi SoC สนับสนุนผลิตภัณฑ์ของตนด้วยบริการสนับสนุนต่างๆ รวมถึงฝ่ายบริการลูกค้า ศูนย์สนับสนุนด้านเทคนิคของลูกค้า ก webเว็บไซต์ จดหมายอิเล็กทรอนิกส์ และสำนักงานขายทั่วโลก
ภาคผนวกนี้มีข้อมูลเกี่ยวกับการติดต่อ Microsemi SoC Products Group และการใช้บริการสนับสนุนเหล่านี้
บริการลูกค้า
ติดต่อฝ่ายบริการลูกค้าสำหรับการสนับสนุนผลิตภัณฑ์ที่ไม่ใช่ด้านเทคนิค เช่น ราคาผลิตภัณฑ์ การอัพเกรดผลิตภัณฑ์ ข้อมูลอัปเดต สถานะการสั่งซื้อ และการอนุญาต
จากอเมริกาเหนือ โทร 800.262.1060
จากส่วนอื่นๆ ของโลก โทร 650.318.4460
แฟกซ์จากทุกที่ในโลก 408.643.6913
ศูนย์สนับสนุนด้านเทคนิคของลูกค้า
กลุ่มผลิตภัณฑ์ Microsemi SoC มีเจ้าหน้าที่ศูนย์สนับสนุนด้านเทคนิคของลูกค้าพร้อมด้วยวิศวกรที่มีทักษะสูง ซึ่งสามารถช่วยตอบคำถามเกี่ยวกับฮาร์ดแวร์ ซอฟต์แวร์ และการออกแบบเกี่ยวกับผลิตภัณฑ์ Microsemi SoC ศูนย์สนับสนุนด้านเทคนิคของลูกค้าใช้เวลามากมายในการสร้างบันทึกการใช้งาน ตอบคำถามเกี่ยวกับวงจรการออกแบบทั่วไป เอกสารเกี่ยวกับปัญหาที่ทราบ และคำถามที่พบบ่อยต่างๆ ดังนั้น ก่อนที่คุณจะติดต่อเรา โปรดไปที่แหล่งข้อมูลออนไลน์ของเรา เป็นไปได้มากที่เราได้ตอบคำถามของคุณแล้ว
การสนับสนุนด้านเทคนิค
เยี่ยมชมการสนับสนุนลูกค้า webงาน (www.microsemi.com/soc/support/search/default.aspx) สำหรับข้อมูลเพิ่มเติมและการสนับสนุน คำตอบมากมายที่สามารถค้นหาได้ web แหล่งข้อมูลรวมถึงไดอะแกรม ภาพประกอบ และลิงก์ไปยังแหล่งข้อมูลอื่นๆ บน webเว็บไซต์.
Webเว็บไซต์
คุณสามารถเรียกดูข้อมูลทางเทคนิคและไม่ใช่ทางเทคนิคที่หลากหลายได้จากหน้าแรกของ SoC ที่ www.microsemi.com/soc.
การติดต่อศูนย์สนับสนุนด้านเทคนิคของลูกค้า
วิศวกรที่มีทักษะสูงเป็นเจ้าหน้าที่ของศูนย์สนับสนุนด้านเทคนิค สามารถติดต่อศูนย์สนับสนุนทางเทคนิคได้ทางอีเมลหรือผ่าน Microsemi SoC Products Group webเว็บไซต์.
อีเมล
คุณสามารถสื่อสารคำถามทางเทคนิคของคุณไปยังที่อยู่อีเมลของเราและรับคำตอบกลับทางอีเมล แฟกซ์ หรือโทรศัพท์ นอกจากนี้ หากคุณมีปัญหาด้านการออกแบบ คุณสามารถส่งอีเมลถึงการออกแบบของคุณได้ fileเพื่อรับความช่วยเหลือ
เราตรวจสอบบัญชีอีเมลอย่างต่อเนื่องตลอดทั้งวัน เมื่อส่งคำขอของคุณถึงเรา โปรดตรวจสอบให้แน่ใจว่าได้ใส่ชื่อนามสกุล ชื่อบริษัท และข้อมูลติดต่อของคุณ เพื่อการดำเนินการตามคำขอของคุณอย่างมีประสิทธิภาพ
ที่อยู่อีเมลสนับสนุนทางเทคนิคคือ soc_tech@microsemi.com.
กรณีของฉัน
ลูกค้ากลุ่มผลิตภัณฑ์ Microsemi SoC สามารถส่งและติดตามกรณีทางเทคนิคทางออนไลน์ได้โดยไปที่ กรณีของฉัน.
นอกประเทศสหรัฐอเมริกา
ลูกค้าที่ต้องการความช่วยเหลือนอกเขตเวลาของสหรัฐอเมริกาสามารถติดต่อฝ่ายสนับสนุนด้านเทคนิคทางอีเมล (soc_tech@microsemi.com) หรือติดต่อสำนักงานขายในพื้นที่ สามารถดูรายชื่อสำนักงานขายได้ที่ www.microsemi.com/soc/company/contact/default.aspx.
การสนับสนุนด้านเทคนิคของ ITAR
สำหรับการสนับสนุนทางเทคนิคเกี่ยวกับ RH และ RT FPGA ที่ควบคุมโดย International Traffic in Arms Regulations (ITAR) โปรดติดต่อเราทาง soc_tech_itar@microsemi.com. หรือภายใน My Cases ให้เลือกใช่ในรายการแบบหล่นลงของ ITAR สำหรับรายการทั้งหมดของ Microsemi FPGA ที่ควบคุมโดย ITAR โปรดไปที่ ITAR web หน้าหนังสือ.
Microsemi Corporation (NASDAQ: MSCC) นำเสนอโซลูชั่นเซมิคอนดักเตอร์ที่ครอบคลุมสำหรับ: การบินและอวกาศ การป้องกันประเทศและความมั่นคง องค์กรและการสื่อสาร และตลาดอุตสาหกรรมและพลังงานทางเลือก ผลิตภัณฑ์ประกอบด้วยอุปกรณ์อะนาล็อกและ RF ที่มีประสิทธิภาพสูงและมีความน่าเชื่อถือสูง สัญญาณผสมและวงจรรวม RF, SoCs ที่ปรับแต่งได้, FPGA และระบบย่อยที่สมบูรณ์ Microsemi มีสำนักงานใหญ่อยู่ที่ Aliso Viejo รัฐแคลิฟอร์เนีย เรียนรู้เพิ่มเติมที่ www.microsemi.com.
© 2014 ไมโครเซมิ คอร์ปอเรชั่น สงวนลิขสิทธิ์. Microsemi และโลโก้ Microsemi เป็นเครื่องหมายการค้าของ Microsemi Corporation เครื่องหมายการค้าและเครื่องหมายบริการอื่นๆ ทั้งหมดเป็นทรัพย์สินของเจ้าของที่เกี่ยวข้อง

5-02-00384-1/08.14โลโก้ไมโครเซมิสำนักงานใหญ่ของ บริษัท Microsemi
One Enterprise, Aliso Viejo CA 92656 สหรัฐอเมริกา
ภายในสหรัฐอเมริกา: +1 949-380-6100
ยอดขาย: +1 949-380-6136
แฟกซ์: +1 949-215-4996

เอกสาร / แหล่งข้อมูล

Microsemi SmartFusion2 DDR Controller และ Serial High Speed ​​Controller [พีดีเอฟ] คู่มือการใช้งาน
คอนโทรลเลอร์ SmartFusion2 DDR และคอนโทรลเลอร์ความเร็วสูงแบบอนุกรม, SmartFusion2 DDR, คอนโทรลเลอร์และคอนโทรลเลอร์ความเร็วสูงแบบอนุกรม, คอนโทรลเลอร์ความเร็วสูง

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *