Sigla MicrosemiSmartFusion2
Controler DDR și controler serial de mare viteză
Metodologia de inițializare
Ghidul utilizatorului

Introducere

Când creați un design utilizând un dispozitiv SmartFusion2, dacă utilizați unul dintre cele două controlere DDR (FDDR sau MDDR) sau oricare dintre blocurile controlerului serial de mare viteză (SERDESIF), trebuie să inițializați registrele de configurare ale acestor blocuri în timpul execuției înainte de execuție. pot fi folosite. De example, pentru controlerul DDR, trebuie să setați modul DDR (DDR3/DDR2/LPDDR), lățimea PHY, modul burst și ECC.
În mod similar, pentru blocul SERDESIF utilizat ca punct final PCIe, trebuie să setați PCIE BAR la fereastra AXI (sau AHB).
Acest document descrie pașii necesari pentru a crea un design Libero care inițializează automat controlerul DDR și blocurile SERDESIF la pornire. De asemenea, descrie modul de generare a codului firmware din Libero SOC care este utilizat în fluxul de proiectare încorporat.
Mai întâi este oferită o descriere detaliată a teoriei operațiilor.
Următoarea secțiune descrie cum să creați un astfel de design folosind Libero SoC System Builder, un instrument de proiectare puternic care, printre alte caracteristici, creează soluția de „inițializare” pentru dvs. dacă utilizați blocuri DDR sau SERDESIF în designul dvs.
Următoarea secțiune descrie cum să combinați o soluție completă de „inițializare” fără a utiliza SmartFusion2 System Builder. Acest lucru vă ajută să explicați ce trebuie făcut dacă nu doriți să utilizați System Builder și, de asemenea, descrie ce generează de fapt instrumentul System Builder pentru dvs. Această secțiune se adresează:

  • Crearea datelor de configurare pentru controlerul DDR și registrele de configurare SERDESIF
  • Crearea logicii FPGA este necesară pentru a transfera datele de configurare către diferitele registre de configurare ASIC

În cele din urmă descriem cele generate filesunt legate de:

  • Crearea soluției de „inițializare” a firmware-ului.
  • Simularea designului pentru soluția de „inițializare” DDR.

Pentru detalii despre controlerul DDR și registrele de configurare SERDESIF, consultați Ghidul utilizatorului pentru interfețele seriale și DDR de mare viteză Microsemi SmartFusion2.

Teoria Funcționării

Soluția de inițializare periferică utilizează următoarele componente majore:

  • Funcția CMSIS SystemInit(), care rulează pe Cortex-M3 și orchestrează procesul de inițializare.
  • CoreConfigP soft IP core, care inițializează registrele de configurare ale perifericelor.
  • Nucleul IP soft CoreResetP, care gestionează secvența de resetare a MSS, controlerelor DDR și blocurilor SERDESIF.

Procesul de inițializare periferică funcționează după cum urmează:

  1. La resetare, Cortex-M3 rulează funcția CMSIS SystemInit(). Această funcție este executată automat înainte ca funcția main() a aplicației să fie executată.
    Semnalul de ieșire CoreResetP MSS_HPMS_READY este afirmat la începutul procesului de inițializare, indicând faptul că MSS și toate perifericele (cu excepția MDDR) sunt pregătite pentru comunicare.
  2. Funcția SystemInit() scrie datele de configurare în controlerele DDR și în registrele de configurare SERDESIF prin magistrala MSS FIC_2 APB3. Această interfață este conectată la miezul moale CoreConfigP instanțiat în materialul FPGA.
  3. După ce toate registrele sunt configurate, funcția SystemInit() scrie în registrele de control CoreConfigP pentru a indica finalizarea fazei de configurare a registrelor; semnalele de ieșire CoreConfigP CONFIG1_DONE și CONIG2_DONE sunt apoi afirmate.
    Există două faze de configurare a registrului (CONFIG1 și CONFIG2) în funcție de perifericele utilizate în proiectare.
  4. Dacă unul sau ambele dintre MDDR/FDDR sunt utilizate și niciunul dintre blocurile SERDESIF nu este utilizat în proiectare, există o singură fază de configurare a registrului. Ambele semnale de ieșire CoreConfigP CONFIG1_DONE și CONIG2_DONE sunt afirmate unul după altul fără nicio așteptare/întârziere.
    Dacă unul sau mai multe blocuri SERDESIF în modul non-PCIe sunt utilizate în proiectare, există o singură fază de configurare a registrului. CONFIG1_DONE și CONIG2_DONE sunt afirmate unul după altul fără nicio așteptare/întârziere.
    Dacă unul sau mai multe blocuri SERDESIF în modul PCIe sunt utilizate în proiectare, există două faze de configurare a registrului. CONFIG1_DONE este afirmată după ce prima fază de configurare a registrului este finalizată. Sistemul SERDESIF și registrele de bandă sunt configurate în această fază. Dacă SERDESIF este configurat într-un mod non-PCIE, semnalul CONFIG2_DONE este de asemenea afirmat imediat.
  5. Urmează a doua fază de configurare a registrului (dacă SERDESIF este configurat în modul PCIE). Următoarele sunt diferitele evenimente care au loc în a doua fază:
    – CoreResetP dezactivează semnalele PHY_RESET_N și CORE_RESET_N corespunzătoare fiecăruia dintre blocurile SERDESIF utilizate. De asemenea, afirmă un semnal de ieșire SDIF_RELEASED după ce toate blocurile SERDESIF nu sunt resetate. Acest semnal SDIF_RELEASED este utilizat pentru a indica CoreConfigP că nucleul SERDESIF nu este resetat și este gata pentru a doua fază a configurației registrului.
    – Odată ce semnalul SDIF_RELEASED este afirmat, funcția SystemInit() începe interogarea pentru afirmarea PMA_READY pe banda SERDESIF corespunzătoare. Odată ce PMA_READY este afirmat, al doilea set de registre SERDESIF (registruri PCIE) este configurat/scris de funcția SystemInit().
  6. După ce toate registrele PCIE sunt configurate, funcția SystemInit() scrie în registrele de control CoreConfigP pentru a indica finalizarea celei de-a doua faze de configurare a registrelor; semnalul de ieșire CoreConfigP CONIG2_DONE este apoi afirmat.
  7. În afară de aserțiunile/de-aserțiunile de semnal de mai sus, CoreResetP gestionează și inițializarea diferitelor blocuri prin îndeplinirea următoarelor funcții:
    – Dezactivarea resetarii nucleului FDDR
    – Dezactivarea blocurilor SERDESIF PHY și CORE
    – Monitorizarea semnalului de blocare FDDR PLL (FPLL). FPLL trebuie să se fi blocat pentru a garanta că interfața de date FDDR AXI/AHBLite și structura FPGA pot comunica corect.
    – Monitorizarea semnalelor de blocare a blocului SERDESIF PLL (SPLL). SPLL trebuie să se fi blocat pentru a garanta că SERDESIF blochează interfața AXI/AHBLite (mod PCIe) sau interfața XAUI poate comunica corect cu materialul FPGA.
    – Așteptați ca memoriile externe DDR să se stabilească și să fie gata pentru a fi accesate de controlerele DDR.
  8. Când toate perifericele și-au finalizat inițializarea, CoreResetP afirmă semnalul INIT_DONE; registrul intern CoreConfigP INIT_DONE este apoi afirmat.
    Dacă se utilizează unul sau ambele MDDR/FDDR, iar timpul de inițializare DDR este atins, semnalul de ieșire CoreResetP DDR_READY este afirmat. Afirmarea acestui semnal DDR_READY poate fi monitorizată ca o indicație că DDR (MDDR/FDDR) este pregătit pentru comunicare.
    Dacă se utilizează unul sau mai multe blocuri SERDESIF și a doua fază a configurației registrului este finalizată cu succes, semnalul de ieșire CoreResetP SDIF_READY este afirmat. Afirmarea acestui semnal SDIF_READY poate fi monitorizată ca o indicație că toate blocurile SERDESIF sunt pregătite pentru comunicare.
  9. Funcția SystemInit(), care a așteptat ca INIT_DONE să fie afirmat, se completează și funcția main() a aplicației este executată. În acel moment, toate controlerele DDR și blocurile SERDESIF utilizate au fost inițializate, iar aplicația de firmware și logica fabricii FPGA pot comunica în mod fiabil cu acestea.

Metodologia descrisă în acest document se bazează pe Cortex-M3 care execută procesul de inițializare ca parte a codului de inițializare a sistemului executat înainte de funcția principală()a aplicației.
Consultați diagramele de flux din Figura 1-1, Figura 1-2 și Figura 1-3 pentru pașii de inițializare ai FDDR/MDDR, SEREDES (mod non-PCIe) și SERDES (modul PCIe).
Figura 1-4 prezintă o diagramă de timp pentru inițializarea periferică.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - diagramă de timp 1 Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - diagramă de timp 2

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - diagramă de timp 3Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - diagramă de timp 4Figura 1-3 • Diagrama fluxului de inițializare SERDESIF (PCIe).
Procedura de inițializare descrisă în acest document necesită să rulați Cortex-M3 în timpul procesului de inițializare, chiar dacă nu intenționați să rulați niciun cod pe Cortex-M3. Trebuie să creați o aplicație de firmware de bază care nu face nimic (o buclă simplă, de example) și încărcați acel executabil în memoria non-volatilă încorporată (eNVM), astfel încât controlerele DDR și blocurile SERDESIF să fie inițializate la pornirea Cortex-M3.

Folosind System Builder pentru a crea un design folosind blocuri DDR și SERDESIF

SmartFusion2 System Builder este un instrument de proiectare puternic care vă ajută să capturați cerințele dvs. la nivel de sistem și să producă un design care implementează aceste cerințe. O funcție foarte importantă a System Builder este crearea automată a subsistemului de inițializare periferică. „Folosirea SmartDesign pentru a crea un design utilizând blocuri DDR și SERDESIF” la pagina 17 descrie în detaliu cum să creați o astfel de soluție fără System Builder.
Dacă utilizați System Builder, trebuie să efectuați următoarele sarcini pentru a crea un design care inițializează controlerele DDR și blocurile SERDESIF la pornire:

  1. În pagina Caracteristici dispozitiv (Figura 2-1), specificați ce controlere DDR sunt utilizate și câte blocuri SERDESIF sunt utilizate în proiectarea dvs.
  2. În pagina Memorie, specificați tipul de DDR (DDR2/DDR3/LPDDR) și datele de configurare pentru memoriile DDR externe. Consultați secțiunea Pagina de memorie pentru detalii.
  3. În pagina Periferice, adăugați fabrici master configurate ca AHBLite/AXI la Fabric DDR Subsystem și/sau MSS DDR FIC Subsystem (opțional).
  4. În pagina Setări ceas, specificați frecvențele de ceas pentru subsistemele DDR.
  5. Completați specificația de proiectare și faceți clic pe Terminare. Aceasta generează designul creat de System Builder, inclusiv logica necesară pentru soluția de „inițializare”.
  6. Dacă utilizați blocuri SERDESIF, trebuie să instanțiați blocurile SERDESIF în designul dvs. și să conectați porturile de inițializare ale acestora la cele ale nucleului generat de System Builder.

Pagina cu caracteristicile dispozitivului System Builder
În pagina Caracteristici dispozitiv, specificați ce controlere DDR (MDDR și/sau FDDR) sunt utilizate și câte blocuri SERDESIF sunt utilizate în proiectarea dvs. (Figura 2-1).

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Pagina cu caracteristicile dispozitivuluiFigura 2-1 • Pagina Caracteristici dispozitiv System Builder

Pagina de memorie System Builder
Pentru a utiliza MSS DDR (MDDR) sau Fabric DDR (FDDR), selectați tipul de memorie din lista verticală (Figura 2-2).

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Memorie externăFigura 2-2 • Memorie externă MSS

Trebuie să vă:

  1. Selectați tipul DDR (DDR2, DDR3 sau LPDDR).
  2. Definiți timpul de stabilire a memoriei DDR. Consultați specificațiile memoriei DDR externe pentru a seta timpul corect de setare a memoriei. Memoria DDR poate să nu se inițialeze corect dacă timpul de stabilire a memoriei nu este setat corect.
  3. Fie importați datele de configurare a registrului DDR, fie setați parametrii memoriei DDR. Pentru detalii, consultați Ghidul utilizatorului pentru interfețele seriale și DDR de mare viteză Microsemi SmartFusion2.

Aceste date sunt folosite pentru a genera registrul DDR BFM și configurația firmware files așa cum este descris în „Crearea și compilarea aplicației firmware” la pagina 26 și „BFM Files Folosit pentru simularea designului” la pagina 27. Pentru detalii despre registrele de configurare a controlerului DDR, consultați Ghidul utilizatorului pentru interfețele seriale și DDR de mare viteză Microsemi SmartFusion2.
Un exampfișierul configurației file sintaxa este prezentată în Figura 2-3. Numele de registru utilizate în aceasta file sunt aceleași cu cele descrise în Ghidul utilizatorului pentru interfețele seriale și DDR de mare viteză Microsemi SmartFusion2

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - File Sintaxă ExampleFigura 2-3 • Configurare File Sintaxă Example
Pagina de periferice System Builder
În pagina Periferice, pentru fiecare controler DDR este creat un subsistem separat (Fabric DDR Subsystem pentru FDDR și MSS DDR FIC Subsystem pentru MDDR). Puteți adăuga un nucleu Fabric AMBA Master (configurat ca AXI/AHBLite) la fiecare dintre aceste subsisteme pentru a permite accesul fabric master la controlerele DDR. La generare, System Builder instanțiază automat nucleele de magistrală (în funcție de tipul de AMBA Master adăugat) și expune BIF-ul principal al nucleului de magistrală și pinii de ceas și resetarea subsistemelor corespunzătoare (FDDR/MDDR) sub grupurile de pini corespunzătoare, la top. Tot ce trebuie să faceți este să conectați BIF-urile la nucleele Fabric Master corespunzătoare pe care le-ați instanția în proiectare. În cazul MDDR, este opțional să adăugați un nucleu Fabric AMBA Master la subsistemul MSS DDR FIC; Cortex-M3 este un master implicit al acestui subsistem. Figura 2-4 arată pagina System Builder Peripherals.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Pagina Builder PeripheralsFigura 2-4 • Pagina System Builder Peripherals

Pagina de setări a ceasului System Builder
În pagina Setări ceas, pentru fiecare controler DDR, trebuie să specificați frecvențele de ceas aferente fiecărui subsistem DDR (MDDR și/sau FDDR).
Pentru MDDR, trebuie să specificați:

  • MDDR_CLK – Acest ceas determină frecvența de funcționare a controlerului DDR și ar trebui să se potrivească cu frecvența de ceas la care doriți să ruleze memoria DDR externă. Acest ceas este definit ca un multiplu al M3_CLK (Ceas principal Cortex-M3 și MSS, Figura 2-5). MDDR_CLK trebuie să fie mai mic de 333 MHz.
  • DDR_FIC_CLK – Dacă ați ales să accesați și MDDR-ul din țesătura FPGA, trebuie să specificați DDR_FIC_CLK. Această frecvență de ceas este definită ca raport al MDDR_CLK și ar trebui să se potrivească cu frecvența la care rulează subsistemul fabric FPGA care accesează MDDR.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Ceasuri MDDRFigura 2-5 • Ceasul principal Cortex-M3 și MSS; Ceasuri MDDR

Pentru FDDR, trebuie să specificați:

  • FDDR_CLK – Determină frecvența de funcționare a controlerului DDR și ar trebui să se potrivească cu frecvența de ceas la care doriți să ruleze memoria DDR externă. Rețineți că acest ceas este definit ca un multiplu al M3_CLK (MSS și ceasul Cortex-M3, Figura 2-5). FDDR_CLK trebuie să fie între 20 MHz și 333 MHz.
  • FDDR_SUBSYSTEM_CLK – Această frecvență de ceas este definită ca un raport al FDDR_CLK și ar trebui să se potrivească cu frecvența la care rulează subsistemul fabric FPGA care accesează FDDR.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Ceasuri DDR din materialFigura 2-6 • Ceasuri DDR Fabric
Configurare SERDESIF
Blocurile SERDESIF nu sunt instanțiate în designul generat de System Builder. Cu toate acestea, pentru toate blocurile SERDESIF, semnalele de inițializare sunt disponibile la interfața nucleului System Builder și pot fi conectate la nucleele SERDESIF la nivelul următor al ierarhiei, așa cum se arată în Figura 2-7.Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Conectivitate de inițializare perifericăFigura 2-7 • Conectivitate de inițializare periferică SERDESIF
Similar cu registrele de configurare DDR, fiecare bloc SERDES are, de asemenea, registre de configurare care trebuie încărcate în timpul execuției. Puteți fie să importați aceste valori de registru, fie să utilizați Configuratorul de interfață serială de mare viteză (Figura 2-8) pentru a introduce parametrii PCIe sau EPCS, iar valorile registrului sunt calculate automat pentru dvs. Pentru detalii, consultați Ghidul utilizatorului SERDES Configurator.Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Configurator de interfață serialăFigura 2-8 • Configurator de interfață serială de mare viteză
Odată ce v-ați integrat logica utilizatorului cu blocul System Builder și blocul SERDES, puteți genera SmartDesign-ul de nivel superior. Acest lucru generează toate HDL și BFM filesunt necesare pentru implementarea și simularea designului dvs. Puteți continua apoi cu restul fluxului de proiectare.

Utilizarea SmartDesign pentru a crea un design folosind blocuri DDR și SERDESIF

Această secțiune descrie cum să combinați o soluție completă de „inițializare” fără a utiliza SmartFusion2 System Builder. Scopul este să vă ajute să înțelegeți ce trebuie să faceți dacă nu doriți să utilizați System Builder. Această secțiune descrie, de asemenea, ceea ce instrumentul System Builder generează de fapt pentru dvs. Această secțiune descrie cum să:

  • Introduceți datele de configurare pentru controlerul DDR și registrele de configurare SERDESIF.
  • Instanciați și conectați nucleele Fabric necesare pentru a transfera datele de configurare către controlerele DDR și registrele de configurare SERDESIF.

Configurație controler DDR
Controlerele MSS DDR (MDDR) și Fabric DDR (FDDR) trebuie configurate dinamic (în timpul rulării) pentru a se potrivi cu cerințele de configurare a memoriei DDR externe (mod DDR, lățime PHY, modul burst, ECC etc.). Datele introduse în configuratorul MDDR/FDDR sunt scrise în registrele de configurare a controlerului DDR de către funcția CMSIS SystemInit(). Configuratorul are trei file diferite pentru a introduce diferite tipuri de date de configurare:

  • Date generale (mod DDR, lățimea datelor, frecvența ceasului, ECC, interfața fabrică, puterea unității)
  • Date de inițializare a memoriei (lungimea rafalei, ordinea rafalei, modul de sincronizare, latența etc.)
  • Date de sincronizare a memoriei

Consultați specificațiile memoriei DDR externe și configurați controlerul DDR pentru a se potrivi cu cerințele memoriei DDR externe.
Pentru detalii despre configurarea DDR, consultați Ghidul utilizatorului de configurare SmartFusion2 MSS DDR.
Configurare SERDESIF
Faceți dublu clic pe blocul SERDES din pânza SmartDesign pentru a deschide Configuratorul pentru a configura SERDES (Figura 3-1). Puteți fie să importați aceste valori de registru, fie să utilizați configuratorul SERDES pentru a vă introduce parametrii PCIe sau EPCS, iar valorile registrului sunt calculate automat pentru dvs. Pentru detalii, consultați Ghidul utilizatorului SERDES Configurator.Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Configurator de interfață serială de mare vitezăFigura 3-1 • Configurator de interfață serială de mare viteză
Crearea subsistemului de inițializare a designului FPGA
Pentru a inițializa blocurile DDR și SERDESIF, trebuie să creați subsistemul de inițializare în structura FPGA. Subsistemul de inițializare a fabricii FPGA mută datele din Cortex-M3 în registrele de configurare DDR și SERDESIF, gestionează secvențele de resetare necesare pentru ca aceste blocuri să fie operaționale și semnalează când aceste blocuri sunt gata să comunice cu restul designului dumneavoastră. Pentru a crea subsistemul de inițializare, trebuie să:

  • Configurați FIC_2 în interiorul MSS
  • Instanciați și configurați nucleele CoreConfigP și CoreResetP
  • Instanciați oscilatorul RC de 25/50MHz pe cip
  • Instanciați macrocomanda System Reset (SYSRESET).
  • Conectați aceste componente la interfețele de configurare, ceasurile, resetările și porturile de blocare PLL ale fiecărui periferic

Configurare MSS FIC_2 APB
Pentru a configura MSS FIC_2:

  1. Deschideți caseta de dialog configurator FIC_2 din configuratorul MSS (Figura 3-2).
  2. Selectați Inițializare periferice folosind Cortex-M3.
  3. În funcție de sistemul dvs., bifați una sau ambele dintre următoarele casete de selectare:
    – MSS DDR
    – Fabric DDR și/sau blocuri SERDES
  4. Faceți clic pe OK și continuați să generați MSS (puteți amâna această acțiune până când ați configurat complet MSS-ul la cerințele dvs. de proiectare). Porturile FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK și FIC_2_APB_M_RESET_N) sunt acum expuse la interfața MSS și pot fi conectate la nucleele CoreConfigP și CoreResetP.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Configurator MSS FIC 2Figura 3-2 • Configurator MSS FIC_2

CoreConfigP
Pentru a configura CoreConfigP:

  1. Instanțiați CoreConfigP în SmartDesign-ul dvs. (de obicei cel în care este instanțiat MSS).
    Acest nucleu poate fi găsit în Catalogul Libero (sub Periferice).
  2. Faceți dublu clic pe nucleu pentru a deschide configuratorul.
  3. Configurați nucleul pentru a specifica ce periferice trebuie inițializate (Figura 3-3)

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Casetă de dialogFigura 3-3 • Caseta de dialog CoreConfigP

CoreResetP
Pentru a configura CoreResetP:

  1. Instanțiați CoreResetP în SmartDesign-ul dvs. (de obicei cel în care este instanțiat MSS).
    Acest nucleu poate fi găsit în Catalogul Libero, sub Periferice.
  2. Faceți dublu clic pe nucleul din interiorul SmartDesign Canvas pentru a deschide Configuratorul (Figura 3-4).
  3. Configurați nucleul pentru:
    – Specificați comportamentul de resetare extern (EXT_RESET_OUT afirmat). Alegeți una dintre cele patru opțiuni:
    o EXT_RESET_OUT nu este niciodată afirmată
    o EXT_RESET_OUT este afirmată dacă este confirmată resetarea la pornire (POWER_ON_RESET_N)
    o EXT_RESET_OUT este afirmat dacă FAB_RESET_N este afirmat
    o EXT_RESET_OUT este afirmat dacă este activată resetarea la pornire (POWER_ON_RESET_N) sau FAB_RESET_N
    – Specificați volumul dispozitivuluitage. Valoarea selectată trebuie să se potrivească cu volumultagați selectat în caseta de dialog Setări proiect Libero.
    – Bifați casetele de selectare corespunzătoare pentru a indica ce periferice utilizați în designul dvs.
    – Specificați ora de setare a memoriei externe DDR. Aceasta este valoarea maximă pentru toate memoriile DDR utilizate în aplicația dvs. (MDDR și FDDR). Consultați fișa tehnică externă a furnizorului de memorie DDR pentru a configura acest parametru. 200us este o valoare implicită bună pentru memoriile DDR2 și DDR3 care rulează la 200MHz. Acesta este un parametru foarte important pentru a garanta o simulare de lucru și un sistem de lucru pe siliciu. O valoare incorectă a timpului de stabilire poate duce la erori de simulare. Consultați fișa de date a furnizorului de memorie DDR pentru a configura acest parametru.
    – Pentru fiecare bloc SERDES din designul dumneavoastră, bifați casetele corespunzătoare pentru a indica dacă:
    o Se utilizează PCIe
    o Este necesar suportul pentru resetarea la cald PCIe
    o Este necesar suportul pentru PCIe L2/P2

Nota: Dacă utilizați matrița 090 (M2S090) și designul dvs. folosește SERDESIF, nu trebuie să bifați niciuna dintre următoarele casete de selectare: „Utilizat pentru PCIe”, „Include suport PCIe HotReset” și „Include suport PCIe L2/P2”. Dacă utilizați orice dispozitiv non-090 și utilizați unul sau mai multe blocuri SERDESIF, trebuie să bifați toate cele patru casete de selectare din secțiunea SERDESIF corespunzătoare.
Nota: Pentru detalii despre opțiunile disponibile în acest configurator, consultați manualul CoreResetP.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - CoreResetPConfiguratorFigura 3-4 • CoreResetPConfigurator

Instanțierea oscilatorului 25/50MHz
CoreConfigP și CoreResetP sunt tactate de oscilatorul RC de 25/50MHz pe cip. Trebuie să instanțiați un oscilator 25/50MHz și să-l conectați la aceste nuclee.

  1. Instanciați nucleul Chip Oscillators în SmartDesign-ul dvs. (de obicei cel în care este instanțiat MSS). Acest nucleu poate fi găsit în Catalogul Libero la Clock & Management.
  2. Configurați acest nucleu astfel încât oscilatorul RC să conducă materialul FPGA, așa cum se arată în Figura 3-5.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Configurator oscilatoareFigura 3-5 • Configurator Chip Oscillators

Resetare sistem (SYSRESET) Instanțiere
Macro-ul SYSRESET oferă funcționalitate de resetare la nivel de dispozitiv pentru designul dvs. Semnalul de ieșire POWER_ON_RESET_N este afirmat/dezactivat ori de câte ori cipul este pornit sau pinul extern DEVRST_N este afirmat/dezactivat (Figura 3-6).
Instanțiați macrocomanda SYSRESET în SmartDesign-ul dvs. (de obicei cel în care este instanțiat MSS). Această macrocomandă poate fi găsită în Catalogul Libero sub Biblioteca de macrocomenzi. Nu este necesară configurarea acestei macrocomenzi.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - SYSRESET MacroFigura 3-6 • SYSRESET Macro

Conectivitate generală
După ce ați instanțiat și configurat nucleele MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP și CoreResetP în proiectarea dvs., trebuie să le conectați pentru a forma subsistemul de inițializare periferică. Pentru a simplifica descrierea conectivității din acest document, aceasta este împărțită în conectivitatea căii de date de configurare conformă APB3 asociată cu CoreConfigP și conexiunile corelate CoreResetP.
Conectivitate calea datelor de configurare
Figura 3-7 arată cum să conectați CoreConfigP la semnalele MSS FIC_2 și la interfețele de configurare compatibile APB3 ale perifericelor.
Tabelul 3-1 • Calea datelor de configurare Port/Conexiuni BIF

DIN
Interfață port/autobuz
(BIF)/ Componentă
LA
Port/Interfață magistrală (BIF)/Componentă
APB S PRESET N/ CoreConfigP APB S PRESET N/ SDIF<0/1/2/3> APB S PRESET N/
FDDR
MDDR APB S PRESE TN/MSS
APB S PCLK/ CoreConfigP APB S PCLK/SDIF APB S PCLK/FDDR MDDR APB S POLK/ MSS
MDDR APBmslave/ CoreConfig MDDR APB SLAVE (BIF)/MSS
SDIF<0/1/2/ 3> APBmslave/Config APB SLAVE (BIF)/ SDIF<0/1/2/3>
FDDR APBmslave APB SLAVE (BIF)/ FDDR
FIC 2 APBmmaster/ CoreConfigP FIC 2 APB MASTER/ MSS

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Conectivitate sub-sistemFigura 3-7 • Conectivitate sub-sistem FIC_2 APB3

Ceasuri și resetează conectivitate
Figura 3-8 arată cum să conectați CoreResetP la sursele externe de resetare și la semnalele de resetare a nucleului perifericelor. De asemenea, arată cum să conectați CoreResetP la semnalele de stare de sincronizare a ceasului perifericelor (semnale de blocare PLL). În plus, arată cum sunt conectate CoreConfigP și CoreResetP.

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză - Conectivitate sub-sistem 2Figura 3-8 • Core SF2Reset Sub-System Connectivity

Crearea și compilarea aplicației firmware

Când exportați firmware-ul din LiberoSoC (Fereastră Design Flow > Export Firmware > Export Firmware), Libero generează următoarele files în /firmware/drivers_config/ folderul sys_config:

  • sys_config.c – Conține structurile de date care dețin valorile pentru registrele periferice.
  • sys_config.h – Conține instrucțiunile #define care specifică ce periferice sunt utilizate în proiectare și trebuie inițializate.
  • sys_config_mddr_define.h – Conține datele de configurare a controlerului MDDR introduse în caseta de dialog Registers Configuration.
  • sys_config_fddr_define.h – Conține datele de configurare a controlerului FDDR introduse în caseta de dialog Registers Configuration.
  • sys_config_mss_clocks.h – Asta file conține frecvențele de ceas MSS așa cum sunt definite în configuratorul MSS CCC. Aceste frecvențe sunt utilizate de codul CMSIS pentru a furniza informații corecte de ceas pentru multe dintre driverele MSS care trebuie să aibă acces la frecvența lor Peripheral Clock (PCLK) (de exemplu, divizorii de viteză în baud MSS UART sunt o funcție a ratei de transmisie și a frecvenței PCLK). ).
  • sys_config_SERDESIF_ .c – Conține SERDESIF_ înregistrați datele de configurare furnizate în timpul SERDESIF_ configurarea blocurilor în crearea designului.
  • sys_config_SERDESIF_ .h – Conține instrucțiunile #define care specifică numărul de perechi de configurare a registrelor și numărul benzii care trebuie interogat pentru PMA_READY (numai în modul PCIe).

Aceste filesunt necesare pentru ca codul CMSIS să fie compilat corect și să conțină informații referitoare la designul dvs. curent, inclusiv datele de configurare periferică și informațiile de configurare a ceasului pentru MSS.
Nu le editați files manual; acestea sunt create în directoarele de componente/periferice corespunzătoare de fiecare dată când sunt generate componentele SmartDesign care conțin perifericele respective. Dacă se fac modificări la datele de configurare ale oricăruia dintre periferice, trebuie să reexportați proiectele de firmware, astfel încât firmware-ul actualizat files (vezi lista de mai sus) sunt exportate în folderul / firmware/drivers_config/sys_config.
Când exportați firmware-ul, Libero SoC creează proiectele de firmware: o bibliotecă în care configurația dvs. de proiectare files și driverele sunt compilate.
Dacă bifați Creare proiect caseta de selectare când exportați firmware-ul, este creat un proiect software SoftConsole/IAR/Keil pentru a deține proiectul aplicației, unde puteți edita main.c și utilizatorul C/H files. Deschideți proiectul SoftConSole/IAR/Keil pentru a compila corect codul CMSIS și pentru a avea aplicația de firmware configurată corespunzător pentru a se potrivi cu designul dumneavoastră hardware.

BFM Files Folosit pentru simularea designului

Când generați componentele SmartDesign care conțin perifericele asociate cu designul dvs., simularea files corespunzătoare perifericelor respective sunt generate în /directorul de simulare:

  • test.bfm – BFM de nivel superior file care este mai întâi executat în timpul oricărei simulări care exersează procesorul SmartFusion2 MSS Cortex-M3. Execută peripheral_init.bfm și user.bfm, în această ordine.
  • MDDR_init.bfm – Dacă designul dvs. folosește MDDR, Libero generează acest lucru file; conține comenzi de scriere BFM care simulează scrierile datelor din registrul de configurare MSS DDR pe care le-ați introdus (folosind caseta de dialog Editare registre sau în GUI MSS_MDDR) în registrele MSS DDR Controller.
  • FDDR_init.bfm – Dacă designul dvs. folosește FDDR, Libero generează acest lucru file; conține comenzi de scriere BFM care simulează scrierile datelor din registrul de configurare Fabric DDR pe care le-ați introdus (folosind caseta de dialog Edit Registers sau în GUI FDDR) în registrele Fabric DDR Controller.
  • SERDESIF_ _init.bfm – Dacă designul dumneavoastră utilizează unul sau mai multe blocuri SERDESIF, Libero generează acest lucru file pentru fiecare dintre SERDESIF_ blocuri folosite; conține comenzi de scriere BFM care simulează scrierea datelor din registrul de configurare SERDESIF pe care le-ați introdus (folosind caseta de dialog Editare registre sau în SERDESIF_ GUI) în SERDESIF_ registre. Dacă blocul SERDESIF este configurat ca PCIe, aceasta file are și câteva instrucțiuni #define care controlează execuția celor 2 faze de configurare a registrului în ordine perfectă.
  • user.bfm – Conține comenzile utilizatorului. Aceste comenzi sunt executate după ce peripheral_init.bfm a fost finalizat. Editează asta file pentru a introduce comenzile dvs. BFM.
  • SERDESIF_ _user.bfm – Conține comenzile utilizatorului. Editează asta file pentru a introduce comenzile dvs. BFM. Folosiți-l dacă ați configurat SERDESIF_ bloc în modul de simulare BFM PCIe și ca master AXI/AHBLite. Dacă ați configurat SERDESIF_ blocați în modul de simulare RTL, nu veți avea nevoie de acest lucru file.

Când invocați simularea de fiecare dată, următoarele două simulări files sunt re-create la /director de simulare cu conținut actualizat:

  • subsistem.bfm – Conține instrucțiunile #define pentru fiecare periferic utilizat în designul dvs., care specifică secțiunea particulară a perifericului_init.bfm care urmează să fie executată corespunzătoare fiecărui periferic.
  • operipheral_init.bfm – Conține procedura BFM care emulează funcția CMSIS:: SystemInit() rulată pe Cortex-M3 înainte de a intra în procedura main(). Copiază datele de configurare pentru orice periferic utilizat în proiectare în registrele corecte de configurare a perifericelor și apoi așteaptă ca toate perifericele să fie gata înainte de a afirma că puteți utiliza aceste periferice. Execută MDDR_init.bfm și FDDR_init.bfm.

Folosind acestea generate files, controlerele DDR din designul dvs. sunt configurate automat, simulând ceea ce s-ar întâmpla pe un dispozitiv SmartFusion2. Puteți edita user.bfm file pentru a adăuga orice comenzi necesare pentru a simula designul dvs. (Cortex-M3 este maestru). Aceste comenzi sunt executate după ce perifericele au fost inițializate. Nu editați test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files și SERDESIF_ _init.bfm files.

Suport pentru produse

Microsemi SoC Products Group își susține produsele cu diverse servicii de asistență, inclusiv Serviciul Clienți, Centrul de asistență tehnică pentru clienți, un website, poștă electronică și birouri de vânzări la nivel mondial.
Această anexă conține informații despre contactarea Microsemi SoC Products Group și utilizarea acestor servicii de asistență.
Serviciu clienți
Contactați Serviciul Clienți pentru asistență non-tehnică pentru produse, cum ar fi prețul produselor, upgrade-uri ale produsului, informații de actualizare, starea comenzii și autorizare.
Din America de Nord, sunați 800.262.1060
Din restul lumii, sunați 650.318.4460
Fax, de oriunde în lume, 408.643.6913
Centrul de suport tehnic pentru clienți
Microsemi SoC Products Group pune la dispoziție Centrul de asistență tehnică pentru clienți cu ingineri de înaltă calificare care vă pot ajuta să vă răspundă la întrebările dvs. legate de hardware, software și design despre produsele Microsemi SoC. Centrul de asistență tehnică pentru clienți petrece mult timp creând note de aplicație, răspunsuri la întrebări obișnuite ale ciclului de proiectare, documentare a problemelor cunoscute și diverse întrebări frecvente. Prin urmare, înainte de a ne contacta, vă rugăm să vizitați resursele noastre online. Este foarte probabil să ți-am răspuns deja la întrebări.
Suport tehnic
Vizitați Serviciul pentru clienți website (www.microsemi.com/soc/support/search/default.aspx) pentru mai multe informații și asistență. Multe răspunsuri disponibile pe căutare web resursele includ diagrame, ilustrații și link-uri către alte resurse de pe website-ul.
Website-ul
Puteți răsfoi o varietate de informații tehnice și non-tehnice pe pagina de pornire SoC, la www.microsemi.com/soc.
Contactarea Centrului de asistență tehnică pentru clienți
Ingineri cu înaltă calificare personalizează Centrul de asistență tehnică. Centrul de asistență tehnică poate fi contactat prin e-mail sau prin Microsemi SoC Products Group website-ul.
E-mail
Puteți comunica întrebările dumneavoastră tehnice la adresa noastră de e-mail și puteți primi răspunsuri prin e-mail, fax sau telefon. De asemenea, dacă aveți probleme de design, vă puteți trimite prin e-mail designul files pentru a primi asistență.
Monitorizăm constant contul de e-mail pe tot parcursul zilei. Când ne trimiteți cererea dvs., vă rugăm să vă asigurați că includeți numele dvs. complet, numele companiei și informațiile dvs. de contact pentru procesarea eficientă a cererii dvs.
Adresa de e-mail a suportului tehnic este soc_tech@microsemi.com.
Cazurile mele
Clienții Microsemi SoC Products Group pot trimite și urmări cazuri tehnice online, accesând Cazurile mele.
În afara SUA
Clienții care au nevoie de asistență în afara fusurilor orare ale SUA pot contacta fie asistența tehnică prin e-mail (soc_tech@microsemi.com) sau contactați un birou local de vânzări. Listările birourilor de vânzări pot fi găsite la www.microsemi.com/soc/company/contact/default.aspx.
Suport tehnic ITAR
Pentru asistență tehnică pentru FPGA RH și RT care sunt reglementate de reglementările internaționale privind traficul de arme (ITAR), contactați-ne prin soc_tech_itar@microsemi.com. Ca alternativă, în Cazurile mele, selectați Da în lista derulantă ITAR. Pentru o listă completă a Microsemi FPGA reglementate de ITAR, vizitați ITAR web pagină.
Microsemi Corporation (NASDAQ: MSCC) oferă un portofoliu cuprinzător de soluții de semiconductori pentru: aerospațial, apărare și securitate; întreprinderi și comunicații; și piețele de energie industrială și alternativă. Produsele includ dispozitive analogice și RF de înaltă performanță, de înaltă fiabilitate, circuite integrate de semnal mixt și RF, SoC-uri personalizabile, FPGA-uri și subsisteme complete. Microsemi are sediul în Aliso Viejo, California. Aflați mai multe la www.microsemi.com.
© 2014 Microsemi Corporation. Toate drepturile rezervate. Microsemi și sigla Microsemi sunt mărci comerciale ale Microsemi Corporation. Toate celelalte mărci comerciale și mărci de servicii sunt proprietatea deținătorilor respectivi.

5-02-00384-1/08.14Sigla MicrosemiSediul Microsemi Corporate
One Enterprise, Aliso Viejo CA 92656 SUA
În SUA: +1 949-380-6100
Vânzări: +1 949-380-6136
Fax: +1 949-215-4996

Documente/Resurse

Controler Microsemi SmartFusion2 DDR și controler serial de mare viteză [pdfGhid de utilizare
Controler SmartFusion2 DDR și controler serial de mare viteză, SmartFusion2 DDR, controler și controler serial de mare viteză, controler de mare viteză

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *