Microsemi logoSmartFusion2
DDR-kontroller og seriell høyhastighetskontroller
Initialiseringsmetodikk
Brukerveiledning

Introduksjon

Når du oppretter et design ved hjelp av en SmartFusion2-enhet, hvis du bruker en av de to DDR-kontrollerne (FDDR eller MDDR) eller noen av blokkene for seriell høyhastighetskontroller (SERDESIF), må du initialisere konfigurasjonsregistrene til disse blokkene ved kjøring før de kan brukes. For eksample, for DDR-kontrolleren må du stille inn DDR-modus (DDR3/DDR2/LPDDR), PHY-bredde, burst-modus og ECC.
På samme måte, for SERDESIF-blokken som brukes som et PCIe-endepunkt, må du sette PCIE BAR til AXI (eller AHB) vinduet.
Dette dokumentet beskriver trinnene som er nødvendige for å lage et Libero-design som automatisk initialiserer DDR-kontrolleren og SERDESIF-blokkene ved oppstart. Den beskriver også hvordan du genererer fastvarekoden fra Libero SOC som brukes i den innebygde designflyten.
En detaljert beskrivelse av operasjonsteorien gis først.
Den neste delen beskriver hvordan du lager et slikt design ved hjelp av Libero SoC System Builder, et kraftig designverktøy som blant annet skaper "initialiseringsløsningen" for deg hvis du bruker DDR- eller SERDESIF-blokker i designet.
Den neste delen beskriver hvordan du setter sammen en komplett 'initialisering'-løsning uten å bruke SmartFusion2 System Builder. Dette hjelper til med å forklare hva som må gjøres hvis du ikke ønsker å bruke System Builder, og beskriver også hva System Builder-verktøyet faktisk genererer for deg. Denne delen tar for seg:

  • Opprettelsen av konfigurasjonsdataene for DDR-kontrolleren og SERDESIF-konfigurasjonsregistrene
  • Opprettelsen av FPGA-logikken som kreves for å overføre konfigurasjonsdataene til de forskjellige ASIC-konfigurasjonsregistrene

Til slutt beskriver vi det genererte fileer relatert til:

  • Opprettelsen av firmware 'initialisering' løsning.
  • Simuleringen av designet for DDR 'initialisering'-løsningen.

For detaljer om DDR-kontrolleren og SERDESIF-konfigurasjonsregistrene, se Brukerveiledning for Microsemi SmartFusion2 høyhastighets serie- og DDR-grensesnitt.

Operasjonsteori

Den perifere initialiseringsløsningen bruker følgende hovedkomponenter:

  • CMSIS SystemInit()-funksjonen, som kjører på Cortex-M3 og orkestrerer initialiseringsprosessen.
  • CoreConfigP myk IP-kjernen, som initialiserer periferiutstyrets konfigurasjonsregistre.
  • CoreResetP myk IP-kjernen, som administrerer tilbakestillingssekvensen til MSS, DDR-kontrollere og SERDESIF-blokker.

Den perifere initialiseringsprosessen fungerer som følger:

  1. Ved tilbakestilling kjører Cortex-M3 funksjonen CMSIS SystemInit(). Denne funksjonen kjøres automatisk før applikasjonens main()-funksjon utføres.
    CoreResetP-utgangssignalet MSS_HPMS_READY bekreftes ved begynnelsen av initialiseringsprosessen, noe som indikerer at MSS og alle periferiutstyr (unntatt MDDR) er klare for kommunikasjon.
  2. SystemInit()-funksjonen skriver konfigurasjonsdata til DDR-kontrollerne og SERDESIF-konfigurasjonsregistrene via MSS FIC_2 APB3-bussen. Dette grensesnittet er koblet til den myke CoreConfigP-kjernen instansiert i FPGA-stoffet.
  3. Etter at alle registre er konfigurert, skriver SystemInit()-funksjonen til CoreConfigP-kontrollregistrene for å indikere at registerkonfigurasjonsfasen er fullført; CoreConfigP-utgangssignalene CONFIG1_DONE og CONIG2_DONE blir deretter bekreftet.
    Det er to faser av registerkonfigurasjon (CONFIG1 og CONFIG2) avhengig av periferiutstyret som brukes i designet.
  4. Hvis en eller begge MDDR/FDDR brukes, og ingen av SERDESIF-blokkene brukes i designet, er det bare én registerkonfigurasjonsfase. Begge CoreConfigP-utgangssignalene CONFIG1_DONE og CONIG2_DONE hevdes etter hverandre uten venting/forsinkelse.
    Hvis en eller flere SERDESIF-blokker i ikke-PCIe-modus brukes i designet, er det bare én fase av registerkonfigurasjonen. CONFIG1_DONE og CONIG2_DONE hevdes etter hverandre uten venting/forsinkelse.
    Hvis en eller flere SERDESIF-blokker i PCIe-modus brukes i designet, er det to faser med registerkonfigurasjon. CONFIG1_DONE hevdes etter at den første fasen av registerkonfigurasjonen er fullført. SERDESIF system og kjørefeltregistre konfigureres i denne fasen. Hvis SERDESIF er konfigurert i en ikke-PCIE-modus, blir CONFIG2_DONE-signalet også bekreftet umiddelbart.
  5. Den andre fasen av registerkonfigurasjonen følger deretter (hvis SERDESIF er konfigurert i PCIE-modus). Følgende er de forskjellige hendelsene som skjer i den andre fasen:
    – CoreResetP deaktiverer PHY_RESET_N- og CORE_RESET_N-signaler som tilsvarer hver av SERDESIF-blokkene som brukes. Den hevder også et utgangssignal SDIF_RELEASED etter at alle SERDESIF-blokkene er ute av tilbakestilling. Dette SDIF_RELEASED-signalet brukes til å indikere til CoreConfigP at SERDESIF-kjernen er ute av tilbakestilling og er klar for den andre fasen av registerkonfigurasjonen.
    – Så snart SDIF_RELEASED-signalet er bekreftet, begynner SystemInit()-funksjonen å spørre etter påstanden om PMA_READY på den aktuelle SERDESIF-banen. Når PMA_READY er bekreftet, blir det andre settet med SERDESIF-registre (PCIE-registre) konfigurert/skrevet av SystemInit()-funksjonen.
  6. Etter at alle PCIE-registrene er konfigurert, skriver SystemInit()-funksjonen til CoreConfigP-kontrollregistrene for å indikere fullføringen av den andre fasen av registerkonfigurasjonen; CoreConfigP-utgangssignalet CONIG2_DONE blir da hevdet.
  7. Bortsett fra de ovennevnte signalpåstandene/de-påstandene, administrerer CoreResetP også initialiseringen av de forskjellige blokkene ved å utføre følgende funksjoner:
    – Deaktivering av tilbakestillingen av FDDR-kjerne
    – Deaktivering av SERDESIF-blokkene PHY og CORE tilbakestilles
    – Overvåking av FDDR PLL (FPLL) låsesignal. FPLL-en må ha låst for å garantere at FDDR AXI/AHBLite-datagrensesnittet og FPGA-strukturen kan kommunisere riktig.
    – Overvåking av SERDESIF blokk PLL (SPLL) låsesignaler. SPLL-en må ha låst for å garantere at SERDESIF blokkerer AXI/AHBLite-grensesnittet (PCIe-modus) eller XAUI-grensesnittet kan kommunisere riktig med FPGA-stoffet.
    – Venter på at de eksterne DDR-minnene skal sette seg og være klare til å få tilgang til av DDR-kontrollerne.
  8. Når alle eksterne enheter har fullført initialiseringen, hevder CoreResetP INIT_DONE-signalet; det interne CoreConfigP-registeret INIT_DONE blir deretter bekreftet.
    Hvis en eller begge av MDDR/FDDR brukes, og DDR-initieringstiden er nådd, bekreftes CoreResetP-utgangssignalet DDR_READY. Påstand om dette signalet DDR_READY kan overvåkes som en indikasjon på at DDR (MDDR/FDDR) er klar for kommunikasjon.
    Hvis en eller flere SERDESIF-blokker brukes, og den andre fasen av registerkonfigurasjonen er vellykket fullført, bekreftes CoreResetP-utgangssignalet SDIF_READY. Påstand om dette signalet SDIF_READY kan overvåkes som en indikasjon på at alle SERDESIF-blokkene er klare for kommunikasjon.
  9. SystemInit()-funksjonen, som har ventet på at INIT_DONE skal hevdes, fullføres, og applikasjonens hoved()-funksjon utføres. På den tiden var alle brukte DDR-kontrollere og SERDESIF-blokker initialisert, og fastvareapplikasjonen og FPGA-stofflogikken kan kommunisere pålitelig med dem.

Metoden beskrevet i dette dokumentet er avhengig av at Cortex-M3 utfører initialiseringsprosessen som en del av systeminitialiseringskoden utført før applikasjonens hoved()funksjon.
Se flytskjemaene i figur 1-1, figur 1-2 og figur 1-3 for initialiseringstrinn for FDDR/MDDR, SEREDES (ikke-PCIe-modus) og SERDES (PCIe-modus).
Figur 1-4 viser et tidsdiagram for perifer initialisering.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - tidsdiagram 1 Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - tidsdiagram 2

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - tidsdiagram 3Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - tidsdiagram 4Figur 1-3 • SERDESIF (PCIe) initialiseringsflytskjema
Initialiseringsprosedyren beskrevet i dette dokumentet krever at du kjører Cortex-M3 under initialiseringsprosessen, selv om du ikke planlegger å kjøre noen kode på Cortex-M3. Du må lage et grunnleggende fastvareprogram som ikke gjør noe (en enkel sløyfe, for eksempelample) og last den kjørbare filen i det innebygde ikke-flyktige minnet (eNVM) slik at DDR-kontrollerne og SERDESIF-blokkene initialiseres når Cortex-M3 starter opp.

Bruke System Builder for å lage et design ved å bruke DDR- og SERDESIF-blokker

SmartFusion2 System Builder er et kraftig designverktøy som hjelper deg med å fange opp kravene på systemnivå og produsere et design som implementerer disse kravene. En svært viktig funksjon til systembyggeren er den automatiske opprettelsen av undersystemet for perifer initialisering. "Bruke SmartDesign for å lage et design ved å bruke DDR- og SERDESIF-blokker" på side 17 beskriver i detalj hvordan du lager en slik løsning uten systembyggeren.
Hvis du bruker System Builder, må du utføre følgende oppgaver for å lage et design som initialiserer DDR-kontrollerne og SERDESIF-blokkene ved oppstart:

  1. På siden Enhetsfunksjoner (Figur 2-1), spesifiser hvilke DDR-kontrollere som brukes og hvor mange SERDESIF-blokker som brukes i designet.
  2. På Minne-siden angir du typen DDR (DDR2/DDR3/LPDDR) og konfigurasjonsdataene for dine eksterne DDR-minner. Se avsnittet Minneside for detaljer.
  3. På siden Peripherals legger du til tekstilmastere konfigurert som AHBLite/AXI til Fabric DDR Subsystem og/eller MSS DDR FIC Subsystem (valgfritt).
  4. På siden Klokkeinnstillinger angir du klokkefrekvensene for DDR-undersystemene.
  5. Fullfør designspesifikasjonen og klikk Fullfør. Dette genererer den systembyggeren opprettede designen, inkludert logikken som er nødvendig for 'initialiseringsløsningen'.
  6. Hvis du bruker SERDESIF-blokker, må du instansiere SERDESIF-blokkene i designet og koble initialiseringsportene til portene til den System Builder-genererte kjernen.

System Builder Enhetsfunksjoner-side
På siden Enhetsfunksjoner, spesifiser hvilke DDR-kontrollere (MDDR og/eller FDDR) som brukes og hvor mange SERDESIF-blokker som brukes i designet (Figur 2-1).

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - side med enhetsfunksjonerFigur 2-1 • System Builder Enhetsfunksjoner-side

Minneside for systembygger
For å bruke MSS DDR (MDDR) eller Fabric DDR (FDDR), velg Minnetype fra rullegardinlisten (Figur 2-2).

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - eksternt minneFigur 2-2 • MSS eksternt minne

Du må:

  1. Velg DDR-typen (DDR2, DDR3 eller LPDDR).
  2. Definer innstillingstiden for DDR-minnet. Se spesifikasjonene for din eksterne DDR-minne for å stille inn riktig tid for minneinnstilling. DDR-minnet kan ikke initialiseres riktig hvis minneinnstillingstiden ikke er riktig stilt inn.
  3. Importer enten DDR-registerets konfigurasjonsdata eller still inn DDR-minneparametrene. For detaljer, se Brukerveiledning for Microsemi SmartFusion2 høyhastighets serie- og DDR-grensesnitt.

Disse dataene brukes til å generere DDR-registeret BFM og fastvarekonfigurasjon files som beskrevet i "Opprette og kompilere fastvareapplikasjonen" på side 26 og "BFM Files Brukes til å simulere designet” på side 27. For detaljer om DDR-kontrollerkonfigurasjonsregistre, se Brukerveiledning for Microsemi SmartFusion2 høyhastighets serie- og DDR-grensesnitt.
En eksample av konfigurasjonen file syntaks er vist i figur 2-3. Registernavnene som er brukt i dette file er de samme som beskrevet i Brukerveiledning for Microsemi SmartFusion2 høyhastighets serie- og DDR-grensesnitt

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - File Syntaks EksampleFigur 2-3 • Konfigurasjon File Syntaks Eksample
Side for eksterne enheter for systembygger
På siden periferiutstyr opprettes det et eget undersystem for hver DDR-kontroller (Fabric DDR Subsystem for FDDR og MSS DDR FIC Subsystem for MDDR). Du kan legge til en Fabric AMBA Master (konfigurert som AXI/AHBLite) kjerne til hvert av disse undersystemene for å muliggjøre stoffmastertilgang til DDR-kontrollerne. Ved generering instansierer System Builder automatisk busskjerner (avhengig av typen AMBA Master som er lagt til) og eksponerer master BIF for busskjernen og klokken og tilbakestillingspinnene til de tilsvarende undersystemene (FDDR/MDDR) under passende pingrupper, for topp. Alt du trenger å gjøre er å koble BIF-ene til de riktige Fabric Master-kjernene som du vil instansiere i designet. Når det gjelder MDDR, er det valgfritt å legge til en Fabric AMBA Master-kjerne til MSS DDR FIC-undersystemet; Cortex-M3 er en standard master på dette undersystemet. Figur 2-4 viser System Builder Peripherals-siden.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - side for Builder-tilbehørFigur 2-4 • System Builder Periferiutstyr-side

System Builder-klokkeinnstillingssiden
På siden Klokkeinnstillinger, for hver DDR-kontroller, må du spesifisere klokkefrekvensene knyttet til hvert DDR (MDDR og/eller FDDR)-undersystem.
For MDDR må du spesifisere:

  • MDDR_CLK – Denne klokken bestemmer driftsfrekvensen til DDR-kontrolleren og skal samsvare med klokkefrekvensen du ønsker at det eksterne DDR-minnet skal kjøre på. Denne klokken er definert som et multiplum av M3_CLK (Cortex-M3 og MSS Main Clock, figur 2-5). MDDR_CLK må være mindre enn 333 MHz.
  • DDR_FIC_CLK – Hvis du også har valgt å få tilgang til MDDR fra FPGA-stoffet, må du spesifisere DDR_FIC_CLK. Denne klokkefrekvensen er definert som forholdet mellom MDDR_CLK og skal samsvare med frekvensen som FPGA-stoffundersystemet som får tilgang til MDDR kjører.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - MDDR-klokkerFigur 2-5 • Cortex-M3 og MSS hovedklokke; MDDR-klokker

For FDDR må du spesifisere:

  • FDDR_CLK – Bestemmer driftsfrekvensen til DDR-kontrolleren og skal samsvare med klokkefrekvensen du ønsker at det eksterne DDR-minnet skal kjøre på. Merk at denne klokken er definert som et multiplum av M3_CLK (MSS og Cortex-M3 klokken, figur 2-5). FDDR_CLK må være innenfor 20 MHz og 333 MHz.
  • FDDR_SUBSYSTEM_CLK – Denne klokkefrekvensen er definert som et forhold mellom FDDR_CLK og skal samsvare med frekvensen som FPGA-stoffundersystemet som får tilgang til FDDR kjører.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - DDR-klokker i stoffFigur 2-6 • DDR-klokker i stoff
SERDESIF-konfigurasjon
SERDESIF-blokkene er ikke instansiert i den System Builder-genererte designen. For alle SERDESIF-blokkene er imidlertid initialiseringssignaler tilgjengelige i grensesnittet til System Builder-kjernen og kan kobles til SERDESIF-kjernene på neste nivå av hierarki, som vist i figur 2-7.Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - Perifer initialiseringstilkoblingFigur 2-7 • SERDESIF Perifer Initialization Connectivity
I likhet med DDR-konfigurasjonsregistrene har hver SERDES-blokk også konfigurasjonsregistre som må lastes under kjøretid. Du kan enten importere disse registerverdiene eller bruke High Speed ​​Serial Interface Configurator (Figur 2-8) for å angi PCIe- eller EPCS-parameterne og registerverdiene beregnes automatisk for deg. For detaljer, se Brukerveiledning for SERDES Configurator.Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - seriell grensesnittkonfiguratorFigur 2-8 • Høyhastighets seriell grensesnittkonfigurator
Når du har integrert brukerlogikken din med System Builder-blokken og SERDES-blokken, kan du generere ditt toppnivå SmartDesign. Dette genererer all HDL og BFM files som er nødvendige for å implementere og simulere designet ditt. Du kan deretter fortsette med resten av designflyten.

Bruke SmartDesign til å lage et design ved å bruke DDR- og SERDESIF-blokker

Denne delen beskriver hvordan du setter en komplett 'initialisering'-løsning sammen uten å bruke SmartFusion2 System Builder. Målet er å hjelpe deg å forstå hva du må gjøre hvis du ikke ønsker å bruke systembyggeren. Denne delen beskriver også hva System Builder-verktøyet faktisk genererer for deg. Denne delen beskriver hvordan du:

  • Skriv inn konfigurasjonsdataene for DDR-kontrolleren og SERDESIF-konfigurasjonsregistrene.
  • Instantier og koble til stoffkjernene som kreves for å overføre konfigurasjonsdataene til DDR-kontrollerne og SERDESIF-konfigurasjonsregistrene.

DDR-kontrollerkonfigurasjon
MSS DDR (MDDR) og Fabric DDR (FDDR)-kontrollere må konfigureres dynamisk (ved kjøretid) for å matche konfigurasjonskravene for eksternt DDR-minne (DDR-modus, PHY-bredde, burst-modus, ECC, etc.). Data som legges inn i MDDR/FDDR-konfiguratoren skrives til DDR-kontrollerens konfigurasjonsregistre av CMSIS SystemInit()-funksjonen. Konfiguratoren har tre forskjellige faner for å legge inn forskjellige typer konfigurasjonsdata:

  • Generelle data (DDR-modus, Databredde, Klokkefrekvens, ECC, Fabric Interface, Drive Strength)
  • Minneinitialiseringsdata (serielengde, serierekkefølge, tidsmodus, forsinkelse osv.)
  • Memory Timing data

Se spesifikasjonene til ditt eksterne DDR-minne og konfigurer DDR-kontrolleren slik at den samsvarer med kravene til ditt eksterne DDR-minne.
For detaljer om DDR-konfigurasjon, se SmartFusion2 MSS DDR-konfigurasjonsbrukerveiledning.
SERDESIF-konfigurasjon
Dobbeltklikk på SERDES-blokken i SmartDesign-lerretet for å åpne konfiguratoren for å konfigurere SERDES (Figur 3-1). Du kan enten importere disse registerverdiene eller bruke SERDES-konfiguratoren til å angi PCIe- eller EPCS-parametrene dine, og registerverdiene beregnes automatisk for deg. For detaljer, se Brukerveiledning for SERDES Configurator.Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - høyhastighets seriell grensesnittkonfiguratorFigur 3-1 • Høyhastighets seriell grensesnittkonfigurator
Opprette FPGA-designinitialiseringsundersystemet
For å initialisere DDR- og SERDESIF-blokkene, må du opprette initialiseringsundersystemet i FPGA-stoffet. FPGA-stoffinitieringsundersystemet flytter data fra Cortex-M3 til DDR- og SERDESIF-konfigurasjonsregistrene, administrerer tilbakestillingssekvensene som kreves for at disse blokkene skal være operative og signaliserer når disse blokkene er klare til å kommunisere med resten av designet ditt. For å opprette initialiseringsdelsystemet må du:

  • Konfigurer FIC_2 inne i MSS
  • Instantier og konfigurer CoreConfigP- og CoreResetP-kjernene
  • Instantier 25/50MHz RC-oscillatoren på brikken
  • Instantier System Reset (SYSRESET)-makroen
  • Koble disse komponentene til hver periferienhets konfigurasjonsgrensesnitt, klokker, tilbakestillinger og PLL-låseporter

MSS FIC_2 APB-konfigurasjon
For å konfigurere MSS FIC_2:

  1. Åpne FIC_2-konfigurator-dialogboksen fra MSS-konfiguratoren (Figur 3-2).
  2. Velg Initialiser periferiutstyr med Cortex-M3.
  3. Avhengig av systemet, merk av én eller begge av følgende avmerkingsbokser:
    – MSS DDR
    – Stoff DDR og/eller SERDES-blokker
  4. Klikk OK og fortsett for å generere MSS (du kan utsette denne handlingen til du har konfigurert MSS til dine designkrav). FIC_2-portene (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK og FIC_2_APB_M_RESET_N) er nå eksponert ved MSS-grensesnittet og kan kobles til CoreConfigP- og CoreResetP-kjernene.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - MSS FIC 2-konfiguratorFigur 3-2 • MSS FIC_2-konfigurator

CoreConfigP
For å konfigurere CoreConfigP:

  1. Instantier CoreConfigP i SmartDesign (vanligvis den der MSS-en instansieres).
    Denne kjernen finner du i Libero-katalogen (under Periferiutstyr).
  2. Dobbeltklikk på kjernen for å åpne konfiguratoren.
  3. Konfigurer kjernen for å spesifisere hvilke eksterne enheter som må initialiseres (Figur 3-3)

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - dialogboksFigur 3-3 • CoreConfigP Dialogboks

CoreResetP
For å konfigurere CoreResetP:

  1. Instantier CoreResetP i SmartDesign (vanligvis den der MSS-en instansieres).
    Denne kjernen finner du i Libero-katalogen, under Periferiutstyr.
  2. Dobbeltklikk på kjernen inne i SmartDesign Canvas for å åpne konfiguratoren (Figur 3-4).
  3. Konfigurer kjernen til:
    – Spesifiser ekstern tilbakestillingsadferd (EXT_RESET_OUT hevdet). Velg ett av fire alternativer:
    o EXT_RESET_OUT blir aldri hevdet
    o EXT_RESET_OUT hevdes hvis tilbakestilling av oppstart (POWER_ON_RESET_N) hevdes
    o EXT_RESET_OUT hevdes hvis FAB_RESET_N hevdes
    o EXT_RESET_OUT hevdes hvis oppstart tilbakestilling (POWER_ON_RESET_N) eller FAB_RESET_N hevdes
    – Spesifiser enhetsvoltage. Den valgte verdien skal samsvare med voltage du valgte i dialogboksen Libero Project Settings.
    – Merk av i de aktuelle avmerkingsboksene for å indikere hvilke eksterne enheter du bruker i designet.
    – Angi innstillingstiden for eksternt DDR-minne. Dette er maksimumsverdien for alle DDR-minner som brukes i applikasjonen din (MDDR og FDDR). Se det eksterne DDR-minneleverandørens datablad for å konfigurere denne parameteren. 200us er en god standardverdi for DDR2- og DDR3-minner som kjører på 200MHz. Dette er en svært viktig parameter for å garantere en fungerende simulering og et fungerende system på silisium. En feil verdi for innstillingstiden kan føre til simuleringsfeil. Se databladet fra DDR-minneleverandøren for å konfigurere denne parameteren.
    – For hver SERDES-blokk i designet ditt, merk av de aktuelle boksene for å indikere om:
    o PCIe brukes
    o Støtte for PCIe Hot Reset er nødvendig
    o Støtte for PCIe L2/P2 er nødvendig

Note: Hvis du bruker 090-matrisen (M2S090) og designet bruker SERDESIF, trenger du ikke å merke av i noen av følgende avmerkingsbokser: 'Brukt for PCIe', 'Inkluder PCIe HotReset-støtte' og 'Inkluder PCIe L2/P2-støtte'. Hvis du bruker en ikke-090-enhet og bruker en eller flere SERDESIF-blokker, må du merke av for alle fire avmerkingsboksene under den aktuelle SERDESIF-delen.
Note: For detaljer om alternativene som er tilgjengelige for deg i denne konfiguratoren, se CoreResetP-håndboken.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - CoreResetPConfiguratorFigur 3-4 • CoreResetPConfigurator

25/50MHz Oscillator Instantiation
CoreConfigP og CoreResetP klokkes av 25/50MHz RC-oscillatoren på brikken. Du må instansiere en 25/50MHz Oscillator og koble den til disse kjernene.

  1. Instantier Chip Oscillators-kjernen i SmartDesign-en din (vanligvis den der MSS-en instansieres). Denne kjernen finner du i Libero-katalogen under Klokke og ledelse.
  2. Konfigurer denne kjernen slik at RC-oscillatoren driver FPGA-stoffet, som vist i figur 3-5.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - OscillatorkonfiguratorFigur 3-5 • Chip Oscillators Configurator

Systemtilbakestilling (SYSRESET) Instantiering
SYSRESET-makroen gir funksjonalitet for tilbakestilling av enhetsnivå til designet ditt. POWER_ON_RESET_N-utgangssignalet hevdes/oppheves hver gang brikken slås på eller den eksterne pinne DEVRST_N hevdes/oppheves (Figur 3-6).
Instantier SYSRESET-makroen i SmartDesign-en din (vanligvis den der MSS-en instansieres). Denne makroen finnes i Libero-katalogen under Makrobibliotek. Ingen konfigurasjon av denne makroen er nødvendig.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - SYSRESET-makroFigur 3-6 • SYSRESET Macro

Generell tilkobling
Etter at du har instansiert og konfigurert MSS-, FDDR-, SERDESIF-, OSC-, SYSRESET-, CoreConfigP- og CoreResetP-kjernene i designet ditt, må du koble dem til for å danne undersystemet Peripheral Initialization. For å forenkle tilkoblingsbeskrivelsen i dette dokumentet, er den delt inn i den APB3-kompatible konfigurasjonsdatabanetilkoblingen knyttet til CoreConfigP og CoreResetP-relaterte tilkoblinger.
Konfigurasjonsdatabanetilkobling
Figur 3-7 viser hvordan du kobler CoreConfigP til MSS FIC_2-signalene og periferiutstyrets APB3-kompatible konfigurasjonsgrensesnitt.
Tabell 3-1 • Konfigurasjonsdatabaneport/BIF-tilkoblinger

FRA
Port/buss-grensesnitt
(BIF)/ Komponent
TIL
Port/bussgrensesnitt (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-kontroller og seriell høyhastighetskontroller - Sub-System ConnectivityFigur 3-7 • FIC_2 APB3 Sub-System Connectivity

Klokker og tilbakestiller tilkobling
Figur 3-8 viser hvordan du kobler CoreResetP til de eksterne tilbakestillingskildene og periferiutstyrets tilbakestillingssignaler til kjernen. Den viser også hvordan du kobler CoreResetP til periferiutstyrets klokkesynkroniseringsstatussignaler (PLL-låsesignaler). I tillegg viser den hvordan CoreConfigP og CoreResetP er koblet sammen.

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller - Subsystem Connectivity 2Figur 3-8 • Core SF2Reset Sub-System Connectivity

Opprette og kompilere fastvareapplikasjonen

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

  • sys_config.c – Inneholder datastrukturene som holder verdiene for de perifere registrene.
  • sys_config.h – Inneholder #define-setningene som spesifiserer hvilke eksterne enheter som brukes i designet og som må initialiseres.
  • sys_config_mddr_define.h – Inneholder konfigurasjonsdataene for MDDR-kontrolleren angitt i dialogboksen Registers Configuration.
  • sys_config_fddr_define.h – Inneholder konfigurasjonsdataene for FDDR-kontrolleren angitt i dialogboksen Registers Configuration.
  • sys_config_mss_clocks.h – Dette file inneholder MSS-klokkefrekvensene som definert i MSS CCC-konfiguratoren. Disse frekvensene brukes av CMSIS-koden for å gi korrekt klokkeinformasjon til mange av MSS-driverne som må ha tilgang til deres Peripheral Clock (PCLK) frekvens (f.eks. MSS UART baud rate divisors er en funksjon av baud rate og PCLK frekvens ).
  • sys_config_SERDESIF_ .c – Inneholder SERDESIF_ register konfigurasjonsdata gitt under SERDESIF_ blokkkonfigurasjon i designoppretting.
  • sys_config_SERDESIF_ .h – Inneholder #define-setningene som spesifiserer antall registerkonfigurasjonspar og banenummeret som må polles for PMA_READY (kun i PCIe-modus).

Disse files kreves for at CMSIS-koden skal kompileres riktig og inneholde informasjon om din nåværende design, inkludert perifer konfigurasjonsdata og klokkekonfigurasjonsinformasjon for MSS.
Ikke rediger disse files manuelt; de opprettes til de tilsvarende komponent-/periferi-katalogene hver gang SmartDesign-komponentene som inneholder de respektive perifere enhetene genereres. Hvis det gjøres endringer i konfigurasjonsdataene til noen av de eksterne enhetene, må du eksportere fastvareprosjektene på nytt slik at den oppdaterte fastvaren files (se listen ovenfor) eksporteres til / firmware/drivers_config/sys_config-mappen.
Når du eksporterer fastvaren, oppretter Libero SoC fastvareprosjektene: et bibliotek der designkonfigurasjonen din files og drivere er kompilert.
Hvis du krysser av for Opprett prosjekt avkrysningsboksen når du eksporterer fastvaren, opprettes et programvare SoftConsole/IAR/Keil-prosjekt for å holde applikasjonsprosjektet der du kan redigere main.c og bruker C/H files. Åpne SoftConSole/IAR/Keil-prosjektet for å kompilere CMSIS-koden på riktig måte og få fastvareprogrammet riktig konfigurert for å matche maskinvaredesignet ditt.

BFM Files Brukes til å simulere designet

Når du genererer SmartDesign-komponentene som inneholder periferiutstyret knyttet til designet ditt, vil simuleringen files som tilsvarer de respektive periferiutstyrene genereres i /simuleringskatalog:

  • test.bfm – BFM på toppnivå file som først utføres under enhver simulering som trener SmartFusion2 MSS Cortex-M3-prosessoren. Den kjører peripheral_init.bfm og user.bfm, i den rekkefølgen.
  • MDDR_init.bfm – Hvis designet ditt bruker MDDR, genererer Libero dette file; den inneholder BFM-skrivekommandoer som simulerer skriving av MSS DDR-konfigurasjonsregisterdataene du skrev inn (ved hjelp av dialogboksen Rediger registre eller i MSS_MDDR GUI) inn i MSS DDR-kontrollerregistrene.
  • FDDR_init.bfm – Hvis designet ditt bruker FDDR, genererer Libero dette file; den inneholder BFM-skrivekommandoer som simulerer skriving av Fabric DDR-konfigurasjonsregisterdataene du skrev inn (ved hjelp av dialogboksen Edit Registers eller i FDDR GUI) inn i Fabric DDR Controller-registrene.
  • SERDESIF_ _init.bfm – Hvis designet ditt bruker en eller flere SERDESIF-blokker, genererer Libero dette file for hver av SERDESIF_ blokker brukt; den inneholder BFM-skrivekommandoer som simulerer skriving av SERDESIF-konfigurasjonsregisterdataene du skrev inn (ved å bruke dialogboksen Rediger registre eller i SERDESIF_ GUI) inn i SERDESIF_ registrerer. Hvis SERDESIF-blokken er konfigurert som PCIe, dette file har også noen #define-setninger som kontrollerer utførelsen av de 2 registerkonfigurasjonsfasene i perfekt rekkefølge.
  • bruker.bfm – Inneholder brukerkommandoer. Disse kommandoene utføres etter at peripheral_init.bfm er fullført. Rediger dette file for å legge inn BFM-kommandoer.
  • SERDESIF_ _user.bfm – Inneholder brukerkommandoer. Rediger dette file for å legge inn BFM-kommandoer. Bruk denne hvis du har konfigurert SERDESIF_ blokk i BFM PCIe simuleringsmodus og som en AXI/AHBLite master. Hvis du har konfigurert SERDESIF_ blokk i RTL-simuleringsmodus, trenger du ikke dette file.

Når du påkaller simulering hver gang, de følgende to simuleringene files er gjenskapt til /simuleringskatalog med oppdatert innhold:

  • subsystem.bfm – Inneholder #define-setningene for hvert periferutstyr som brukes i designet ditt, som spesifiserer den spesielle delen av peripheral_init.bfm som skal utføres tilsvarende hver perifer.
  • operipheral_init.bfm – Inneholder BFM-prosedyren som emulerer CMSIS:: SystemInit()-funksjonen som kjøres på Cortex-M3 før du går inn i main()-prosedyren. Den kopierer konfigurasjonsdataene for alle perifere enheter som brukes i designet til de riktige perifere konfigurasjonsregistrene og venter deretter på at alle periferienhetene er klare før den hevder at du kan bruke disse periferienhetene. Den kjører MDDR_init.bfm og FDDR_init.bfm.

Bruker disse generert files, konfigureres DDR-kontrollerne i designet automatisk, og simulerer hva som ville skje på en SmartFusion2-enhet. Du kan redigere user.bfm file for å legge til kommandoer som kreves for å simulere designet (Cortex-M3 er masteren). Disse kommandoene utføres etter at periferiutstyret er initialisert. Ikke rediger test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files og SERDESIF_ _init.bfm files.

Produktstøtte

Microsemi SoC Products Group støtter produktene sine med ulike støttetjenester, inkludert kundeservice, kundestøttesenter, et webnettsted, elektronisk post og verdensomspennende salgskontorer.
Dette vedlegget inneholder informasjon om hvordan du kontakter Microsemi SoC Products Group og bruker disse støttetjenestene.
Kundeservice
Kontakt kundeservice for ikke-teknisk produktstøtte, for eksempel produktpriser, produktoppgraderinger, oppdateringsinformasjon, ordrestatus og autorisasjon.
Fra Nord-Amerika, ring 800.262.1060
Fra resten av verden, ring 650.318.4460
Faks, fra hvor som helst i verden, 408.643.6913
Kundesenter for teknisk støtte
Microsemi SoC Products Group bemanner sitt tekniske kundestøttesenter med svært dyktige ingeniører som kan hjelpe deg med å svare på maskinvare-, programvare- og designspørsmål om Microsemi SoC-produkter. Kundestøttesenteret bruker mye tid på å lage applikasjonsnotater, svar på vanlige spørsmål i designsyklusen, dokumentasjon av kjente problemer og ulike vanlige spørsmål. Så før du kontakter oss, vennligst besøk våre nettressurser. Det er svært sannsynlig at vi allerede har svart på spørsmålene dine.
Teknisk støtte
Besøk kundestøtten webnettstedet (www.microsemi.com/soc/support/search/default.aspx) for mer informasjon og støtte. Mange svar tilgjengelig på den søkbare web ressursen inkluderer diagrammer, illustrasjoner og lenker til andre ressurser på webnettstedet.
Webnettstedet
Du kan bla gjennom en rekke teknisk og ikke-teknisk informasjon på SoC-hjemmesiden, på www.microsemi.com/soc.
Ta kontakt med kundestøttesenteret
Svært dyktige ingeniører bemanner det tekniske støttesenteret. Det tekniske støttesenteret kan kontaktes via e-post eller gjennom Microsemi SoC Products Group webnettstedet.
E-post
Du kan kommunisere dine tekniske spørsmål til vår e-postadresse og få svar tilbake via e-post, faks eller telefon. Dessuten, hvis du har designproblemer, kan du sende designet ditt på e-post files å motta hjelp.
Vi overvåker kontinuerlig e-postkontoen gjennom dagen. Når du sender forespørselen din til oss, må du huske å inkludere fullt navn, firmanavn og kontaktinformasjon for effektiv behandling av forespørselen.
E-postadressen til teknisk støtte er soc_tech@microsemi.com.
Mine saker
Microsemi SoC Products Group-kunder kan sende inn og spore tekniske saker online ved å gå til Mine saker.
Utenfor USA
Kunder som trenger assistanse utenfor amerikanske tidssoner kan enten kontakte teknisk støtte via e-post (soc_tech@microsemi.com) eller kontakt et lokalt salgskontor. Salgskontoroppføringer finner du på www.microsemi.com/soc/company/contact/default.aspx.
ITAR teknisk støtte
For teknisk støtte på RH og RT FPGAer som er regulert av International Traffic in Arms Regulations (ITAR), kontakt oss via soc_tech_itar@microsemi.com. Alternativt, i Mine saker, velg Ja i rullegardinlisten ITAR. For en fullstendig liste over ITAR-regulerte Microsemi FPGA-er, besøk ITAR web side.
Microsemi Corporation (NASDAQ: MSCC) tilbyr en omfattende portefølje av halvlederløsninger for: romfart, forsvar og sikkerhet; bedrift og kommunikasjon; og industrielle og alternative energimarkeder. Produktene inkluderer høyytelses, høypålitelige analoge og RF-enheter, blandede signal- og RF-integrerte kretser, tilpassbare SoC-er, FPGA-er og komplette undersystemer. Microsemi har hovedkontor i Aliso Viejo, California. Lær mer på www.microsemi.com.
© 2014 Microsemi Corporation. Alle rettigheter forbeholdt. Microsemi og Microsemi-logoen er varemerker for Microsemi Corporation. Alle andre varemerker og tjenestemerker tilhører sine respektive eiere.

5-02-00384-1/08.14Microsemi logoMicrosemi Corporate Headquarters
One Enterprise, Aliso Viejo CA 92656 USA
Innenfor USA: +1 949-380-6100
Salg: +1 949-380-6136
Faks: +1 949-215-4996

Dokumenter / Ressurser

Microsemi SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller [pdfBrukerhåndbok
SmartFusion2 DDR-kontroller og seriell høyhastighetskontroller, SmartFusion2 DDR, kontroller og seriell høyhastighetskontroller, høyhastighetskontroller

Referanser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *