Microsemi logoSmartFusion2
DDR-beheerder en seriële hoëspoedbeheerder
Inisialiseringsmetodologie
Gebruikersgids

Inleiding

Wanneer jy 'n ontwerp met 'n SmartFusion2-toestel skep, as jy een van die twee DDR-beheerders (FDDR of MDDR) of enige van die Serial High Speed-beheerder (SERDESIF)-blokke gebruik, moet jy die konfigurasieregisters van hierdie blokke in die looptyd inisialiseer voor hulle kan gebruik word. Byvoorbeeldample, vir die DDR-beheerder, moet jy die DDR-modus (DDR3/DDR2/LPDDR), PHY-breedte, burst-modus en ECC stel.
Net so, vir die SERDESIF-blok wat as 'n PCIe-eindpunt gebruik word, moet jy die PCIE BAR op AXI (of AHB) venster stel.
Hierdie dokument beskryf die stappe wat nodig is om 'n Libero-ontwerp te skep wat die DDR-beheerder en SERDESIF-blokke outomaties inisialiseer by aanskakeling. Dit beskryf ook hoe om die firmware-kode van Libero SOC te genereer wat in die ingebedde ontwerpvloei gebruik word.
'n Gedetailleerde beskrywing van die teorie van bewerkings word eerstens verskaf.
Die volgende afdeling beskryf hoe om so 'n ontwerp te skep met behulp van die Libero SoC System Builder, 'n kragtige ontwerphulpmiddel wat, onder andere, die 'initialiserings'-oplossing vir jou skep as jy DDR- of SERDESIF-blokke in jou ontwerp gebruik.
Die volgende afdeling beskryf hoe om 'n volledige 'initialisasie' oplossing saam te stel sonder om die SmartFusion2 System Builder te gebruik. Dit help om te verduidelik wat gedoen moet word as jy nie die Stelselbouer wil gebruik nie, en beskryf ook wat die Stelselbouer-nutsding eintlik vir jou genereer. Hierdie afdeling handel oor:

  • Die skepping van die konfigurasiedata vir DDR-beheerder en SERDESIF-konfigurasieregisters
  • Die skepping van die FPGA-logika wat nodig is om die konfigurasiedata na die verskillende ASIC-konfigurasieregisters oor te dra

Ten slotte beskryf ons die gegenereerde files verwant aan:

  • Die skepping van firmware 'initialisasie' oplossing.
  • Die simulasie van die ontwerp vir die DDR 'initialisasie' oplossing.

Vir besonderhede oor die DDR-beheerder en SERDESIF-konfigurasieregisters, verwys na die Microsemi SmartFusion2 High Speed ​​Serial en DDR Interfaces Gebruikersgids.

Operasieteorie

Die Perifere inisialiseringsoplossing gebruik die volgende hoofkomponente:

  • Die CMSIS SystemInit()-funksie, wat op die Cortex-M3 loop en die inisialiseringsproses orkestreer.
  • Die CoreConfigP sagte IP-kern, wat die randapparatuur se konfigurasieregisters inisialiseer.
  • Die CoreResetP sagte IP-kern, wat die terugstelvolgorde van die MSS, DDR-beheerders en SERDESIF-blokke bestuur.

Die perifere inisialiseringsproses werk soos volg:

  1. By herstel, loop die Cortex-M3 die CMSIS SystemInit() funksie. Hierdie funksie word outomaties uitgevoer voordat die toepassing se hoof()-funksie uitgevoer word.
    Die CoreResetP-uitsetsein MSS_HPMS_READY word aan die begin van die inisialiseringsproses bevestig, wat aandui dat die MSS en al die randapparatuur (behalwe MDDR) gereed is vir kommunikasie.
  2. Die SystemInit()-funksie skryf konfigurasiedata na die DDR-beheerders en SERDESIF-konfigurasieregisters via die MSS FIC_2 APB3-bus. Hierdie koppelvlak is gekoppel aan die sagte CoreConfigP-kern wat in die FPGA-stof geïnstantieer word.
  3. Nadat al die registers gekonfigureer is, skryf die SystemInit()-funksie na die CoreConfigP-beheerregisters om die voltooiing van die registerkonfigurasiefase aan te dui; die CoreConfigP-uitsetseine CONFIG1_DONE en CONIG2_DONE word dan beweer.
    Daar is twee fases van registerkonfigurasie (CONFIG1 en CONFIG2) afhangende van die randapparatuur wat in die ontwerp gebruik word.
  4. As een of albei MDDR/FDDR gebruik word, en geen van die SERDESIF-blokke word in die ontwerp gebruik nie, is daar slegs een registerkonfigurasiefase. Beide die CoreConfigP-uitsetseine CONFIG1_DONE en CONIG2_DONE word een na die ander beweer sonder enige wag/vertraging.
    As een of meer SERDESIF-blokke in nie-PCIe-modus in die ontwerp gebruik word, is daar slegs een fase van registerkonfigurasie. CONFIG1_DONE en CONIG2_DONE word een na die ander beweer sonder enige wag/vertraging.
    As een of meer SERDESIF-blokke in PCIe-modus in die ontwerp gebruik word, is daar twee fases van registerkonfigurasie. CONFIG1_DONE word beweer nadat die eerste fase van registerkonfigurasie voltooi is. SERDESIF-stelsel en baanregisters word in hierdie fase gekonfigureer. As SERDESIF in 'n nie-PCIE-modus gekonfigureer is, word CONFIG2_DONE-sein ook onmiddellik bevestig.
  5. Die tweede fase van registerkonfigurasie volg dan (as SERDESIF in PCIE-modus opgestel is). Die volgende is die verskillende gebeure wat in die tweede fase gebeur:
    – CoreResetP de-asserts PHY_RESET_N en CORE_RESET_N seine wat ooreenstem met elk van die SERDESIF blokke wat gebruik word. Dit beweer ook 'n uitsetsein SDIF_RELEASED nadat al die SERDESIF-blokke nie teruggestel is nie. Hierdie SDIF_RELEASED sein word gebruik om aan die CoreConfigP aan te dui dat die SERDESIF-kern nie teruggestel is nie en gereed is vir die tweede fase van registerkonfigurasie.
    – Sodra die SDIF_RELEASED sein bevestig is, begin die SystemInit() funksie polling vir die bewering van PMA_READY op die toepaslike SERDESIF baan. Sodra die PMA_READY bevestig is, word die tweede stel SERDESIF-registers (PCIE-registers) gekonfigureer/geskryf deur die SystemInit()-funksie.
  6. Nadat al die PCIE-registers gekonfigureer is, skryf die SystemInit()-funksie na die CoreConfigP-beheerregisters om die voltooiing van die tweede fase van registerkonfigurasie aan te dui; die CoreConfigP-uitsetsein CONIG2_DONE word dan beweer.
  7. Afgesien van die bogenoemde seinbewerings/de-assertions, bestuur CoreResetP ook die inisialisering van die verskillende blokke deur die volgende funksies uit te voer:
    – Ontheffing van die FDDR-kernterugstelling
    – Ontheffing van die SERDESIF-blokke PHY en CORE-terugstellings
    – Monitering van die FDDR PLL (FPLL) slotsein. Die FPLL moes gesluit het om te verseker dat die FDDR AXI/AHBLite-datakoppelvlak en die FPGA-stof korrek kan kommunikeer.
    – Monitering van die SERDESIF blok PLL (SPLL) slot seine. Die SPLL moes gesluit het om te verseker dat die SERDESIF blokkeer AXI/AHBLite-koppelvlak (PCIe-modus) of XAUI-koppelvlak behoorlik met die FPGA-stof kan kommunikeer.
    – Wag vir die eksterne DDR-geheue om te vestig en gereed te wees vir toegang deur die DDR-beheerders.
  8. Wanneer alle randapparatuur hul inisialisering voltooi het, bevestig CoreResetP die INIT_DONE sein; die CoreConfigP interne register INIT_DONE word dan beweer.
    As een of albei MDDR/FDDR gebruik word, en die DDR-inisialiseringstyd word bereik, word CoreResetP uitsetsein DDR_READY beweer. Bewering van hierdie sein DDR_READY kan gemonitor word as 'n aanduiding dat die DDR (MDDR/FDDR) gereed is vir kommunikasie.
    As een of meer SERDESIF-blokke gebruik word, en die tweede fase van registerkonfigurasie is suksesvol voltooi, word CoreResetP-uitsetsein SDIF_READY beweer. Bewering van hierdie sein SDIF_READY kan gemonitor word as 'n aanduiding dat al die SERDESIF blokke gereed is vir kommunikasie.
  9. Die SystemInit()-funksie, wat gewag het vir INIT_DONE om bevestig te word, voltooi en die toepassing se hoof()-funksie word uitgevoer. Op daardie tydstip is alle gebruikte DDR-beheerders en SERDESIF-blokke geïnisialiseer, en die firmware-toepassing en die FPGA-stoflogika kan betroubaar met hulle kommunikeer.

Die metodologie wat in hierdie dokument beskryf word, maak staat op die Cortex-M3 wat die inisialiseringsproses uitvoer as deel van die stelselinisialiseringskode wat uitgevoer word voor die toepassing se hoof()-funksie.
Sien die vloeidiagramme in figuur 1-1, figuur 1-2 en figuur 1-3 vir die inisialiseringstappe van FDDR/MDDR, SEREDES (nie-PCIe-modus) en SERDES (PCIe-modus).
Figuur 1-4 toon 'n Perifere Inisialisering tydsberekening diagram.

Microsemi SmartFusion2 DDR-beheerder en reekshoëspoedbeheerder - tydsberekeningdiagram 1 Microsemi SmartFusion2 DDR-beheerder en reekshoëspoedbeheerder - tydsberekeningdiagram 2

Microsemi SmartFusion2 DDR-beheerder en reekshoëspoedbeheerder - tydsberekeningdiagram 3Microsemi SmartFusion2 DDR-beheerder en reekshoëspoedbeheerder - tydsberekeningdiagram 4Figuur 1-3 • SERDESIF (PCIe) Inisialisering Vloeidiagram
Die inisialiseringsprosedure wat in hierdie dokument beskryf word, vereis dat jy Cortex-M3 tydens die inisialiseringsproses laat loop, selfs al is jy nie van plan om enige kode op die Cortex-M3 uit te voer nie. Jy moet 'n basiese firmware-toepassing skep wat niks doen nie ('n eenvoudige lus, bvample) en laai die uitvoerbare in die ingebedde nie-vlugtige geheue (eNVM) sodat die DDR-beheerders en SERDESIF-blokke geïnisialiseer word wanneer die Cortex-M3 opstart.

Gebruik System Builder om 'n ontwerp te skep deur DDR- en SERDESIF-blokke te gebruik

Die SmartFusion2 System Builder is 'n kragtige ontwerpinstrument wat jou help om jou stelselvlakvereistes vas te lê en 'n ontwerp te produseer wat daardie vereistes implementeer. 'n Baie belangrike funksie van die Stelselbouer is die outomatiese skepping van die Perifere Inisialisering-substelsel. "Gebruik SmartDesign om 'n ontwerp te skep deur DDR- en SERDESIF-blokke te gebruik" op bladsy 17 beskryf in detail hoe om so 'n oplossing sonder die Stelselbouer te skep.
As jy System Builder gebruik, moet jy die volgende take uitvoer om 'n ontwerp te skep wat jou DDR-beheerders en SERDESIF-blokke initialiseer by aanskakel:

  1. In die Toestelkenmerke-bladsy (Figuur 2-1), spesifiseer watter DDR-beheerders gebruik word en hoeveel SERDESIF-blokke in jou ontwerp gebruik word.
  2. In die Geheue-bladsy, spesifiseer die tipe DDR (DDR2/DDR3/LPDDR) en die konfigurasiedata vir jou eksterne DDR-geheue. Sien die Geheuebladsy-afdeling vir besonderhede.
  3. Voeg stofmeesters wat as AHBLite/AXI opgestel is op die Randapparatuur-bladsy by die Fabric DDR-substelsel en/of MSS DDR FIC-substelsel (opsioneel).
  4. In die Klokinstellingsbladsy, spesifiseer die klokfrekwensies vir die DDR-substelsels.
  5. Voltooi jou ontwerpspesifikasie en klik Voltooi. Dit genereer die Stelselbouer-ontwerp, insluitend die logika wat nodig is vir die 'initialisasie'-oplossing.
  6. As jy SERDESIF-blokke gebruik, moet jy die SERDESIF-blokke in jou ontwerp instansieer en hul initialiseringspoorte koppel aan dié van die System Builder-gegenereerde kern.

Stelselbouer Toestelkenmerkebladsy
In die Toestelkenmerke-bladsy, spesifiseer watter DDR-beheerders (MDDR en/of FDDR) gebruik word en hoeveel SERDESIF-blokke in jou ontwerp gebruik word (Figuur 2-1).

Microsemi SmartFusion2 DDR-beheerder en reeks hoëspoedbeheerder - Toestelkenmerke-bladsyFiguur 2-1 • Stelselbouer Toestelkenmerkebladsy

Stelselbouer-geheuebladsy
Om die MSS DDR (MDDR) of Fabric DDR (FDDR) te gebruik, kies die Memory Type uit die aftreklys (Figuur 2-2).

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - eksterne geheueFiguur 2-2 • MSS Eksterne Geheue

Jy moet:

  1. Kies die DDR-tipe (DDR2, DDR3 of LPDDR).
  2. Definieer die DDR-geheue insteltyd. Raadpleeg jou eksterne DDR-geheue-spesifikasies om die korrekte geheue-instellingstyd in te stel. Die DDR-geheue kan dalk nie korrek inisialiseer as die geheue-insteltyd nie korrek ingestel is nie.
  3. Voer óf die DDR-registerkonfigurasiedata in óf stel jou DDR-geheueparameters in. Vir besonderhede, verwys na die Microsemi SmartFusion2 High Speed ​​Serial en DDR Interfaces Gebruikersgids.

Hierdie data word gebruik om die DDR-register BFM en firmware-konfigurasie te genereer files soos beskryf in die "Skep en saamstel van die firmware-toepassing" op bladsy 26 en "BFM Files Gebruik om die ontwerp te simuleer” op bladsy 27. Vir besonderhede oor DDR-beheerderkonfigurasieregisters, verwys na die Microsemi SmartFusion2 High Speed ​​Serial en DDR Interfaces Gebruikersgids.
'N Example van die konfigurasie file sintaksis word in Figuur 2-3 getoon. Die registername wat hierin gebruik word file is dieselfde as dié beskryf in die Microsemi SmartFusion2 High Speed ​​Serial en DDR Interfaces Gebruikersgids

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - File Sintaksis BvampleFiguur 2-3 • Konfigurasie File Sintaksis Bvample
Stelselbouer-randapparatuurbladsy
In die Randapparatuur-bladsy word 'n aparte substelsel vir elke DDR-beheerder geskep (Stof DDR-substelsel vir FDDR en MSS DDR FIC-substelsel vir MDDR). Jy kan 'n Fabric AMBA Master (gekonfigureer as AXI/AHBLite)-kern by elkeen van hierdie substelsels voeg om stofmeestertoegang tot die DDR-beheerders moontlik te maak. By generering instansieer System Builder outomaties buskerne (afhangende van die tipe AMBA Master wat bygevoeg is) en stel die meester-BIF van die buskern en die klok- en terugstelpenne van die ooreenstemmende substelsels (FDDR/MDDR) onder toepaslike pengroepe bloot aan die Top. Al wat jy hoef te doen is om die BIF's aan die toepaslike Fabric Master-kerne te koppel wat jy in die ontwerp sou instansieer. In die geval van MDDR is dit opsioneel om 'n Fabric AMBA Master-kern by die MSS DDR FIC-substelsel te voeg; Cortex-M3 is 'n verstekmeester op hierdie substelsel. Figuur 2-4 toon die System Builder Randapparatuur-bladsy.

Microsemi SmartFusion2 DDR-beheerder en reekshoëspoedbeheerder - Bouer-randapparatuurbladsyFiguur 2-4 • System Builder Randapparatuur Bladsy

Stelselbouer-klokinstellingsbladsy
In die Klokinstellingsbladsy, vir elke DDR-beheerder, moet jy die klokfrekwensies spesifiseer wat verband hou met elke DDR (MDDR en/of FDDR) substelsel.
Vir MDDR moet jy spesifiseer:

  • MDDR_CLK – Hierdie horlosie bepaal die bedryfsfrekwensie van die DDR-beheerder en moet ooreenstem met die klokfrekwensie waarop jy wil hê jou eksterne DDR-geheue moet loop. Hierdie horlosie word gedefinieer as 'n veelvoud van die M3_CLK (Cortex-M3 en MSS Hoofklok, Figuur 2-5). Die MDDR_CLK moet minder as 333 MHz wees.
  • DDR_FIC_CLK – As jy gekies het om ook toegang tot die MDDR vanaf die FPGA-stof te verkry, moet jy die DDR_FIC_CLK spesifiseer. Hierdie klokfrekwensie word gedefinieer as verhouding van die MDDR_CLK en moet ooreenstem met die frekwensie waarteen die FPGA-stofsubstelsel wat toegang tot die MDDR verkry, loop.

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - MDDR-horlosiesFiguur 2-5 • Cortex-M3 en MSS Hoofklok; MDDR-horlosies

Vir FDDR moet jy spesifiseer:

  • FDDR_CLK – Bepaal die bedryfsfrekwensie van die DDR-beheerder en moet ooreenstem met die klokfrekwensie waarteen jy wil hê jou eksterne DDR-geheue moet loop. Let daarop dat hierdie horlosie gedefinieer word as 'n veelvoud van die M3_CLK (MSS en Cortex-M3 klok, Figuur 2-5). Die FDDR_CLK moet binne 20 MHz en 333 MHz wees.
  • FDDR_SUBSYSTEM_CLK – Hierdie klokfrekwensie word gedefinieer as 'n verhouding van die FDDR_CLK en moet ooreenstem met die frekwensie waarteen die FPGA-stofsubstelsel wat toegang tot die FDDR verkry, loop.

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - Stof DDR-horlosiesFiguur 2-6 • Stof DDR-horlosies
SERDESIF-konfigurasie
Die SERDESIF-blokke word nie in die Stelselbouer-gegenereerde ontwerp geïnstansieer nie. Vir al die SERDESIF-blokke is inisialiseringseine egter beskikbaar by die koppelvlak van die Stelselbouerkern en kan op die volgende vlak van hiërargie aan die SERDESIF-kerns gekoppel word, soos in Figuur 2-7 getoon.Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - Perifere initialiseringskonnektiwiteitFiguur 2-7 • SERDESIF Perifere initialiseringskonnektiwiteit
Soortgelyk aan die DDR-konfigurasieregisters, het elke SERDES-blok ook konfigurasieregisters wat tydens looptyd gelaai moet word. Jy kan óf hierdie registerwaardes invoer óf die High Speed ​​Serial Interface Configurator (Figuur 2-8) gebruik om jou PCIe of EPCS parameters in te voer en die registerwaardes word outomaties vir jou bereken. Vir besonderhede, verwys na die SERDES Configurator Gebruikersgids.Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - seriële koppelvlakkonfigureerderFiguur 2-8 • Hoëspoed reekskoppelvlakkonfigurator
Sodra jy jou gebruikerslogika met die System Builder-blok en SERDES-blok geïntegreer het, kan jy jou topvlak SmartDesign genereer. Dit genereer alle HDL en BFM files wat nodig is om jou ontwerp te implementeer en te simuleer. Jy kan dan voortgaan met die res van die Ontwerpvloei.

Gebruik SmartDesign om 'n ontwerp te skep deur DDR- en SERDESIF-blokke te gebruik

Hierdie afdeling beskryf hoe om 'n volledige 'initialisasie' oplossing saam te stel sonder om die SmartFusion2 System Builder te gebruik. Die doel is om jou te help verstaan ​​wat jy moet doen as jy nie die Stelselbouer wil gebruik nie. Hierdie afdeling beskryf ook wat die Stelselbouer-nutsding eintlik vir jou genereer. Hierdie afdeling beskryf hoe om:

  • Voer die konfigurasiedata vir DDR-beheerder en SERDESIF-konfigurasieregisters in.
  • Instansieer en koppel die Fabric Cores wat nodig is om die konfigurasiedata na die DDR-beheerders en SERDESIF-konfigurasieregisters oor te dra.

DDR-beheerderkonfigurasie
Die MSS DDR (MDDR) en Fabric DDR (FDDR) beheerders moet dinamies (met looptyd) gekonfigureer word om te pas by die eksterne DDR geheue konfigurasie vereistes (DDR modus, PHY breedte, burst modus, ECC, ens.). Data wat in MDDR/FDDR-konfigurator ingevoer word, word deur die CMSIS SystemInit()-funksie na die DDR-beheerderkonfigurasieregisters geskryf. Die Configurator het drie verskillende oortjies om verskillende tipes konfigurasiedata in te voer:

  • Algemene data (DDR-modus, datawydte, klokfrekwensie, ECC, stofkoppelvlak, dryfsterkte)
  • Geheue-inisialiseringsdata (Burst Length, Burst Order, Tydmodus, Latency, ens.)
  • Geheue tydsberekening data

Verwys na die spesifikasies van jou eksterne DDR-geheue en stel die DDR-beheerder in om by die vereistes van jou eksterne DDR-geheue te pas.
Vir besonderhede oor DDR-konfigurasie, verwys na die SmartFusion2 MSS DDR Configuration User Guide.
SERDESIF-konfigurasie
Dubbelklik op die SERDES-blok in die SmartDesign-doek om die Configurator oop te maak om die SERDES te konfigureer (Figuur 3-1). Jy kan óf hierdie registerwaardes invoer óf die SERDES-konfigurator gebruik om jou PCIe- of EPCS-parameters in te voer en die registerwaardes word outomaties vir jou bereken. Vir besonderhede, verwys na die SERDES Configurator Gebruikersgids.Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - hoëspoed-reekskoppelvlakkonfiguratorFiguur 3-1 • Hoëspoed reekskoppelvlakkonfigurator
Die skep van die FPGA-ontwerpinitialisasie-substelsel
Om die DDR- en SERDESIF-blokke te inisialiseer, moet jy die inisialiseringsubstelsel in die FPGA-stof skep. Die FPGA-stofinisialisasie-substelsel skuif data van die Cortex-M3 na die DDR- en SERDESIF-konfigurasieregisters, bestuur die resetreekse wat nodig is vir hierdie blokke om operasioneel te wees en gee aan wanneer hierdie blokke gereed is om met die res van jou ontwerp te kommunikeer. Om die inisialiseringsubstelsel te skep, moet jy:

  • Stel FIC_2 binne die MSS op
  • Instansieer en konfigureer die CoreConfigP- en CoreResetP-kerne
  • Instansieer die on-chip 25/50MHz RC-ossillator
  • Stel die stelselterugstelling (SYSRESET) makro aan
  • Koppel hierdie komponente aan elke randapparaat se konfigurasie-koppelvlakke, horlosies, terugstellings en PLL-slotpoorte

MSS FIC_2 APB-konfigurasie
Om die MSS FIC_2 op te stel:

  1. Maak die FIC_2-konfigureerder-dialoogkassie oop vanaf die MSS-konfigureerder (Figuur 3-2).
  2. Kies Inisialiseer randapparatuur met Cortex-M3.
  3. Afhangende van jou stelsel, merk een of albei van die volgende merkblokkies:
    – MSS DDR
    – Stof DDR en/of SERDES-blokke
  4. Klik OK en gaan voort om die MSS te genereer (jy kan hierdie aksie uitstel totdat jy die MSS volledig volgens jou ontwerpvereistes gekonfigureer het). Die FIC_2-poorte (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK en FIC_2_APB_M_RESET_N) word nou by die MSS-koppelvlak blootgestel en kan aan die CoreConfigP- en CoreResetP-kerne gekoppel word.

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - MSS FIC 2-konfiguratorFiguur 3-2 • MSS FIC_2 Configurator

CoreConfigP
Om CoreConfigP op te stel:

  1. Instansieer CoreConfigP in jou SmartDesign (gewoonlik die een waar die MSS geïnstantieer word).
    Hierdie kern kan gevind word in die Libero Katalogus (onder Perifere).
  2. Dubbelklik op die kern om die konfigurator oop te maak.
  3. Konfigureer die kern om te spesifiseer watter randapparatuur geïnisialiseer moet word (Figuur 3-3)

Microsemi SmartFusion2 DDR-beheerder en reeks hoëspoedbeheerder - dialoogkassieFiguur 3-3 • CoreConfigP dialoogkassie

CoreResetP
Om CoreResetP op te stel:

  1. Instansieer CoreResetP in jou SmartDesign (tipies die een waar die MSS geïnstantieer word).
    Hierdie kern kan gevind word in die Libero-katalogus, onder Randapparatuur.
  2. Dubbelklik op die kern binne die SmartDesign Canvas om die Configurator oop te maak (Figuur 3-4).
  3. Stel die kern op om:
    – Spesifiseer die eksterne terugstelgedrag (EXT_RESET_OUT beweer). Kies een van vier opsies:
    o EXT_RESET_OUT word nooit beweer nie
    o EXT_RESET_OUT word beweer as aanskakelterugstelling (POWER_ON_RESET_N) beweer word
    o EXT_RESET_OUT word beweer as FAB_RESET_N beweer word
    o EXT_RESET_OUT word beweer as aanskakelterugstelling (POWER_ON_RESET_N) of FAB_RESET_N beweer word
    – Spesifiseer die Toestel Voltage. Die geselekteerde waarde moet ooreenstem met die voltage wat jy gekies het in die Libero Project Settings dialoogkassie.
    – Merk die toepaslike blokkies om aan te dui watter randapparatuur jy in jou ontwerp gebruik.
    – Spesifiseer die eksterne DDR-geheue-instellingstyd. Dit is die maksimum waarde vir alle DDR-geheue wat in jou toepassing gebruik word (MDDR en FDDR). Verwys na die datablad van die eksterne DDR-geheueverskaffer om hierdie parameter op te stel. 200us is 'n goeie verstekwaarde vir DDR2- en DDR3-herinneringe wat op 200MHz werk. Dit is 'n baie belangrike parameter om 'n werkende simulasie en 'n werkende stelsel op silikon te waarborg. 'n Verkeerde waarde vir die afsaktyd kan simulasiefoute tot gevolg hê. Verwys na die DDR-geheueverkoperdatablad om hierdie parameter op te stel.
    – Vir elke SERDES-blok in jou ontwerp, merk die toepaslike blokkies om aan te dui of:
    o PCIe word gebruik
    o Ondersteuning vir PCIe Hot Reset word vereis
    o Ondersteuning vir PCIe L2/P2 word vereis

Let wel: As jy die 090-matrijs (M2S090) gebruik en jou ontwerp gebruik SERDESIF, hoef jy nie enige van die volgende merkblokkies te merk nie: 'Gebruik vir PCIe', 'Sluit PCIe HotReset-ondersteuning in' en 'Sluit PCIe L2/P2-ondersteuning in'. As jy enige nie-090-toestel gebruik en een of meer SERDESIF-blokke gebruik, moet jy al vier merkblokkies onder die toepaslike SERDESIF-afdeling merk.
Let wel: Verwys na die CoreResetP-handboek vir besonderhede oor die opsies wat tot jou beskikking is in hierdie konfigurator.

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - CoreResetPConfiguratorFiguur 3-4 • CoreResetPConfigurator

25/50MHz Ossillator instansiasie
CoreConfigP en CoreResetP word geklok deur die on-chip 25/50MHz RC-ossillator. Jy moet 'n 25/50MHz Ossillator instansieer en dit aan hierdie kerne koppel.

  1. Instansieer die Chip Oscillators-kern in jou SmartDesign (gewoonlik die een waar die MSS geïnstantieer word). Hierdie kern kan gevind word in die Libero-katalogus onder Klok en Bestuur.
  2. Konfigureer hierdie kern so dat die RC-ossillator die FPGA-stof aandryf, soos in Figuur 3-5 getoon.

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - OssillatorskonfiguratorFiguur 3-5 • Chip Ossillators Configurator

Stelselterugstelling (SYSRESET) instansiasie
Die SYSRESET-makro bied toestelvlak-terugstelfunksionaliteit aan jou ontwerp. Die POWER_ON_RESET_N-uitsetsein word bevestig/ontgeld wanneer die skyfie aangeskakel word of die eksterne pen DEVRST_N bevestig/ontgeld word (Figuur 3-6).
Instansieer die SYSRESET-makro in jou SmartDesign (tipies die een waar die MSS geïnstansieer word). Hierdie makro kan gevind word in die Libero Catalog onder Makro Library.Geen konfigurasie van hierdie makro is nodig nie.

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - SYSRESET-makroFiguur 3-6 • SYSRESET Makro

Algehele konnektiwiteit
Nadat jy die MSS-, FDDR-, SERDESIF-, OSC-, SYSRESET-, CoreConfigP- en CoreResetP-kerne in jou ontwerp geïnstantieer en gekonfigureer het, moet jy hulle koppel om die Perifere Inisialisering-substelsel te vorm. Om die konnektiwiteitsbeskrywing in hierdie dokument te vereenvoudig, is dit opgedeel in die APB3-voldoenende konfigurasiedatapadverbinding wat met die CoreConfigP- en die CoreResetP-verwante verbindings geassosieer word.
Konfigurasie datapadverbinding
Figuur 3-7 wys hoe om die CoreConfigP aan die MSS FIC_2-seine en die randapparatuur se APB3-voldoende konfigurasie-koppelvlakke te koppel.
Tabel 3-1 • Konfigurasie datapadpoort/BIF-verbindings

VANAF
Hawe/bus-koppelvlak
(BIF)/ Komponent
AAN
Poort/bus-koppelvlak (BIF)/komponent
APB S PRESET N/ CoreConfigP APB S PRESET N/ SDIF<0/1/2/3> APB S VOORINSTEL 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 SLAAF (BIF)/MSS
SDIF<0/1/2/ 3> APBmslave/Config APB SLAAF (BIF)/ SDIF<0/1/2/3>
FDDR APBmslaaf APB SLAAF (BIF)/ FDDR
FIC 2 APBmmaster/ CoreConfigP FIC 2 APB MASTER/ MSS

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - SubstelselverbindingFiguur 3-7 • FIC_2 APB3 Substelselverbinding

Horlosies en herstel konneksie
Figuur 3-8 wys hoe om die CoreResetP aan die eksterne terugstelbronne en die randapparatuur se kernterugstellingseine te koppel. Dit wys ook hoe om die CoreResetP aan die randapparatuur se kloksinchronisasiestatusseine (PLL-slotseine) te koppel. Daarbenewens wys dit hoe die CoreConfigP en CoreResetP verbind is.

Microsemi SmartFusion2 DDR-beheerder en seriële hoëspoedbeheerder - Substelselverbinding 2Figuur 3-8 • Core SF2Reset Sub-System Connectivity

Die skep en samestelling van die firmware-toepassing

Wanneer jy die firmware uitvoer vanaf LiberoSoC (Design Flow Window > Export Firmware > Export Firmware), genereer Libero die volgende files in die /firmware/drivers_config/ sys_config gids:

  • sys_config.c – Bevat die datastrukture wat die waardes vir die perifere registers hou.
  • sys_config.h – Bevat die #define-stellings wat spesifiseer watter randapparatuur in die ontwerp gebruik word en geïnisialiseer moet word.
  • sys_config_mddr_define.h – Bevat die MDDR-beheerder-konfigurasiedata wat in die dialoogkassie Registers Configuration ingevoer is.
  • sys_config_fddr_define.h – Bevat die FDDR-kontroleerderkonfigurasiedata wat in die dialoogkassie Registers Configuration ingevoer is.
  • sys_config_mss_clocks.h – Hierdie file bevat die MSS-klokfrekwensies soos gedefinieer in die MSS CCC-konfigureerder. Hierdie frekwensies word deur die CMSIS-kode gebruik om korrekte klokinligting aan baie van die MSS-bestuurders te verskaf wat toegang tot hul Periferale Klok (PCLK) frekwensie moet hê (bv. MSS UART baud rate delers is 'n funksie van die baud rate en die PCLK frekwensie ).
  • sys_config_SERDESIF_ .c – Bevat die SERDESIF_ registreer konfigurasiedata verskaf tydens die SERDESIF_ blokkonfigurasie in ontwerpskepping.
  • sys_config_SERDESIF_ .h – Bevat die #define-stellings wat die aantal registerkonfigurasiepare spesifiseer en die baannommer wat vir PMA_READY gepols moet word (slegs in PCIe-modus).

Hierdie files word vereis vir die CMSIS-kode om behoorlik saam te stel en inligting rakende jou huidige ontwerp te bevat, insluitend perifere konfigurasiedata en klokkonfigurasie-inligting vir die MSS.
Moenie hierdie wysig nie files handmatig; hulle word na die ooreenstemmende komponent/perifere-gidse geskep elke keer as die SmartDesign-komponente wat die onderskeie randapparatuur bevat, gegenereer word. As enige veranderinge aan die konfigurasiedata van enige van die randapparatuur aangebring word, moet jy die firmwareprojekte weer uitvoer sodat die opgedateerde firmware files (sien die lys hierbo) word uitgevoer na die / firmware/drivers_config/sys_config gids.
Wanneer jy die firmware uitvoer, skep Libero SoC die firmwareprojekte: 'n biblioteek waar jou ontwerpkonfigurasie files en drywers word saamgestel.
As jy die Skep projek nagaan merkblokkie wanneer jy die firmware uitvoer, word 'n sagteware SoftConsole/IAR/Keil-projek geskep om die toepassingsprojek te hou waar jy die main.c en gebruiker C/H kan wysig files. Maak die SoftConSole/IAR/Keil-projek oop om die CMSIS-kode korrek saam te stel en jou firmware-toepassing behoorlik op te stel om by jou hardeware-ontwerp te pas.

BFM Files Word gebruik om die ontwerp te simuleer

Wanneer jy die SmartDesign-komponente genereer wat die randapparatuur bevat wat met jou ontwerp geassosieer word, sal die simulasie files wat ooreenstem met die onderskeie randapparatuur word gegenereer in die /simulasiegids:

  • toets.bfm - Topvlak BFM file wat die eerste keer uitgevoer word tydens enige simulasie wat die SmartFusion2 MSS Cortex-M3 verwerker oefen. Dit voer peripheral_init.bfm en user.bfm uit, in daardie volgorde.
  • MDDR_init.bfm – As jou ontwerp die MDDR gebruik, genereer Libero dit file; dit bevat BFM-skryfopdragte wat skryfwerk simuleer van die MSS DDR-konfigurasieregisterdata wat jy ingevoer het (met die Redigeer Registers dialoogkassie of in die MSS_MDDR GUI) in die MSS DDR-beheerderregisters.
  • FDDR_init.bfm – As jou ontwerp die FDDR gebruik, genereer Libero dit file; dit bevat BFM-skryfopdragte wat skryfwerk simuleer van die Fabric DDR-konfigurasieregisterdata wat jy ingevoer het (met behulp van die Edit Registers dialoogkassie of in die FDDR GUI) in die Fabric DDR Controller-registers.
  • SERDESIF_ _init.bfm – As jou ontwerp een of meer SERDESIF-blokke gebruik, genereer Libero dit file vir elk van die SERDESIF_ blokke gebruik; dit bevat BFM-skryfopdragte wat skryfwerk simuleer van die SERDESIF-konfigurasieregisterdata wat jy ingevoer het (met die Redigeer Registers dialoogkassie of in die SERDESIF_ GUI) in die SERDESIF_ registers. As die SERDESIF-blok as PCIe opgestel is, is dit file het ook 'n paar #define-stellings wat die uitvoering van die 2 registerkonfigurasiefases in perfekte volgorde beheer.
  • gebruiker.bfm - Bevat die gebruikersopdragte. Hierdie opdragte word uitgevoer nadat peripheral_init.bfm voltooi is. Wysig dit file om jou BFM-opdragte in te voer.
  • SERDESIF_ _gebruiker.bfm - Bevat die gebruikersopdragte. Wysig dit file om jou BFM-opdragte in te voer. Gebruik dit as jy SERDESIF_ opgestel het blok in BFM PCIe-simulasiemodus en as 'n AXI/AHBLite-meester. As jy SERDESIF_ opgestel het blok in RTL-simulasiemodus, sal jy dit nie nodig hê nie file.

Wanneer jy simulasie elke keer aanroep, die volgende twee simulasie files word herskep om die /simulasiegids met opgedateerde inhoud:

  • substelsel.bfm – Bevat die #define-stellings vir elke randapparaat wat in jou ontwerp gebruik word, wat die spesifieke afdeling van die peripheral_init.bfm spesifiseer wat uitgevoer moet word wat ooreenstem met elke randapparaat.
  • operipheral_init.bfm – Bevat die BFM-prosedure wat die CMSIS:: SystemInit()-funksie naboots wat op die Cortex-M3 uitgevoer word voordat jy die hoof()-prosedure ingaan. Dit kopieer die konfigurasiedata vir enige randapparatuur wat in die ontwerp gebruik word na die korrekte perifere konfigurasieregisters en wag dan vir al die randapparatuur om gereed te wees voordat dit beweer dat jy hierdie randapparatuur kan gebruik. Dit voer MDDR_init.bfm en FDDR_init.bfm uit.

Die gebruik van hierdie gegenereer files, die DDR-beheerders in jou ontwerp word outomaties gekonfigureer, wat simuleer wat op 'n SmartFusion2-toestel sou gebeur. Jy kan die user.bfm wysig file om enige opdragte by te voeg wat nodig is om jou ontwerp te simuleer (Cortex-M3 is die meester). Hierdie opdragte word uitgevoer nadat die randapparatuur geïnisialiseer is. Moenie die test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm wysig nie files en die SERDESIF_ _init.bfm files.

Produk Ondersteuning

Microsemi SoC Products Group ondersteun sy produkte met verskeie ondersteuningsdienste, insluitend kliëntediens, kliënte-tegniese ondersteuningsentrum, 'n webwebwerf, elektroniese pos en wêreldwye verkoopskantore.
Hierdie bylaag bevat inligting oor kontak met Microsemi SoC Products Group en die gebruik van hierdie ondersteuningsdienste.
Kliëntediens
Kontak Kliëntediens vir nie-tegniese produkondersteuning, soos produkpryse, produkopgraderings, opdateringsinligting, bestellingstatus en magtiging.
Van Noord-Amerika, bel 800.262.1060
Van die res van die wêreld, bel 650.318.4460
Faks, van enige plek in die wêreld, 408.643.6913
Kliënte Tegniese Ondersteuningsentrum
Microsemi SoC Products Group beman sy kliënte-tegniese ondersteuningsentrum met hoogs bekwame ingenieurs wat kan help om jou hardeware, sagteware en ontwerpvrae oor Microsemi SoC-produkte te beantwoord. Die Kliënte Tegniese Ondersteuningsentrum spandeer baie tyd om toepassingsnotas te skep, antwoorde op algemene ontwerpsiklusvrae, dokumentasie van bekende kwessies en verskeie algemene vrae. Dus, voordat jy ons kontak, besoek asseblief ons aanlyn hulpbronne. Dit is baie waarskynlik dat ons reeds jou vrae beantwoord het.
Tegniese Ondersteuning
Besoek die kliëntediens webwerf (www.microsemi.com/soc/support/search/default.aspx) vir meer inligting en ondersteuning. Baie antwoorde beskikbaar op die soekbare web hulpbron sluit diagramme, illustrasies en skakels na ander hulpbronne op die webwebwerf.
Webwebwerf
U kan deur 'n verskeidenheid tegniese en nie-tegniese inligting blaai op die SoC-tuisblad, by www.microsemi.com/soc.
Kontak die Kliënte Tegniese Ondersteuningsentrum
Hoogs geskoolde ingenieurs beman die Tegniese Ondersteuningsentrum. Die Tegniese Ondersteuningsentrum kan per e-pos of deur die Microsemi SoC Products Group gekontak word webwebwerf.
E-pos
Jy kan jou tegniese vrae na ons e-posadres kommunikeer en antwoorde per e-pos, faks of telefoon terug ontvang. Ook, as jy ontwerpprobleme het, kan jy jou ontwerp e-pos files om bystand te ontvang.
Ons monitor die e-posrekening voortdurend deur die dag. Wanneer jy jou versoek aan ons stuur, maak asseblief seker dat jy jou volle naam, maatskappynaam en jou kontakinligting insluit vir doeltreffende verwerking van jou versoek.
Die e-posadres vir tegniese ondersteuning is soc_tech@microsemi.com.
My gevalle
Microsemi SoC Products Group-kliënte kan tegniese sake aanlyn indien en opspoor deur na My gevalle.
Buite die VSA
Kliënte wat hulp nodig het buite die Amerikaanse tydsones kan tegniese ondersteuning per e-pos kontak (soc_tech@microsemi.com) of kontak 'n plaaslike verkoopskantoor. Verkoopskantoorlyste kan gevind word by www.microsemi.com/soc/company/contact/default.aspx.
ITAR Tegniese Ondersteuning
Vir tegniese ondersteuning oor RH en RT FPGA's wat gereguleer word deur International Traffic in Arms Regulations (ITAR), kontak ons ​​via soc_tech_itar@microsemi.com. Alternatiewelik, binne My Cases, kies Ja in die ITAR-aftreklys. Vir 'n volledige lys van ITAR-gereguleerde Microsemi FPGA's, besoek die ITAR web bladsy.
Microsemi Corporation (NASDAQ: MSCC) bied 'n omvattende portefeulje van halfgeleieroplossings vir: lugvaart, verdediging en sekuriteit; onderneming en kommunikasie; en industriële en alternatiewe energiemarkte. Produkte sluit in hoëprestasie, hoëbetroubaarheid analoog- en RF-toestelle, gemengde sein- en RF-geïntegreerde stroombane, aanpasbare SoC's, FPGA's en volledige substelsels. Microsemi het sy hoofkwartier in Aliso Viejo, Kalifornië. Kom meer te wete by www.microsemi.com.
© 2014 Microsemi Corporation. Alle regte voorbehou. Microsemi en die Microsemi-logo is handelsmerke van Microsemi Corporation. Alle ander handelsmerke en diensmerke is die eiendom van hul onderskeie eienaars.

5-02-00384-1/08.14Microsemi logoMikrosemi Korporatiewe Hoofkwartier
One Enterprise, Aliso Viejo CA 92656 VSA
Binne die VSA: +1 949-380-6100
Verkope: +1 949-380-6136
Faks: +1 949-215-4996

Dokumente / Hulpbronne

Microsemi SmartFusion2 DDR-beheerder en reeks hoëspoedbeheerder [pdf] Gebruikersgids
SmartFusion2 DDR-beheerder en reekshoëspoedbeheerder, SmartFusion2 DDR, beheerder en reekshoëspoedbeheerder, hoëspoedbeheerder

Verwysings

Los 'n opmerking

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde is gemerk *