logo mikrosemiFusi Cerdas2
Pengontrol DDR dan Pengontrol Kecepatan Tinggi Serial
Metodologi Inisialisasi
Panduan Pengguna

Perkenalan

Saat membuat desain menggunakan perangkat SmartFusion2, jika Anda menggunakan salah satu dari dua pengontrol DDR (FDDR atau MDDR) atau salah satu blok Serial High speed controller (SERDESIF), Anda harus menginisialisasi register konfigurasi dari blok ini pada waktu proses sebelum mereka dapat digunakan. Untuk mantanample, untuk pengontrol DDR, Anda harus mengatur mode DDR (DDR3/DDR2/LPDDR), lebar PHY, mode burst, dan ECC.
Demikian pula, untuk blok SERDESIF yang digunakan sebagai titik akhir PCIe, Anda harus mengatur jendela PCIE BAR ke AXI (atau AHB).
Dokumen ini menjelaskan langkah-langkah yang diperlukan untuk membuat desain Libero yang secara otomatis menginisialisasi pengontrol DDR dan blok SERDESIF saat dihidupkan. Ini juga menjelaskan cara menghasilkan kode firmware dari Libero SOC yang digunakan dalam alur desain tersemat.
Penjelasan rinci tentang teori operasi disediakan terlebih dahulu.
Bagian selanjutnya menjelaskan cara membuat desain seperti itu menggunakan Libero SoC System Builder, alat desain canggih yang, di antara fitur lainnya, menciptakan solusi 'inisialisasi' untuk Anda jika Anda menggunakan blok DDR atau SERDESIF dalam desain Anda.
Bagian selanjutnya menjelaskan cara menyatukan solusi 'inisialisasi' lengkap tanpa menggunakan Pembuat Sistem SmartFusion2. Ini membantu menjelaskan apa yang perlu dilakukan jika Anda tidak ingin menggunakan Pembangun Sistem, dan juga menjelaskan apa yang sebenarnya dihasilkan oleh alat Pembangun Sistem untuk Anda. Bagian ini membahas:

  • Pembuatan data konfigurasi untuk pengontrol DDR dan register konfigurasi SERDESIF
  • Pembuatan logika FPGA diperlukan untuk mentransfer data konfigurasi ke register konfigurasi ASIC yang berbeda

Akhirnya kami menjelaskan yang dihasilkan fileterkait dengan:

  • Pembuatan solusi 'inisialisasi' firmware.
  • Simulasi desain untuk solusi 'inisialisasi' DDR.

Untuk detail tentang pengontrol DDR dan register konfigurasi SERDESIF, lihat Panduan Pengguna Antarmuka Serial dan DDR Microsemi SmartFusion2 Berkecepatan Tinggi.

Teori Operasi

Solusi inisialisasi periferal menggunakan komponen utama berikut:

  • Fungsi CMSIS SystemInit(), yang berjalan pada Cortex-M3 dan mengatur proses inisialisasi.
  • CoreConfigP soft IP core, yang menginisialisasi register konfigurasi periferal.
  • CoreResetP soft IP core, yang mengelola urutan reset MSS, pengontrol DDR, dan blok SERDESIF..

Proses inisialisasi periferal bekerja sebagai berikut:

  1. Setelah reset, Cortex-M3 menjalankan fungsi CMSIS SystemInit(). Fungsi ini dijalankan secara otomatis sebelum fungsi main() aplikasi dijalankan.
    Sinyal output CoreResetP MSS_HPMS_READY ditegaskan pada awal proses inisialisasi, menunjukkan bahwa MSS dan semua periferal (kecuali MDDR) siap untuk komunikasi.
  2. Fungsi SystemInit() menulis data konfigurasi ke pengontrol DDR dan register konfigurasi SERDESIF melalui bus MSS FIC_2 APB3. Antarmuka ini terhubung ke inti lunak CoreConfigP yang dibuat dalam struktur FPGA.
  3. Setelah semua register dikonfigurasi, fungsi SystemInit() menulis ke register kontrol CoreConfigP untuk menunjukkan selesainya fase konfigurasi register; sinyal output CoreConfigP CONFIG1_DONE dan CONIG2_DONE kemudian ditegaskan.
    Ada dua fase konfigurasi register (CONFIG1 dan CONFIG2) tergantung pada periferal yang digunakan dalam desain.
  4. Jika salah satu atau kedua MDDR/FDDR digunakan, dan tidak ada blok SERDESIF yang digunakan dalam desain, hanya ada satu fase konfigurasi register. Baik sinyal keluaran CoreConfigP CONFIG1_DONE dan CONIG2_DONE dinyatakan satu per satu tanpa menunggu/penundaan.
    Jika satu atau lebih blok SERDESIF dalam mode non-PCIe digunakan dalam desain, hanya ada satu fase konfigurasi register. CONFIG1_DONE dan CONIG2_DONE ditegaskan satu demi satu tanpa menunggu/penundaan.
    Jika satu atau lebih blok SERDESIF dalam mode PCIe digunakan dalam desain, ada dua fase konfigurasi register. CONFIG1_DONE ditegaskan setelah tahap pertama konfigurasi register selesai. Sistem SERDESIF dan register jalur dikonfigurasi pada fase ini. Jika SERDESIF dikonfigurasikan dalam mode non-PCIE, sinyal CONFIG2_DONE juga segera ditegaskan.
  5. Fase kedua konfigurasi register kemudian mengikuti (jika SERDESIF dikonfigurasi dalam mode PCIE). Berikut ini adalah berbagai peristiwa yang terjadi pada fase kedua:
    – CoreResetP menghilangkan sinyal PHY_RESET_N dan CORE_RESET_N yang sesuai dengan masing-masing blok SERDESIF yang digunakan. Itu juga menegaskan sinyal keluaran SDIF_RELEASED setelah semua blok SERDESIF tidak disetel ulang. Sinyal SDIF_RELEASED ini digunakan untuk menunjukkan ke CoreConfigP bahwa inti SERDESIF tidak disetel ulang dan siap untuk fase kedua konfigurasi register.
    – Setelah sinyal SDIF_RELEASED dinyatakan, fungsi SystemInit() mulai polling untuk pernyataan PMA_READY pada jalur SERDESIF yang sesuai. Setelah PMA_READY ditegaskan, set kedua register SERDESIF (register PCIE) dikonfigurasi/ditulis oleh fungsi SystemInit().
  6. Setelah semua register PCIE dikonfigurasi, fungsi SystemInit() menulis ke register kontrol CoreConfigP untuk menunjukkan penyelesaian tahap kedua konfigurasi register; sinyal keluaran CoreConfigP CONIG2_DONE kemudian dinyatakan.
  7. Terlepas dari penegasan/penghapusan pernyataan sinyal di atas, CoreResetP juga mengelola inisialisasi berbagai blok dengan melakukan fungsi-fungsi berikut:
    – Membatalkan reset inti FDDR
    – Membatalkan penyetelan ulang SERDESIF blok PHY dan CORE
    – Pemantauan sinyal kunci FDDR PLL (FPLL). FPLL harus terkunci untuk menjamin bahwa antarmuka data FDDR AXI/AHBLite dan struktur FPGA dapat berkomunikasi dengan benar.
    – Pemantauan sinyal kunci blok SERDESIF PLL (SPLL). SPLL harus terkunci untuk menjamin bahwa SERDESIF memblokir antarmuka AXI/AHBLite (mode PCIe) atau antarmuka XAUI dapat berkomunikasi dengan benar dengan struktur FPGA.
    – Menunggu memori DDR eksternal untuk diselesaikan dan siap diakses oleh pengontrol DDR.
  8. Ketika semua periferal telah menyelesaikan inisialisasinya, CoreResetP menegaskan sinyal INIT_DONE; register internal CoreConfigP INIT_DONE kemudian ditegaskan.
    Jika salah satu atau kedua MDDR/FDDR digunakan, dan waktu inisialisasi DDR tercapai, sinyal keluaran CoreResetP DDR_READY ditegaskan. Penegasan sinyal DDR_READY ini dapat dipantau sebagai indikasi bahwa DDR (MDDR/FDDR) siap untuk komunikasi.
    Jika satu atau lebih blok SERDESIF digunakan, dan fase kedua dari konfigurasi register berhasil diselesaikan, sinyal output CoreResetP SDIF_READY ditegaskan. Penegasan sinyal SDIF_READY ini dapat dipantau sebagai indikasi bahwa semua blok SERDESIF siap untuk komunikasi.
  9. Fungsi SystemInit(), yang telah menunggu INIT_DONE untuk ditegaskan, selesai, dan fungsi main() aplikasi dijalankan. Pada saat itu, semua pengontrol DDR dan blok SERDESIF yang digunakan telah diinisialisasi, dan aplikasi firmware serta logika fabric FPGA dapat berkomunikasi dengan baik dengannya.

Metodologi yang dijelaskan dalam dokumen ini bergantung pada Cortex-M3 yang menjalankan proses inisialisasi sebagai bagian dari kode inisialisasi sistem yang dijalankan sebelum fungsi main() aplikasi.
Lihat Diagram Alir pada Gambar 1-1, Gambar 1-2 dan Gambar 1-3 untuk langkah-langkah Inisialisasi FDDR/MDDR, SEREDES(mode non-PCIe) dan SERDES (mode PCIe).
Gambar 1-4 menunjukkan diagram waktu Inisialisasi Periferal.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - diagram waktu 1 Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - diagram waktu 2

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - diagram waktu 3Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - diagram waktu 4Gambar 1-3 • Bagan Alir Inisialisasi SERDESIF (PCIe).
Prosedur inisialisasi yang dijelaskan dalam dokumen ini mengharuskan Anda menjalankan Cortex-M3 selama proses inisialisasi, bahkan jika Anda tidak berencana menjalankan kode apa pun pada Cortex-M3. Anda harus membuat aplikasi firmware dasar yang tidak melakukan apa pun (loop sederhana, misalnyaample) dan muat yang dapat dieksekusi di Memori Non Volatile (eNVM) tertanam sehingga pengontrol DDR dan blok SERDESIF diinisialisasi saat Cortex-M3 melakukan booting.

Menggunakan Pembangun Sistem untuk Membuat Desain Menggunakan Blok DDR dan SERDESIF

SmartFusion2 System Builder adalah alat desain canggih yang membantu Anda menangkap persyaratan tingkat sistem dan menghasilkan desain yang mengimplementasikan persyaratan tersebut. Fungsi yang sangat penting dari Pembangun Sistem adalah pembuatan subsistem Inisialisasi Periferal secara otomatis. “Menggunakan SmartDesign untuk Membuat Desain Menggunakan Blok DDR dan SERDESIF” di halaman 17 menjelaskan secara detail cara membuat solusi semacam itu tanpa Pembangun Sistem.
Jika Anda menggunakan Pembangun Sistem, Anda harus melakukan tugas-tugas berikut untuk membuat desain yang menginisialisasi pengontrol DDR dan blok SERDESIF saat dinyalakan:

  1. Di halaman Fitur Perangkat (Gambar 2-1), tentukan pengontrol DDR mana yang digunakan dan berapa banyak blok SERDESIF yang digunakan dalam desain Anda.
  2. Di halaman Memori, tentukan jenis DDR (DDR2/DDR3/LPDDR) dan data konfigurasi untuk memori DDR eksternal Anda. Lihat bagian Halaman Memori untuk detailnya.
  3. Di halaman Periferal, tambahkan master fabric yang dikonfigurasi sebagai AHBLite/AXI ke Subsistem DDR Fabric dan/atau Subsistem MSS DDR FIC (opsional).
  4. Di halaman Pengaturan Jam, tentukan frekuensi jam untuk subsistem DDR.
  5. Lengkapi spesifikasi desain Anda dan klik Selesai. Ini menghasilkan desain yang dibuat oleh Pembangun Sistem, termasuk logika yang diperlukan untuk solusi 'inisialisasi'.
  6. Jika Anda menggunakan blok SERDESIF, Anda harus membuat instance blok SERDESIF dalam desain Anda dan menyambungkan port inisialisasinya ke port yang dihasilkan oleh Pembangun Sistem.

Halaman Fitur Perangkat Pembuat Sistem
Di halaman Fitur Perangkat, tentukan pengontrol DDR (MDDR dan/atau FDDR) mana yang digunakan dan berapa banyak blok SERDESIF yang digunakan dalam desain Anda (Gambar 2-1).

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Halaman Fitur PerangkatGambar 2-1 • Halaman Fitur Perangkat Pembangun Sistem

Halaman Memori Pembuat Sistem
Untuk menggunakan MSS DDR (MDDR) atau Fabric DDR (FDDR), pilih Memory Type dari daftar drop-down (Gambar 2-2).

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Memori EksternalGambar 2-2 • Memori Eksternal MSS

Anda harus:

  1. Pilih jenis DDR (DDR2, DDR3 atau LPDDR).
  2. Tentukan waktu penyelesaian memori DDR. Konsultasikan Spesifikasi Memori DDR eksternal Anda untuk mengatur waktu pengaturan memori yang benar. Memori DDR mungkin gagal diinisialisasi dengan benar jika waktu penyelesaian memori tidak diatur dengan benar.
  3. Impor data konfigurasi register DDR atau atur Parameter Memori DDR Anda. Untuk detailnya, lihat Panduan Pengguna Antarmuka Serial dan DDR Microsemi SmartFusion2 Berkecepatan Tinggi.

Data ini digunakan untuk menghasilkan register DDR BFM dan konfigurasi firmware files seperti yang dijelaskan dalam “Membuat dan Menyusun Aplikasi Firmware” di halaman 26 dan “BFM Files Digunakan untuk Mensimulasikan Desain” di halaman 27. Untuk detail tentang register konfigurasi pengontrol DDR, lihat Panduan Pengguna Antarmuka Serial dan DDR Microsemi SmartFusion2 Berkecepatan Tinggi.
mantanampfile konfigurasi file sintaks ditunjukkan pada Gambar 2-3. Nama register yang digunakan dalam hal ini file adalah sama dengan yang dijelaskan dalam Panduan Pengguna Antarmuka Serial dan DDR Microsemi SmartFusion2 Berkecepatan Tinggi

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - File Sintaks ExampleGambar 2-3 • Konfigurasi File Sintaks Example
Halaman Periferal Pembangun Sistem
Di halaman Periferal, subsistem terpisah dibuat untuk setiap pengontrol DDR (Subsistem DDR Fabric untuk FDDR dan Subsistem MSS DDR FIC untuk MDDR). Anda dapat menambahkan inti Fabric AMBA Master (dikonfigurasi sebagai AXI/AHBLite) ke masing-masing subsistem ini untuk mengaktifkan akses fabric master ke pengontrol DDR. Setelah pembuatan, Pembangun Sistem secara otomatis membuat inti bus (bergantung pada jenis AMBA Master yang ditambahkan) dan memaparkan BIF master dari inti bus dan clock serta pin reset dari subsistem yang sesuai (FDDR/MDDR) di bawah grup pin yang sesuai, ke atas. Yang harus Anda lakukan hanyalah menyambungkan BIF ke inti Fabric Master yang sesuai yang akan Anda contohkan dalam desain. Dalam hal MDDR, adalah opsional untuk menambahkan inti Fabric AMBA Master ke Subsistem MSS DDR FIC; Cortex-M3 adalah master default pada subsistem ini. Gambar 2-4 memperlihatkan Halaman Periferal Pembangun Sistem.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Halaman Periferal BuilderGambar 2-4 • Halaman Periferal Pembangun Sistem

Halaman Pengaturan Jam Pembuat Sistem
Di halaman Pengaturan Jam, untuk setiap pengontrol DDR, Anda harus menentukan frekuensi jam yang terkait dengan setiap subsistem DDR (MDDR dan/atau FDDR).
Untuk MDDR, Anda harus menentukan:

  • MDDR_CLK – Jam ini menentukan frekuensi pengoperasian Pengontrol DDR dan harus sesuai dengan frekuensi jam yang Anda inginkan untuk menjalankan memori DDR eksternal Anda. Jam ini didefinisikan sebagai kelipatan dari M3_CLK (Cortex-M3 dan Jam Utama MSS, Gambar 2-5). MDDR_CLK harus kurang dari 333 MHz.
  • DDR_FIC_CLK – Jika Anda memilih untuk juga mengakses MDDR dari struktur FPGA, Anda perlu menentukan DDR_FIC_CLK. Frekuensi clock ini didefinisikan sebagai rasio MDDR_CLK dan harus sesuai dengan frekuensi di mana subsistem fabric FPGA yang mengakses MDDR sedang berjalan.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Jam MDDRGambar 2-5 • Jam Utama Cortex-M3 dan MSS; Jam MDDR

Untuk FDDR, Anda harus menentukan:

  • FDDR_CLK – Menentukan frekuensi pengoperasian Pengontrol DDR dan harus sesuai dengan frekuensi clock yang Anda inginkan untuk menjalankan memori DDR eksternal. Perhatikan bahwa jam ini didefinisikan sebagai kelipatan dari M3_CLK (jam MSS dan Cortex-M3, Gambar 2-5). FDDR_CLK harus berada dalam 20 MHz dan 333 MHz.
  • FDDR_SUBSYSTEM_CLK – Frekuensi clock ini didefinisikan sebagai rasio FDDR_CLK dan harus sesuai dengan frekuensi di mana subsistem fabric FPGA yang mengakses FDDR sedang berjalan.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Fabric DDR ClocksGambar 2-6 • Jam Fabric DDR
Konfigurasi SERDESIF
Blok SERDESIF tidak dibuat dalam desain yang dihasilkan Pembangun Sistem. Namun, untuk semua blok SERDESIF, sinyal inisialisasi tersedia pada antarmuka inti Pembangun Sistem dan dapat dihubungkan ke inti SERDESIF pada tingkat hierarki berikutnya, seperti yang ditunjukkan pada Gambar 2-7.Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Konektivitas Inisialisasi PeriferalGambar 2-7 • Konektivitas Inisialisasi Periferal SERDESIF
Mirip dengan register konfigurasi DDR, setiap blok SERDES juga memiliki register konfigurasi yang harus dimuat saat runtime. Anda dapat mengimpor nilai register ini atau menggunakan Konfigurator Antarmuka Serial Berkecepatan Tinggi (Gambar 2-8) untuk memasukkan parameter PCIe atau EPCS Anda dan nilai register secara otomatis dihitung untuk Anda. Untuk detailnya, lihat Panduan Pengguna Konfigurasi SERDES.Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Serial Interface ConfiguratorGambar 2-8 • Konfigurator Antarmuka Serial Berkecepatan Tinggi
Setelah Anda mengintegrasikan logika pengguna Anda dengan blok Pembangun Sistem dan blok SERDES, Anda dapat membuat SmartDesign tingkat atas. Ini menghasilkan semua HDL dan BFM files yang diperlukan untuk mengimplementasikan dan mensimulasikan desain Anda. Anda kemudian dapat melanjutkan dengan Alur Desain lainnya.

Menggunakan SmartDesign untuk Membuat Desain Menggunakan Blok DDR dan SERDESIF

Bagian ini menjelaskan cara menggabungkan solusi 'inisialisasi' lengkap tanpa menggunakan Pembuat Sistem SmartFusion2. Tujuannya adalah untuk membantu Anda memahami apa yang harus Anda lakukan jika Anda tidak ingin menggunakan Pembangun Sistem. Bagian ini juga menjelaskan apa yang sebenarnya dihasilkan oleh alat Pembangun Sistem untuk Anda. Bagian ini menjelaskan cara:

  • Masukkan data konfigurasi untuk pengontrol DDR dan register konfigurasi SERDESIF.
  • Instansiasi dan sambungkan Fabric Cores yang diperlukan untuk mentransfer data konfigurasi ke pengontrol DDR dan register konfigurasi SERDESIF.

Konfigurasi Pengontrol DDR
Pengontrol MSS DDR (MDDR) dan Fabric DDR (FDDR) harus dikonfigurasi secara dinamis (saat runtime) agar sesuai dengan persyaratan konfigurasi memori DDR eksternal (mode DDR, lebar PHY, mode burst, ECC, dll.). Data yang dimasukkan dalam konfigurator MDDR/FDDR ditulis ke register konfigurasi pengontrol DDR oleh fungsi CMSIS SystemInit(). Configurator memiliki tiga tab berbeda untuk memasukkan berbagai jenis data konfigurasi:

  • Data umum (mode DDR, Lebar Data, Frekuensi Jam, ECC, Antarmuka Fabric, Kekuatan Drive)
  • Data Inisialisasi Memori (Panjang Burst, Urutan Burst, Mode Pengaturan Waktu, Latensi, dll.)
  • Data Waktu Memori

Lihat spesifikasi memori DDR eksternal Anda dan konfigurasikan Pengontrol DDR agar sesuai dengan persyaratan memori DDR eksternal Anda.
Untuk detail tentang konfigurasi DDR, lihat Panduan Pengguna Konfigurasi SmartFusion2 MSS DDR.
Konfigurasi SERDESIF
Klik dua kali blok SERDES di kanvas SmartDesign untuk membuka Configurator untuk mengonfigurasi SERDES (Gambar 3-1). Anda dapat mengimpor nilai register ini atau menggunakan konfigurator SERDES untuk memasukkan parameter PCIe atau EPCS Anda dan nilai register secara otomatis dihitung untuk Anda. Untuk detailnya, lihat Panduan Pengguna Konfigurasi SERDES.Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Konfigurator Antarmuka Serial Berkecepatan TinggiGambar 3-1 • Konfigurator Antarmuka Serial Berkecepatan Tinggi
Membuat Sub-Sistem Inisialisasi Desain FPGA
Untuk menginisialisasi blok DDR dan SERDESIF, Anda harus membuat subsistem inisialisasi dalam struktur FPGA. Subsistem inisialisasi fabric FPGA memindahkan data dari Cortex-M3 ke register konfigurasi DDR dan SERDESIF, mengelola urutan reset yang diperlukan agar blok ini dapat beroperasi dan memberi sinyal saat blok ini siap untuk berkomunikasi dengan seluruh desain Anda. Untuk membuat subsistem inisialisasi, Anda harus:

  • Konfigurasikan FIC_2 di dalam MSS
  • Buat instance dan konfigurasikan inti CoreConfigP dan CoreResetP
  • Instansiasi osilator RC 25/50MHz on-chip
  • Instansiasi makro System Reset (SYSRESET).
  • Sambungkan komponen-komponen ini ke antarmuka konfigurasi, jam, reset, dan port kunci PLL masing-masing periferal

Konfigurasi MSS FIC_2 APB
Untuk mengonfigurasi MSS FIC_2:

  1. Buka kotak dialog konfigurator FIC_2 dari konfigurator MSS (Gambar 3-2).
  2. Pilih Inisialisasi periferal menggunakan Cortex-M3.
  3. Bergantung pada sistem Anda, centang salah satu atau kedua kotak centang berikut:
    – MSS DDR
    – Blok Fabric DDR dan/atau SERDES
  4. Klik OK dan lanjutkan untuk menghasilkan MSS (Anda dapat menunda tindakan ini sampai Anda telah sepenuhnya mengonfigurasi MSS sesuai persyaratan desain Anda). Port FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK dan FIC_2_APB_M_RESET_N) sekarang terbuka di antarmuka MSS dan dapat dihubungkan ke inti CoreConfigP dan CoreResetP.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - MSS FIC 2 ConfiguratorGambar 3-2 • MSS FIC_2 Configurator

Konfigurasi IntiP
Untuk mengonfigurasi CoreConfigP:

  1. Instansiasi CoreConfigP ke dalam SmartDesign Anda (biasanya di mana MSS dibuat).
    Inti ini dapat ditemukan di Katalog Libero (di bawah Periferal).
  2. Klik dua kali inti untuk membuka konfigurator.
  3. Konfigurasikan inti untuk menentukan periferal mana yang perlu diinisialisasi (Gambar 3-3)

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Kotak DialogGambar 3-3 • Kotak Dialog CoreConfigP

IntiResetP
Untuk mengonfigurasi CoreResetP:

  1. Instansiasi CoreResetP ke dalam SmartDesign Anda (biasanya di mana MSS dibuat).
    Inti ini dapat ditemukan di Katalog Libero, di bawah Periferal.
  2. Klik dua kali inti di dalam SmartDesign Canvas untuk membuka Configurator (Gambar 3-4).
  3. Konfigurasikan inti untuk:
    – Tentukan perilaku reset eksternal (EXT_RESET_OUT menegaskan). Pilih satu dari empat opsi:
    o EXT_RESET_OUT tidak pernah ditegaskan
    o EXT_RESET_OUT ditegaskan jika power up reset (POWER_ON_RESET_N) ditegaskan
    o EXT_RESET_OUT ditegaskan jika FAB_RESET_N ditegaskan
    o EXT_RESET_OUT ditegaskan jika power up reset (POWER_ON_RESET_N) atau FAB_RESET_N ditegaskan
    – Tentukan Perangkat Voltage. Nilai yang dipilih harus sesuai dengan voltage Anda memilih di kotak dialog Pengaturan Proyek Libero.
    – Centang kotak yang sesuai untuk menunjukkan periferal mana yang Anda gunakan dalam desain Anda.
    – Tentukan waktu pengaturan memori DDR eksternal. Ini adalah nilai maksimum untuk semua memori DDR yang digunakan dalam aplikasi Anda (MDDR dan FDDR). Lihat lembar data vendor memori DDR eksternal untuk mengonfigurasi parameter ini. 200us adalah nilai default yang bagus untuk memori DDR2 dan DDR3 yang berjalan pada 200MHz. Ini adalah parameter yang sangat penting untuk menjamin simulasi kerja dan sistem kerja pada silikon. Nilai waktu penyelesaian yang salah dapat menyebabkan kesalahan simulasi. Lihat lembar data vendor memori DDR untuk mengonfigurasi parameter ini.
    – Untuk setiap blok SERDES dalam desain Anda, centang kotak yang sesuai untuk menunjukkan apakah:
    o PCIe digunakan
    o Dukungan untuk Hot Reset PCIe diperlukan
    o Dukungan untuk PCIe L2/P2 diperlukan

Catatan: Jika Anda menggunakan cetakan 090 (M2S090) dan desain Anda menggunakan SERDESIF, Anda tidak perlu mencentang salah satu kotak centang berikut: 'Digunakan untuk PCIe', 'Sertakan dukungan PCIe HotReset' dan 'Sertakan dukungan PCIe L2/P2'. Jika Anda menggunakan perangkat non-090 dan menggunakan satu atau lebih blok SERDESIF, Anda harus mencentang keempat kotak centang di bawah bagian SERDESIF yang sesuai.
Catatan: Untuk detail tentang opsi yang tersedia untuk Anda di konfigurator ini, lihat Buku Pegangan CoreResetP.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - CoreResetPConfiguratorGambar 3-4 • CoreResetPConfigurator

Instansiasi Osilator 25/50MHz
CoreConfigP dan CoreResetP di-clock oleh osilator RC 25/50MHz on-chip. Anda harus memberi contoh Osilator 25/50MHz dan menghubungkannya ke inti ini.

  1. Instansiasi inti Chip Oscillators ke dalam SmartDesign Anda (biasanya di mana MSS dibuat). Inti ini dapat ditemukan di Katalog Libero di bawah Jam & Manajemen.
  2. Konfigurasikan inti ini sehingga osilator RC menggerakkan struktur FPGA, seperti yang ditunjukkan pada Gambar 3-5.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Oscillators ConfiguratorGambar 3-5 • Pengonfigurasi Osilator Chip

Pengaturan Ulang Sistem (SYSRESET) Instansiasi
Makro SYSRESET menyediakan fungsionalitas reset level perangkat untuk desain Anda. Sinyal output POWER_ON_RESET_N ditegaskan/tidak ditegaskan setiap kali chip dinyalakan atau pin eksternal DEVRST_N ditegaskan/tidak ditegaskan (Gambar 3-6).
Instansiasi makro SYSRESET ke dalam SmartDesign Anda (biasanya di mana MSS dibuat). Makro ini dapat ditemukan di Katalog Libero di bawah Perpustakaan Makro. Tidak diperlukan konfigurasi makro ini.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - SYSRESET MacroGambar 3-6 • SYSRESET Makro

Konektivitas Keseluruhan
Setelah Anda membuat instance dan mengonfigurasi inti MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP, dan CoreResetP dalam desain Anda, Anda perlu menghubungkannya untuk membentuk subsistem Inisialisasi Periferal. Untuk menyederhanakan deskripsi konektivitas dalam dokumen ini, ini dipecah menjadi konektivitas jalur data konfigurasi yang sesuai dengan APB3 yang terkait dengan CoreConfigP dan koneksi terkait CoreResetP.
Konektivitas Jalur Data Konfigurasi
Gambar 3-7 menunjukkan cara menyambungkan CoreConfigP ke sinyal MSS FIC_2 dan antarmuka konfigurasi yang sesuai dengan APB3 periferal.
Tabel 3-1 • Konfigurasi Port Jalur Data/Koneksi BIF

DARI
Antarmuka Pelabuhan/Bus
(BIF)/ Komponen
KE
Port/Bus Interface (BIF)/Komponen
APB S PRESET N/CoreConfigP APB S PRESET N/ SDIF<0/1/2/3> PRESET APB S N/
FDDR
MDDR APB S PRESS TN/MSS
APB S PCLK/CoreConfigP APB S PCLK/SDIF APB S PCLK/FDDR MDDR APB S POLK/MSS
MDDR APBmslave/CoreConfig MDDR APB BUDAK (BIF)/MSS
SDIF<0/1/2/ 3> APBmslave/Config BUDAK APB (BIF)/ SDIF<0/1/2/3>
Budak FDDR APB BUDAK APB (BIF)/ FDDR
FIC 2 APBmmaster/CoreConfigP FIC 2 APB MAGISTER/MSS

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Konektivitas Sub-SistemGambar 3-7 • Konektivitas Sub-Sistem APB2 FIC_3

Jam dan Mereset Konektivitas
Gambar 3-8 menunjukkan cara menyambungkan CoreResetP ke sumber reset eksternal dan sinyal reset inti periferal. Ini juga menunjukkan cara menghubungkan CoreResetP ke sinyal status sinkronisasi jam periferal (sinyal kunci PLL). Selain itu, ini menunjukkan bagaimana CoreConfigP dan CoreResetP terhubung.

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller - Konektivitas Sub-Sistem 2Gambar 3-8 • Konektivitas Sub-Sistem SF2Reset Inti

Membuat dan Menyusun Aplikasi Firmware

Saat Anda mengekspor firmware dari LiberoSoC (Jendela Alur Desain > Ekspor Firmware > Ekspor Firmware), Libero menghasilkan yang berikut filedi /firmware/drivers_config/ folder sys_config:

  • sys_config.c – Berisi struktur data yang menyimpan nilai untuk register periferal.
  • sys_config.h – Berisi pernyataan #define yang menentukan periferal mana yang digunakan dalam desain dan perlu diinisialisasi.
  • sys_config_mddr_define.h – Berisi data konfigurasi pengontrol MDDR yang dimasukkan dalam kotak dialog Konfigurasi Register.
  • sys_config_fddr_define.h – Berisi data konfigurasi pengontrol FDDR yang dimasukkan dalam kotak dialog Konfigurasi Register.
  • sys_config_mss_clocks.h - Ini file berisi frekuensi jam MSS seperti yang didefinisikan dalam konfigurator MSS CCC. Frekuensi ini digunakan oleh kode CMSIS untuk memberikan informasi clock yang benar ke banyak driver MSS yang harus memiliki akses ke frekuensi Peripheral Clock (PCLK) mereka (misalnya, pembagi baud rate MSS UART adalah fungsi dari baud rate dan frekuensi PCLK ).
  • sys_config_SERDESIF_ .C – Berisi SERDESIF_ daftarkan data konfigurasi yang disediakan selama SERDESIF_ konfigurasi blok dalam pembuatan desain.
  • sys_config_SERDESIF_ .H – Berisi pernyataan #define yang menentukan jumlah pasangan konfigurasi register dan nomor jalur yang perlu disurvei untuk PMA_READY (hanya dalam mode PCIe).

Ini files diperlukan agar kode CMSIS dapat dikompilasi dengan benar dan berisi informasi mengenai desain Anda saat ini, termasuk data konfigurasi periferal dan informasi konfigurasi jam untuk MSS.
Jangan edit ini filesecara manual; mereka dibuat ke direktori komponen/periferal yang sesuai setiap kali komponen SmartDesign yang berisi periferal masing-masing dibuat. Jika ada perubahan yang dibuat pada data konfigurasi salah satu periferal, Anda perlu mengekspor ulang proyek firmware agar firmware yang diperbarui files (lihat daftar di atas) diekspor ke / folder firmware/drivers_config/sys_config.
Saat Anda mengekspor firmware, Libero SoC membuat proyek firmware: perpustakaan tempat konfigurasi desain Anda files dan driver dikompilasi.
Jika Anda mencentang Buat proyek kotak centang saat Anda mengekspor firmware, proyek perangkat lunak SoftConsole/IAR/Keil dibuat untuk menampung proyek aplikasi tempat Anda dapat mengedit main.c dan pengguna C/H fileS. Buka proyek SoftConSole/IAR/Keil untuk mengkompilasi kode CMSIS dengan benar dan konfigurasikan aplikasi firmware Anda dengan benar agar sesuai dengan desain perangkat keras Anda.

BFM Files Digunakan untuk Simulasi Desain

Saat Anda membuat komponen SmartDesign yang berisi periferal yang terkait dengan desain Anda, simulasi files sesuai dengan periferal masing-masing dihasilkan di /direktori simulasi:

  • tes.bfm – BFM tingkat atas file yang pertama kali dijalankan selama simulasi apa pun yang menggunakan prosesor SmartFusion2 MSS Cortex-M3. Itu mengeksekusi peripheral_init.bfm dan user.bfm, dalam urutan itu.
  • MDDR_init.bfm – Jika desain Anda menggunakan MDDR, Libero menghasilkan ini file; ini berisi perintah tulis BFM yang mensimulasikan penulisan data register konfigurasi MSS DDR yang Anda masukkan (menggunakan kotak dialog Edit Register atau dalam GUI MSS_MDDR) ke dalam register MSS DDR Controller.
  • FDDR_init.bfm – Jika desain Anda menggunakan FDDR, Libero menghasilkan ini file; ini berisi perintah tulis BFM yang mensimulasikan penulisan data register konfigurasi Fabric DDR yang Anda masukkan (menggunakan kotak dialog Edit Register atau di GUI FDDR) ke dalam register Fabric DDR Controller.
  • SERDESIF_ _init.bfm – Jika desain Anda menggunakan satu atau lebih blok SERDESIF, Libero menghasilkan ini file untuk setiap SERDESIF_ blok yang digunakan; ini berisi perintah tulis BFM yang mensimulasikan penulisan data register konfigurasi SERDESIF yang Anda masukkan (menggunakan kotak dialog Edit Registers atau di SERDESIF_ GUI) ke dalam SERDESIF_ register. Jika blok SERDESIF dikonfigurasi sebagai PCIe, ini file juga memiliki beberapa pernyataan #define yang mengontrol eksekusi dari 2 fase konfigurasi register dalam urutan yang sempurna.
  • pengguna.bfm – Berisi perintah pengguna. Perintah-perintah ini dijalankan setelah peripheral_init.bfm selesai. Sunting ini file untuk memasukkan perintah BFM Anda.
  • SERDESIF_ _pengguna.bfm – Berisi perintah pengguna. Sunting ini file untuk memasukkan perintah BFM Anda. Gunakan ini jika Anda telah mengonfigurasi SERDESIF_ blok dalam mode simulasi BFM PCIe dan sebagai master AXI/AHBLite. Jika Anda telah mengonfigurasi SERDESIF_ blokir dalam mode simulasi RTL, Anda tidak memerlukan ini file.

Saat Anda menjalankan simulasi setiap kali, berikut dua simulasi files diciptakan kembali ke / direktori simulasi dengan konten yang diperbarui:

  • subsistem.bfm – Berisi pernyataan #define untuk setiap periferal yang digunakan dalam desain Anda, yang menentukan bagian tertentu dari periferal_init.bfm yang akan dieksekusi sesuai dengan setiap periferal.
  • operapheral_init.bfm – Berisi prosedur BFM yang mengemulasikan fungsi CMSIS:: SystemInit() yang dijalankan pada Cortex-M3 sebelum Anda memasuki prosedur main(). Itu menyalin data konfigurasi untuk setiap periferal yang digunakan dalam desain ke register konfigurasi periferal yang benar dan kemudian menunggu semua periferal siap sebelum menyatakan bahwa Anda dapat menggunakan periferal ini. Itu mengeksekusi MDDR_init.bfm dan FDDR_init.bfm.

Menggunakan ini dihasilkan files, pengontrol DDR dalam desain Anda dikonfigurasikan secara otomatis, mensimulasikan apa yang akan terjadi pada perangkat SmartFusion2. Anda dapat mengedit user.bfm file untuk menambahkan perintah apa pun yang diperlukan untuk mensimulasikan desain Anda (Cortex-M3 adalah masternya). Perintah-perintah ini dijalankan setelah periferal diinisialisasi. Jangan edit test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files dan SERDESIF_ _init.bfm files.

Dukungan Produk

Grup Produk SoC Microsemi mendukung produknya dengan berbagai layanan dukungan, termasuk Layanan Pelanggan, Pusat Dukungan Teknis Pelanggan, a websitus, surat elektronik, dan kantor penjualan di seluruh dunia.
Apendiks ini berisi informasi tentang cara menghubungi Grup Produk SoC Microsemi dan menggunakan layanan dukungan ini.
Pelayanan pelanggan
Hubungi Layanan Pelanggan untuk dukungan produk non-teknis, seperti harga produk, peningkatan produk, informasi pembaruan, status pesanan, dan otorisasi.
Dari Amerika Utara, hubungi 800.262.1060
Dari seluruh dunia, hubungi 650.318.4460
Faks, dari mana saja di dunia, 408.643.6913
Pusat Dukungan Teknis Pelanggan
Grup Produk SoC Microsemi memiliki Pusat Dukungan Teknis Pelanggan dengan insinyur yang sangat terampil yang dapat membantu menjawab pertanyaan perangkat keras, perangkat lunak, dan desain Anda tentang Produk SoC Microsemi. Pusat Dukungan Teknis Pelanggan menghabiskan banyak waktu untuk membuat catatan aplikasi, jawaban atas pertanyaan siklus desain umum, dokumentasi masalah umum, dan berbagai FAQ. Jadi, sebelum Anda menghubungi kami, silakan kunjungi sumber daya online kami. Sangat mungkin kami telah menjawab pertanyaan Anda.
Dukungan Teknis
Kunjungi Dukungan Pelanggan weblokasi (www.microsemi.com/soc/support/search/default.aspx) untuk informasi dan dukungan lebih lanjut. Banyak jawaban tersedia di pencarian web sumber termasuk diagram, ilustrasi, dan link ke sumber lain di weblokasi.
Weblokasi
Anda dapat menelusuri berbagai informasi teknis dan non-teknis di halaman beranda SoC, di www.microsemi.com/soc.
Menghubungi Pusat Dukungan Teknis Pelanggan
Staf insinyur yang sangat terampil di Pusat Dukungan Teknis. Pusat Dukungan Teknis dapat dihubungi melalui email atau melalui Grup Produk SoC Microsemi weblokasi.
E-mail
Anda dapat mengomunikasikan pertanyaan teknis Anda ke alamat email kami dan menerima jawaban kembali melalui email, faks, atau telepon. Juga, jika Anda memiliki masalah desain, Anda dapat mengirim email desain Anda files untuk menerima bantuan.
Kami terus memantau akun email sepanjang hari. Saat mengirimkan permintaan Anda kepada kami, pastikan untuk menyertakan nama lengkap, nama perusahaan, dan informasi kontak Anda untuk pemrosesan permintaan Anda secara efisien.
Alamat email dukungan teknis adalah soc_tech@microsemi.com.
Kasus Saya
Pelanggan Grup Produk SoC Microsemi dapat mengirimkan dan melacak kasus teknis secara online dengan mengunjungi Kasus Saya.
Di luar AS
Pelanggan yang membutuhkan bantuan di luar zona waktu AS dapat menghubungi dukungan teknis melalui email (soc_tech@microsemi.com) atau hubungi kantor penjualan setempat. Daftar kantor penjualan dapat ditemukan di www.microsemi.com/soc/company/contact/default.aspx.
Dukungan Teknis ITAR
Untuk dukungan teknis pada RH dan RT FPGA yang diatur oleh International Traffic in Arms Regulations (ITAR), hubungi kami melalui soc_tech_itar@microsemi.com. Atau, dalam Kasus Saya, pilih Ya di daftar drop-down ITAR. Untuk daftar lengkap Microsemi FPGA yang diatur ITAR, kunjungi ITAR web halaman.
Microsemi Corporation (NASDAQ: MSCC) menawarkan portofolio lengkap solusi semikonduktor untuk: kedirgantaraan, pertahanan dan keamanan; perusahaan dan komunikasi; dan industri dan pasar energi alternatif. Produk termasuk perangkat analog dan RF berkinerja tinggi dan andal, sinyal campuran dan sirkuit terpadu RF, SoC yang dapat disesuaikan, FPGA, dan subsistem lengkap. Microsemi berkantor pusat di Aliso Viejo, California. Pelajari selengkapnya di www.microsemi.com.
© 2014 Perusahaan Mikrosemi. Seluruh hak cipta. Microsemi dan logo Microsemi adalah merek dagang dari Microsemi Corporation. Semua merek dagang dan merek layanan lainnya adalah milik dari pemiliknya masing-masing.

5-02-00384-1/08.14logo mikrosemiKantor Pusat Perusahaan Microsemi
Satu Perusahaan, Aliso Viejo CA 92656 USA
Di AS: +1 Telepon: 949-380-6100
Penjualan: +1 Telepon: 949-380-6136
Telp: +1 Telepon: 949-215-4996

Dokumen / Sumber Daya

Microsemi SmartFusion2 DDR Controller dan Serial High Speed ​​Controller [Bahasa Indonesia:] Panduan Pengguna
Pengontrol DDR SmartFusion2 dan Pengontrol Kecepatan Tinggi Serial, DDR SmartFusion2, Pengontrol dan Pengontrol Kecepatan Tinggi Serial, Pengontrol Kecepatan Tinggi

Referensi

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang wajib diisi ditandai *