Microsemi logoSmartFusion 2
DDR-controller og seriel højhastighedscontroller
Initialiseringsmetode
Brugervejledning

Indledning

Når du opretter et design ved hjælp af en SmartFusion2-enhed, og hvis du bruger en af ​​de to DDR-controllere (FDDR eller MDDR) eller en af ​​SERDESIF-blokkene (Serial High Speed ​​Controller), skal du initialisere konfigurationsregistrene for disse blokke ved kørsel før de kan bruges. F.eksample, for DDR-controlleren skal du indstille DDR-tilstand (DDR3/DDR2/LPDDR), PHY-bredde, burst-tilstand og ECC.
Tilsvarende skal du for SERDESIF-blokken, der bruges som et PCIe-slutpunkt, indstille PCIE BAR til AXI (eller AHB) vinduet.
Dette dokument beskriver de nødvendige trin for at skabe et Libero-design, der automatisk initialiserer DDR-controlleren og SERDESIF-blokkene ved opstart. Den beskriver også, hvordan man genererer firmwarekoden fra Libero SOC, der bruges i det indlejrede designflow.
En detaljeret beskrivelse af operationsteorien gives først.
Det næste afsnit beskriver, hvordan man laver et sådant design ved hjælp af Libero SoC System Builder, et kraftfuldt designværktøj, der blandt andre funktioner skaber 'initialiserings'-løsningen for dig, hvis du bruger DDR- eller SERDESIF-blokke i dit design.
Det næste afsnit beskriver, hvordan man sætter en komplet 'initialisering'-løsning sammen uden at bruge SmartFusion2 System Builder. Dette hjælper med at forklare, hvad der skal gøres, hvis du ikke ønsker at bruge System Builder, og beskriver også, hvad System Builder-værktøjet rent faktisk genererer for dig. Dette afsnit omhandler:

  • Oprettelse af konfigurationsdata for DDR-controller og SERDESIF-konfigurationsregistre
  • Oprettelse af den FPGA-logik, der kræves for at overføre konfigurationsdataene til de forskellige ASIC-konfigurationsregistre

Til sidst beskriver vi det genererede fileer relateret til:

  • Oprettelse af firmware 'initialisering' løsning.
  • Simuleringen af ​​designet til DDR'initialiseringsløsningen.

For detaljer om DDR-controlleren og SERDESIF-konfigurationsregistrene henvises til Microsemi SmartFusion2 High Speed ​​Seriel- og DDR-grænseflader Brugervejledning.

Operationsteori

Den perifere initialiseringsløsning bruger følgende hovedkomponenter:

  • CMSIS SystemInit()-funktionen, som kører på Cortex-M3 og orkestrerer initialiseringsprocessen.
  • CoreConfigP bløde IP-kerne, som initialiserer de eksterne enheders konfigurationsregistre.
  • CoreResetP bløde IP-kerne, som styrer nulstillingssekvensen af ​​MSS, DDR-controllere og SERDESIF-blokke.

Den perifere initialiseringsproces fungerer som følger:

  1. Ved nulstilling kører Cortex-M3 funktionen CMSIS SystemInit(). Denne funktion udføres automatisk, før applikationens main()-funktion udføres.
    CoreResetP-udgangssignalet MSS_HPMS_READY hævdes i begyndelsen af ​​initialiseringsprocessen, hvilket indikerer, at MSS'en og alle de eksterne enheder (undtagen MDDR) er klar til kommunikation.
  2. SystemInit()-funktionen skriver konfigurationsdata til DDR-controllere og SERDESIF-konfigurationsregistre via MSS FIC_2 APB3-bussen. Denne grænseflade er forbundet til den bløde CoreConfigP-kerne, der er instantieret i FPGA-stoffet.
  3. Efter at alle registre er konfigureret, skriver SystemInit()-funktionen til CoreConfigP-kontrolregistrene for at indikere afslutningen af ​​registerkonfigurationsfasen; CoreConfigP-udgangssignalerne CONFIG1_DONE og CONIG2_DONE hævdes derefter.
    Der er to faser af registerkonfiguration (CONFIG1 og CONFIG2) afhængigt af de perifere enheder, der anvendes i designet.
  4. Hvis en eller begge MDDR/FDDR bruges, og ingen af ​​SERDESIF-blokkene bruges i designet, er der kun én registerkonfigurationsfase. Begge CoreConfigP-udgangssignaler CONFIG1_DONE og CONIG2_DONE hævdes efter hinanden uden nogen ventetid/forsinkelse.
    Hvis en eller flere SERDESIF-blokke i ikke-PCIe-tilstand anvendes i designet, er der kun én fase af registerkonfigurationen. CONFIG1_DONE og CONIG2_DONE hævdes efter hinanden uden nogen ventetid/forsinkelse.
    Hvis en eller flere SERDESIF-blokke i PCIe-tilstand bruges i designet, er der to faser af registerkonfiguration. CONFIG1_DONE hævdes efter den første fase af registerkonfigurationen er fuldført. SERDESIF system og vognbaneregistre konfigureres i denne fase. Hvis SERDESIF er konfigureret i en ikke-PCIE-tilstand, bekræftes CONFIG2_DONE-signalet også med det samme.
  5. Den anden fase af registerkonfigurationen følger derefter (hvis SERDESIF er konfigureret i PCIE-tilstand). Følgende er de forskellige begivenheder, der sker i anden fase:
    – CoreResetP deaktiverer PHY_RESET_N- og CORE_RESET_N-signaler svarende til hver af de anvendte SERDESIF-blokke. Det hævder også et udgangssignal SDIF_RELEASED, efter at alle SERDESIF-blokkene er ude af nulstilling. Dette SDIF_RELEASED-signal bruges til at indikere til CoreConfigP, at SERDESIF-kernen er ude af nulstilling og er klar til den anden fase af registerkonfigurationen.
    – Når SDIF_RELEASED-signalet er hævdet, begynder SystemInit()-funktionen at polle for påstanden om PMA_READY på den relevante SERDESIF-bane. Når først PMA_READY er hævdet, konfigureres/skrives det andet sæt SERDESIF-registre (PCIE-registre) af SystemInit()-funktionen.
  6. Efter at alle PCIE-registre er konfigureret, skriver SystemInit()-funktionen til CoreConfigP-kontrolregistrene for at indikere fuldførelsen af ​​den anden fase af registerkonfigurationen; CoreConfigP-udgangssignalet CONIG2_DONE hævdes derefter.
  7. Bortset fra ovenstående signalpåstande/de-påstande, styrer CoreResetP også initialiseringen af ​​de forskellige blokke ved at udføre følgende funktioner:
    – Afhævelse af FDDR-kernenulstillingen
    – Afhævelse af SERDESIF-blokkene PHY og CORE nulstilles
    – Overvågning af FDDR PLL (FPLL) låsesignal. FPLL'en skal være låst for at garantere, at FDDR AXI/AHBLite-datagrænsefladen og FPGA-strukturen kan kommunikere korrekt.
    – Overvågning af SERDESIF blok PLL (SPLL) låsesignaler. SPLL'en skal være låst for at garantere, at SERDESIF blokerer AXI/AHBLite-grænsefladen (PCIe-tilstand) eller XAUI-grænsefladen kan kommunikere korrekt med FPGA-strukturen.
    – Venter på, at de eksterne DDR-hukommelser sætter sig og er klar til at blive tilgået af DDR-controllere.
  8. Når alle perifere enheder har fuldført deres initialisering, bekræfter CoreResetP signalet INIT_DONE; det interne CoreConfigP-register INIT_DONE hævdes derefter.
    Hvis en eller begge MDDR/FDDR bruges, og DDR-initieringstiden er nået, hævdes CoreResetP-udgangssignalet DDR_READY. Påstand om dette signal DDR_READY kan overvåges som en indikation af, at DDR (MDDR/FDDR) er klar til kommunikation.
    Hvis en eller flere SERDESIF-blokke bruges, og den anden fase af registerkonfigurationen er fuldført, bekræftes CoreResetP-udgangssignalet SDIF_READY. Bekræftelse af dette signal SDIF_READY kan overvåges som en indikation af, at alle SERDESIF-blokkene er klar til kommunikation.
  9. SystemInit()-funktionen, som har ventet på, at INIT_DONE blev hævdet, fuldføres, og applikationens main()-funktion udføres. På det tidspunkt er alle brugte DDR-controllere og SERDESIF-blokke blevet initialiseret, og firmwareapplikationen og FPGA-stoflogikken kan kommunikere med dem pålideligt.

Metoden beskrevet i dette dokument er afhængig af, at Cortex-M3 udfører initialiseringsprocessen som en del af systeminitialiseringskoden, der udføres før applikationens hoved()funktion.
Se flowdiagrammerne i figur 1-1, figur 1-2 og figur 1-3 for initialiseringstrinnene for FDDR/MDDR, SEREDES (ikke-PCIe-tilstand) og SERDES (PCIe-tilstand).
Figur 1-4 viser et tidsdiagram for perifer initialisering.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - timingdiagram 1 Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - timingdiagram 2

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - timingdiagram 3Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - timingdiagram 4Figur 1-3 • SERDESIF (PCIe) initialiseringsflowdiagram
Initialiseringsproceduren beskrevet i dette dokument kræver, at du kører Cortex-M3 under initialiseringsprocessen, selvom du ikke planlægger at køre nogen kode på Cortex-M3. Du skal oprette et grundlæggende firmwareprogram, der ikke gør noget (en simpel løkke, f.eksample) og indlæs den eksekverbare i den indlejrede ikke-flygtige hukommelse (eNVM), så DDR-controllere og SERDESIF-blokke initialiseres, når Cortex-M3 starter.

Brug af System Builder til at skabe et design ved hjælp af DDR- og SERDESIF-blokke

SmartFusion2 System Builder er et kraftfuldt designværktøj, der hjælper dig med at fange dine krav på systemniveau og producere et design, der implementerer disse krav. En meget vigtig funktion af System Builder er den automatiske oprettelse af undersystemet Perifer initialisering. "Brug af SmartDesign til at skabe et design ved hjælp af DDR- og SERDESIF-blokke" på side 17 beskriver detaljeret, hvordan man opretter en sådan løsning uden System Builder.
Hvis du bruger System Builder, skal du udføre følgende opgaver for at skabe et design, der initialiserer dine DDR-controllere og SERDESIF-blokke ved opstart:

  1. På siden Enhedsfunktioner (Figur 2-1) skal du angive, hvilke DDR-controllere, der bruges, og hvor mange SERDESIF-blokke, der bruges i dit design.
  2. På Hukommelsessiden skal du angive typen af ​​DDR (DDR2/DDR3/LPDDR) og konfigurationsdataene for dine eksterne DDR-hukommelser. Se afsnittet Hukommelsesside for detaljer.
  3. På siden Periferiudstyr skal du tilføje stofmastere konfigureret som AHBLite/AXI til Fabric DDR Subsystem og/eller MSS DDR FIC Subsystem (valgfrit).
  4. På siden Urindstillinger skal du angive clockfrekvenserne for DDR-undersystemerne.
  5. Udfyld din designspecifikation, og klik på Udfør. Dette genererer det System Builder-skabte design, inklusive den logik, der er nødvendig for 'initialiserings'-løsningen.
  6. Hvis du bruger SERDESIF-blokke, skal du instansiere SERDESIF-blokkene i dit design og forbinde deres initialiseringsporte til dem i den System Builder-genererede kerne.

System Builder Enhedsfunktioner side
På siden Enhedsfunktioner skal du angive, hvilke DDR-controllere (MDDR og/eller FDDR) der bruges, og hvor mange SERDESIF-blokke der bruges i dit design (Figur 2-1).

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - side med enhedsfunktionerFigur 2-1 • System Builder Enhedsfunktioner side

System Builder Hukommelsesside
For at bruge MSS DDR (MDDR) eller Fabric DDR (FDDR), skal du vælge Hukommelsestype fra rullelisten (Figur 2-2).

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - ekstern hukommelseFigur 2-2 • MSS ekstern hukommelse

Du skal:

  1. Vælg DDR-typen (DDR2, DDR3 eller LPDDR).
  2. Definer indstillingstiden for DDR-hukommelsen. Se specifikationer for din eksterne DDR-hukommelse for at indstille den korrekte hukommelsesindstillingstid. DDR-hukommelsen kan muligvis ikke initialiseres korrekt, hvis hukommelsesindstillingstiden ikke er korrekt indstillet.
  3. Importer enten DDR-registerets konfigurationsdata eller indstil dine DDR-hukommelsesparametre. For detaljer henvises til Microsemi SmartFusion2 High Speed ​​Seriel- og DDR-grænseflader Brugervejledning.

Disse data bruges til at generere DDR-registret BFM og firmwarekonfiguration files som beskrevet i "Oprettelse og kompilering af firmwareapplikationen" på side 26 og "BFM Files Bruges til at simulere designet" på side 27. For detaljer om DDR-controllerkonfigurationsregistre henvises til Microsemi SmartFusion2 High Speed ​​Seriel- og DDR-grænseflader Brugervejledning.
En eksample af konfigurationen file syntaks er vist i figur 2-3. De registernavne, der er brugt heri file er de samme som beskrevet i Microsemi SmartFusion2 High Speed ​​Seriel- og DDR-grænseflader Brugervejledning

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - File Syntaks EksampleFigur 2-3 • Konfiguration File Syntaks Eksample
Side med eksterne enheder til System Builder
På siden Periferiudstyr oprettes et separat undersystem for hver DDR-controller (Fabric DDR Subsystem for FDDR og MSS DDR FIC Subsystem for MDDR). Du kan tilføje en Fabric AMBA Master (konfigureret som AXI/AHBLite) kerne til hvert af disse undersystemer for at give fabric master adgang til DDR controllere. Ved generering instansierer System Builder automatisk buskerner (afhængigt af typen af ​​tilføjet AMBA Master) og eksponerer buskernens master BIF og ur- og nulstillingsbenene for de tilsvarende undersystemer (FDDR/MDDR) under passende bengrupper for top. Alt du skal gøre er at forbinde BIF'erne til de relevante Fabric Master-kerner, som du ville instansiere i designet. I tilfælde af MDDR er det valgfrit at tilføje en Fabric AMBA Master-kerne til MSS DDR FIC-undersystemet; Cortex-M3 er en standard master på dette undersystem. Figur 2-4 viser System Builder Peripherals-siden.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - side til Builder-ydre enhederFigur 2-4 • System Builder Periferiudstyr Side

System Builder Ur Indstillingsside
På siden Urindstillinger skal du for hver DDR-controller specificere de klokfrekvenser, der er relateret til hvert DDR (MDDR og/eller FDDR)-undersystem.
For MDDR skal du angive:

  • MDDR_CLK – Dette ur bestemmer driftsfrekvensen for DDR-controlleren og bør matche den clock-frekvens, du ønsker, at din eksterne DDR-hukommelse skal køre på. Dette ur er defineret som et multiplum af M3_CLK (Cortex-M3 og MSS Main Clock, figur 2-5). MDDR_CLK skal være mindre end 333 MHz.
  • DDR_FIC_CLK – Hvis du har valgt også at få adgang til MDDR fra FPGA-stoffet, skal du angive DDR_FIC_CLK. Denne klokfrekvens er defineret som forholdet mellem MDDR_CLK og bør matche den frekvens, hvormed FPGA-stofundersystemet, der får adgang til MDDR'en, kører.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - MDDR-ureFigur 2-5 • Cortex-M3 og MSS hovedur; MDDR ure

For FDDR skal du angive:

  • FDDR_CLK – Bestemmer driftsfrekvensen for DDR-controlleren og bør matche den clock-frekvens, som du ønsker, at din eksterne DDR-hukommelse skal køre med. Bemærk, at dette ur er defineret som et multiplum af M3_CLK (MSS og Cortex-M3 ur, figur 2-5). FDDR_CLK skal være inden for 20 MHz og 333 MHz.
  • FDDR_SUBSYSTEM_CLK – Denne klokfrekvens er defineret som et forhold mellem FDDR_CLK og bør matche den frekvens, hvormed FPGA-stofundersystemet, der får adgang til FDDR'en, kører.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - DDR-ure i stofFigur 2-6 • DDR-ure i stof
SERDESIF konfiguration
SERDESIF-blokkene er ikke instansieret i det System Builder-genererede design. Men for alle SERDESIF-blokkene er initialiseringssignaler tilgængelige på grænsefladen af ​​System Builder-kernen og kan forbindes til SERDESIF-kernerne på det næste niveau af hierarki, som vist i figur 2-7.Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - Perifer initialiseringsforbindelseFigur 2-7 • SERDESIF Perifer initialiseringsforbindelse
I lighed med DDR-konfigurationsregistrene har hver SERDES-blok også konfigurationsregistre, der skal indlæses ved kørsel. Du kan enten importere disse registerværdier eller bruge High Speed ​​Serial Interface Configurator (Figur 2-8) til at indtaste dine PCIe- eller EPCS-parametre, og registerværdierne beregnes automatisk for dig. For detaljer henvises til SERDES Configurator Brugervejledning.Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - seriel grænsefladekonfiguratorFigur 2-8 • Højhastigheds seriel grænsefladekonfigurator
Når du har integreret din brugerlogik med System Builder-blokken og SERDES-blokken, kan du generere dit SmartDesign på øverste niveau. Dette genererer al HDL og BFM files, der er nødvendige for at implementere og simulere dit design. Du kan derefter fortsætte med resten af ​​designflowet.

Brug af SmartDesign til at skabe et design ved hjælp af DDR- og SERDESIF-blokke

Dette afsnit beskriver, hvordan man sætter en komplet 'initialisering'-løsning sammen uden at bruge SmartFusion2 System Builder. Målet er at hjælpe dig med at forstå, hvad du skal gøre, hvis du ikke ønsker at bruge System Builder. Dette afsnit beskriver også, hvad System Builder-værktøjet rent faktisk genererer for dig. Dette afsnit beskriver, hvordan du:

  • Indtast konfigurationsdata for DDR-controller og SERDESIF-konfigurationsregistre.
  • Instantiér og tilslut de stofkerner, der er nødvendige for at overføre konfigurationsdataene til DDR-controllere og SERDESIF-konfigurationsregistre.

DDR-controllerkonfiguration
MSS DDR (MDDR) og Fabric DDR (FDDR) controllerne skal konfigureres dynamisk (ved runtime) for at matche de eksterne DDR-hukommelseskonfigurationskrav (DDR-tilstand, PHY-bredde, burst-tilstand, ECC osv.). Data indtastet i MDDR/FDDR-konfiguratoren skrives til DDR-controllerens konfigurationsregistre af CMSIS SystemInit()-funktionen. Konfiguratoren har tre forskellige faner til indtastning af forskellige typer konfigurationsdata:

  • Generelle data (DDR-tilstand, databredde, urfrekvens, ECC, stofgrænseflade, drevstyrke)
  • Hukommelsesinitialiseringsdata (burstlængde, burstrækkefølge, timingtilstand, latens osv.)
  • Hukommelsestidsdata

Se specifikationerne for din eksterne DDR-hukommelse, og konfigurer DDR-controlleren til at matche kravene til din eksterne DDR-hukommelse.
For detaljer om DDR-konfiguration, se SmartFusion2 MSS DDR-konfigurationsbrugervejledning.
SERDESIF konfiguration
Dobbeltklik på SERDES-blokken i SmartDesign-lærredet for at åbne Configurator for at konfigurere SERDES (Figur 3-1). Du kan enten importere disse registerværdier eller bruge SERDES-konfiguratoren til at indtaste dine PCIe- eller EPCS-parametre, og registerværdierne beregnes automatisk for dig. For detaljer henvises til SERDES Configurator Brugervejledning.Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - højhastigheds seriel grænsefladekonfiguratorFigur 3-1 • Højhastigheds seriel grænsefladekonfigurator
Oprettelse af FPGA-designinitialiseringsundersystemet
For at initialisere DDR- og SERDESIF-blokkene skal du oprette initialiseringsundersystemet i FPGA-strukturen. FPGA-stofinitialiseringsundersystemet flytter data fra Cortex-M3 til DDR- og SERDESIF-konfigurationsregistrene, administrerer de nulstillingssekvenser, der kræves for, at disse blokke kan fungere, og signalerer, når disse blokke er klar til at kommunikere med resten af ​​dit design. For at oprette initialiseringsundersystemet skal du:

  • Konfigurer FIC_2 inde i MSS
  • Instantiér og konfigurer CoreConfigP- og CoreResetP-kernerne
  • Instantiér on-chip 25/50MHz RC-oscillatoren
  • Instantiér makroen System Reset (SYSRESET).
  • Tilslut disse komponenter til hver ydre enheds konfigurationsgrænseflader, ure, nulstillinger og PLL-låseporte

MSS FIC_2 APB-konfiguration
Sådan konfigurerer du MSS FIC_2:

  1. Åbn dialogboksen FIC_2-konfigurator fra MSS-konfiguratoren (Figur 3-2).
  2. Vælg Initialiser periferiudstyr ved hjælp af Cortex-M3.
  3. Afhængigt af dit system skal du markere et eller begge af følgende afkrydsningsfelter:
    – MSS DDR
    – Stof DDR og/eller SERDES blokke
  4. Klik på OK, og fortsæt med at generere MSS'en (du kan udsætte denne handling, indtil du har konfigureret MSS'en fuldstændigt til dine designkrav). FIC_2-portene (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK og FIC_2_APB_M_RESET_N) er nu synlige ved MSS-grænsefladen og kan forbindes til CoreConfigP- og CoreResetP-kernerne.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - MSS FIC 2-konfiguratorFigur 3-2 • MSS FIC_2-konfigurator

CoreConfigP
Sådan konfigurerer du CoreConfigP:

  1. Instantiér CoreConfigP i dit SmartDesign (typisk den, hvor MSS'en instantieres).
    Denne kerne kan findes i Libero-kataloget (under Peripherals).
  2. Dobbeltklik på kernen for at åbne konfiguratoren.
  3. Konfigurer kernen for at angive, hvilke perifere enheder der skal initialiseres (Figur 3-3)

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - dialogboksFigur 3-3 • CoreConfigP Dialogboks

CoreResetP
For at konfigurere CoreResetP:

  1. Instantiér CoreResetP i dit SmartDesign (typisk den, hvor MSS'en instantieres).
    Denne kerne kan findes i Libero-kataloget under Periferiudstyr.
  2. Dobbeltklik på kernen inde i SmartDesign Canvas for at åbne Configurator (Figur 3-4).
  3. Konfigurer kernen til:
    – Angiv den eksterne nulstillingsadfærd (EXT_RESET_OUT hævdet). Vælg en af ​​fire muligheder:
    o EXT_RESET_OUT hævdes aldrig
    o EXT_RESET_OUT hævdes, hvis opstartsnulstilling (POWER_ON_RESET_N) hævdes
    o EXT_RESET_OUT hævdes, hvis FAB_RESET_N hævdes
    o EXT_RESET_OUT hævdes, hvis opstartsnulstilling (POWER_ON_RESET_N) eller FAB_RESET_N hævdes
    – Angiv enheden Voltage. Den valgte værdi skal svare til voltage du valgte i Libero Project Settings dialogboksen.
    – Marker de relevante afkrydsningsfelter for at angive, hvilke ydre enheder du bruger i dit design.
    – Angiv den eksterne DDR-hukommelsesindstillingstid. Dette er den maksimale værdi for alle DDR-hukommelser, der bruges i din applikation (MDDR og FDDR). Se databladet fra den eksterne DDR-hukommelsesleverandør for at konfigurere denne parameter. 200us er en god standardværdi for DDR2- og DDR3-hukommelser, der kører ved 200MHz. Dette er en meget vigtig parameter for at garantere en fungerende simulering og et fungerende system på silicium. En forkert værdi for udligningstiden kan resultere i simuleringsfejl. Se databladet fra DDR-hukommelsesleverandøren for at konfigurere denne parameter.
    – For hver SERDES-blok i dit design skal du markere de relevante felter for at angive, om:
    o PCIe bruges
    o Understøttelse af PCIe Hot Reset er påkrævet
    o Understøttelse af PCIe L2/P2 er påkrævet

Note: Hvis du bruger 090-matricen (M2S090), og dit design bruger SERDESIF, behøver du ikke at markere nogen af ​​følgende afkrydsningsfelter: 'Brugt til PCIe', 'Inkluder PCIe HotReset-understøttelse' og 'Inkluder PCIe L2/P2-understøttelse'. Hvis du bruger en ikke-090-enhed og bruger en eller flere SERDESIF-blokke, skal du markere alle fire afkrydsningsfelter under den relevante SERDESIF-sektion.
Note: For detaljer om de muligheder, der er tilgængelige for dig i denne konfigurator, henvises til CoreResetP-håndbogen.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - CoreResetPConfiguratorFigur 3-4 • CoreResetPConfigurator

25/50MHz Oscillator Instantiation
CoreConfigP og CoreResetP clockes af on-chip 25/50MHz RC-oscillatoren. Du skal instansiere en 25/50MHz Oscillator og forbinde den til disse kerner.

  1. Instantiér Chip Oscillator-kernen i dit SmartDesign (typisk den, hvor MSS'en er instantieret). Denne kerne kan findes i Libero-kataloget under Ur & Management.
  2. Konfigurer denne kerne, således at RC-oscillatoren driver FPGA-stoffet, som vist i figur 3-5.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - OscillatorkonfiguratorFigur 3-5 • Chip Oscillator Konfigurator

Systemnulstilling (SYSRESET) Instantiering
SYSRESET-makroen giver dit design funktionalitet til nulstilling af enhedsniveau. POWER_ON_RESET_N udgangssignalet hævdes/deaktiveres, når chippen tændes, eller den eksterne ben DEVRST_N hævdes/afhændes (Figur 3-6).
Instantiér SYSRESET-makroen i dit SmartDesign (typisk den, hvor MSS'en instantieres). Denne makro kan findes i Libero-kataloget under Makrobibliotek. Ingen konfiguration af denne makro er nødvendig.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - SYSRESET-makroFigur 3-6 • SYSRESET Makro

Samlet forbindelse
Når du har instantieret og konfigureret kernerne MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP og CoreResetP i dit design, skal du forbinde dem for at danne undersystemet Peripheral Initialization. For at forenkle forbindelsesbeskrivelsen i dette dokument er den opdelt i den APB3-kompatible konfigurationsdatastiforbindelse, der er knyttet til CoreConfigP og CoreResetP-relaterede forbindelser.
Konfigurationsdatastiforbindelse
Figur 3-7 viser, hvordan du forbinder CoreConfigP til MSS FIC_2-signalerne og periferiudstyrets APB3-kompatible konfigurationsgrænseflader.
Tabel 3-1 • Konfiguration Data Path Port/BIF-forbindelser

FRA
Port/Bus Interface
(BIF)/ Komponent
TIL
Port/Bus Interface (BIF)/Komponent
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

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - Sub-System ConnectivityFigur 3-7 • FIC_2 APB3 Sub-System Connectivity

Ure og nulstiller forbindelse
Figur 3-8 viser, hvordan CoreResetP forbindes til de eksterne nulstillingskilder og periferiudstyrets kerne-nulstillingssignaler. Den viser også, hvordan du forbinder CoreResetP til periferiudstyrets ursynkroniseringsstatussignaler (PLL-låsesignaler). Derudover viser den, hvordan CoreConfigP og CoreResetP er forbundet.

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller - Sub-System Connectivity 2Figur 3-8 • Core SF2Reset Sub-System Connectivity

Oprettelse og kompilering af firmwareapplikationen

Når du eksporterer firmwaren fra LiberoSoC (Design Flow Window > Export Firmware > Export Firmware), genererer Libero følgende files i /firmware/drivers_config/ sys_config mappe:

  • sys_config.c – Indeholder de datastrukturer, der indeholder værdierne for de perifere registre.
  • sys_config.h – Indeholder #define-sætningerne, der specificerer, hvilke perifere enheder der bruges i designet og skal initialiseres.
  • sys_config_mddr_define.h – Indeholder MDDR-controllerens konfigurationsdata, der er indtastet i dialogboksen Registers Configuration.
  • sys_config_fddr_define.h – Indeholder FDDR-controllerens konfigurationsdata, der er indtastet i dialogboksen Registers Configuration.
  • sys_config_mss_clocks.h – Det her file indeholder MSS-clock-frekvenserne som defineret i MSS CCC-konfiguratoren. Disse frekvenser bruges af CMSIS-koden til at give korrekte klokoplysninger til mange af de MSS-drivere, der skal have adgang til deres Peripheral Clock (PCLK) frekvens (f.eks. er MSS UART baud rate divisors en funktion af baud raten og PCLK frekvensen ).
  • sys_config_SERDESIF_ .c – Indeholder SERDESIF_ register konfigurationsdata, der blev leveret under SERDESIF_ blokkonfiguration i designoprettelse.
  • sys_config_SERDESIF_ .h – Indeholder #define-sætningerne, der angiver antallet af registerkonfigurationspar og det banenummer, der skal polles for PMA_READY (kun i PCIe-tilstand).

Disse files er påkrævet, for at CMSIS-koden kan kompilere korrekt og indeholde oplysninger om dit nuværende design, inklusive perifere konfigurationsdata og urkonfigurationsoplysninger for MSS.
Rediger ikke disse files manuelt; de oprettes til de tilsvarende komponent-/perifere-mapper, hver gang SmartDesign-komponenterne, der indeholder de respektive perifere enheder, genereres. Hvis der foretages ændringer i konfigurationsdataene for nogen af ​​de eksterne enheder, skal du gen-eksportere firmwareprojekterne, så den opdaterede firmware files (se listen ovenfor) eksporteres til / firmware/drivers_config/sys_config mappe.
Når du eksporterer firmwaren, opretter Libero SoC firmwareprojekterne: et bibliotek, hvor din designkonfiguration files og drivere er kompileret.
Hvis du markerer Opret projekt afkrydsningsfeltet når du eksporterer firmwaren, oprettes et software SoftConsole/IAR/Keil-projekt til at holde applikationsprojektet, hvor du kan redigere main.c og bruger C/H files. Åbn SoftConSole/IAR/Keil-projektet for at kompilere CMSIS-koden korrekt og få dit firmwareprogram korrekt konfigureret til at matche dit hardwaredesign.

BFM Files Bruges til at simulere designet

Når du genererer SmartDesign-komponenterne, der indeholder de perifere enheder, der er knyttet til dit design, vil simuleringen files, der svarer til de respektive perifere enheder, genereres i /simuleringsmappe:

  • test.bfm – BFM på topniveau file som først udføres under enhver simulering, der træner SmartFusion2 MSS Cortex-M3-processoren. Den udfører peripheral_init.bfm og user.bfm, i den rækkefølge.
  • MDDR_init.bfm – Hvis dit design bruger MDDR, genererer Libero dette file; den indeholder BFM-skrivekommandoer, der simulerer skrivninger af MSS DDR-konfigurationsregisterdata, du har indtastet (ved hjælp af dialogboksen Rediger registre eller i MSS_MDDR GUI) til MSS DDR-controllerregistrene.
  • FDDR_init.bfm – Hvis dit design bruger FDDR, genererer Libero dette file; den indeholder BFM-skrivekommandoer, der simulerer skrivninger af Fabric DDR-konfigurationsregisterdata, du har indtastet (ved hjælp af dialogboksen Rediger registre eller i FDDR GUI) til Fabric DDR Controller-registrene.
  • SERDESIF_ _init.bfm – Hvis dit design bruger en eller flere SERDESIF-blokke, genererer Libero dette file for hver af SERDESIF_ brugte blokke; den indeholder BFM-skrivekommandoer, der simulerer skrivning af de SERDESIF-konfigurationsregisterdata, du har indtastet (ved hjælp af dialogboksen Rediger registre eller i SERDESIF_ GUI) ind i SERDESIF_ registre. Hvis SERDESIF-blokken er konfigureret som PCIe, er dette file har også nogle #define-sætninger, der styrer udførelsen af ​​de 2 registerkonfigurationsfaser i perfekt rækkefølge.
  • bruger.bfm – Indeholder brugerkommandoer. Disse kommandoer udføres efter peripheral_init.bfm er afsluttet. Rediger dette file for at indtaste dine BFM-kommandoer.
  • SERDESIF_ _bruger.bfm – Indeholder brugerkommandoer. Rediger dette file for at indtaste dine BFM-kommandoer. Brug dette, hvis du har konfigureret SERDESIF_ blok i BFM PCIe simuleringstilstand og som en AXI/AHBLite master. Hvis du har konfigureret SERDESIF_ blok i RTL-simuleringstilstand, har du ikke brug for dette file.

Når du påberåber simulering hver gang, de følgende to simuleringer files er genskabt til /simuleringsmappe med opdateret indhold:

  • subsystem.bfm – Indeholder #define-sætningerne for hver perifer enhed brugt i dit design, som specificerer den særlige sektion af peripheral_init.bfm, der skal udføres svarende til hver perifer enhed.
  • operipheral_init.bfm – Indeholder BFM-proceduren, der emulerer CMSIS:: SystemInit()-funktionen, der køres på Cortex-M3, før du går ind i main()-proceduren. Den kopierer konfigurationsdataene for enhver perifer enhed, der er brugt i designet, til de korrekte perifere konfigurationsregistre og venter derefter på, at alle de perifere enheder er klar, før den hævder, at du kan bruge disse perifere enheder. Den udfører MDDR_init.bfm og FDDR_init.bfm.

Ved hjælp af disse genererede files, konfigureres DDR-controllerne i dit design automatisk og simulerer, hvad der ville ske på en SmartFusion2-enhed. Du kan redigere user.bfm file for at tilføje de nødvendige kommandoer for at simulere dit design (Cortex-M3 er masteren). Disse kommandoer udføres, efter at de eksterne enheder er blevet initialiseret. Rediger ikke test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files og SERDESIF_ _init.bfm files.

Produktsupport

Microsemi SoC Products Group støtter sine produkter med forskellige supporttjenester, herunder kundeservice, teknisk kundesupportcenter, et webwebsted, elektronisk post og verdensomspændende salgskontorer.
Dette appendiks indeholder oplysninger om at kontakte Microsemi SoC Products Group og bruge disse supporttjenester.
Kundeservice
Kontakt kundeservice for ikke-teknisk produktsupport, såsom produktpriser, produktopgraderinger, opdateringsoplysninger, ordrestatus og godkendelse.
Ring fra Nordamerika 800.262.1060
Ring fra resten af ​​verden 650.318.4460
Fax, hvor som helst i verden, 408.643.6913
Kunde Teknisk Support Center
Microsemi SoC Products Group bemander sit tekniske kundesupportcenter med højtuddannede ingeniører, som kan hjælpe med at besvare dine hardware-, software- og designspørgsmål om Microsemi SoC-produkter. Customer Technical Support Center bruger meget tid på at oprette applikationsnotater, svar på almindelige designcyklusspørgsmål, dokumentation af kendte problemer og forskellige ofte stillede spørgsmål. Så før du kontakter os, bedes du besøge vores onlineressourcer. Det er meget sandsynligt, at vi allerede har besvaret dine spørgsmål.
Teknisk support
Besøg kundesupporten webwebsted (www.microsemi.com/soc/support/search/default.aspx) for mere information og support. Mange svar tilgængelige på den søgbare web ressource inkluderer diagrammer, illustrationer og links til andre ressourcer på webwebsted.
Webwebsted
Du kan gennemse en række forskellige tekniske og ikke-tekniske oplysninger på SoC-hjemmesiden på www.microsemi.com/soc.
Kontakt det tekniske kundesupportcenter
Højt dygtige ingeniører bemander Technical Support Center. Det tekniske supportcenter kan kontaktes via e-mail eller gennem Microsemi SoC Products Group webwebsted.
E-mail
Du kan kommunikere dine tekniske spørgsmål til vores e-mailadresse og modtage svar tilbage via e-mail, fax eller telefon. Hvis du har designproblemer, kan du også maile dit design files at modtage assistance.
Vi overvåger konstant e-mail-kontoen i løbet af dagen. Når du sender din anmodning til os, skal du sørge for at inkludere dit fulde navn, firmanavn og dine kontaktoplysninger for effektiv behandling af din anmodning.
Den tekniske support-e-mailadresse er soc_tech@microsemi.com.
Mine sager
Microsemi SoC Products Group-kunder kan indsende og spore tekniske sager online ved at gå til Mine sager.
Uden for USA
Kunder, der har brug for assistance uden for de amerikanske tidszoner, kan enten kontakte teknisk support via e-mail (soc_tech@microsemi.com) eller kontakt et lokalt salgskontor. Salgskontoroversigter kan findes på www.microsemi.com/soc/company/contact/default.aspx.
ITAR teknisk support
For teknisk support på RH og RT FPGA'er, der er reguleret af International Traffic in Arms Regulations (ITAR), kontakt os via soc_tech_itar@microsemi.com. Alternativt kan du i Mine sager vælge Ja på rullelisten ITAR. Besøg ITAR for en komplet liste over ITAR-regulerede Microsemi FPGA'er web side.
Microsemi Corporation (NASDAQ: MSCC) tilbyder en omfattende portefølje af halvlederløsninger til: rumfart, forsvar og sikkerhed; virksomhed og kommunikation; og industrielle og alternative energimarkeder. Produkterne omfatter højtydende, højpålidelige analoge og RF-enheder, blandede signal- og RF-integrerede kredsløb, tilpassede SoC'er, FPGA'er og komplette undersystemer. Microsemi har hovedkvarter i Aliso Viejo, Californien. Lær mere på www.microsemi.com.
© 2014 Microsemi Corporation. Alle rettigheder forbeholdes. Microsemi og Microsemi-logoet er varemærker tilhørende Microsemi Corporation. Alle andre varemærker og servicemærker tilhører deres respektive ejere.

5-02-00384-1/08.14Microsemi logoMicrosemi Corporate hovedkvarter
One Enterprise, Aliso Viejo CA 92656 USA
Inden for USA: +1 949-380-6100
Salg: +1 949-380-6136
Fax: +1 949-215-4996

Dokumenter/ressourcer

Microsemi SmartFusion2 DDR-controller og seriel højhastighedscontroller [pdfBrugervejledning
SmartFusion2 DDR-controller og seriel højhastighedscontroller, SmartFusion2 DDR, controller og seriel højhastighedscontroller, højhastighedscontroller

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *