SmartFusion 2
DDR Controller en Serial High Speed Controller
Inisjalisaasjemetoade
Brûkersgids
Ynlieding
As jo in ûntwerp meitsje mei in SmartFusion2-apparaat, as jo ien fan 'e twa DDR-controllers (FDDR of MDDR) of ien fan' e Serial High Speed Controller (SERDESIF) blokken brûke, moatte jo de konfiguraasjeregisters fan dizze blokken yn 'e run-time initialisearje foardat se kinne wurde brûkt. Bygelyksample, foar de DDR controller, Jo moatte ynstelle de DDR modus (DDR3 / DDR2 / LPDDR), PHY breedte, burst modus en ECC.
Lykas, foar it SERDESIF-blok dat brûkt wurdt as PCIe-einpunt, moatte jo de PCIE BAR ynstelle op AXI (of AHB) finster.
Dit dokumint beskriuwt de stappen dy't nedich binne om in Libero-ûntwerp te meitsjen dat de DDR-controller en SERDESIF-blokken automatysk initialisearret by it opstarten. It beskriuwt ek hoe't jo de firmware-koade generearje fan Libero SOC dy't wurdt brûkt yn 'e ynbêde ûntwerpstream.
In detaillearre beskriuwing fan 'e teory fan operaasjes wurdt earst jûn.
De folgjende paragraaf beskriuwt hoe't jo sa'n ûntwerp meitsje kinne mei de Libero SoC System Builder, in krêftich ûntwerpark dat, ûnder oare funksjes, de 'initialisaasje'-oplossing foar jo makket as jo DDR- of SERDESIF-blokken brûke yn jo ûntwerp.
De folgjende seksje beskriuwt hoe't jo in folsleine 'initialisaasje'-oplossing byinoar sette sûnder de SmartFusion2 System Builder te brûken. Dit helpt út te lizzen wat der dien wurde moat as jo de Systeembouwer net wolle brûke, en beskriuwt ek wat it Systeembouwer-ark eins foar jo genereart. Dizze seksje rjochtet:
- De oprjochting fan de konfiguraasje gegevens foar DDR controller en SERDESIF konfiguraasje registers
- De skepping fan 'e FPGA-logika dy't nedich is om de konfiguraasjegegevens oer te bringen nei de ferskate ASIC-konfiguraasjeregisters
Ta beslút wy beskriuwe de oanmakke files relatearre oan:
- De skepping fan firmware 'inisjalisaasje' oplossing.
- De simulaasje fan it ûntwerp foar de DDR 'initialisaasje' oplossing.
Foar details oer de DDR controller en SERDESIF konfiguraasje registers, ferwize nei de Microsemi SmartFusion2 High Speed Serial and DDR Interfaces User's Guide.
Operaasjeteory
De oplossing foar perifeare inisjalisaasje brûkt de folgjende wichtige komponinten:
- De funksje CMSIS SystemInit (), dy't rint op 'e Cortex-M3 en orkestret it inisjalisaasjeproses.
- De CoreConfigP sêfte IP-kearn, dy't de konfiguraasjeregisters fan 'e perifeare apparaten inisjalisearret.
- De CoreResetP sêfte IP-kearn, dy't de reset-sekwinsje beheart fan 'e MSS, DDR-controllers, en SERDESIF-blokken.
It perifeare inisjalisaasjeproses wurket as folget:
- By reset rint de Cortex-M3 de CMSIS SystemInit () funksje. Dizze funksje wurdt automatysk útfierd foardat de haadfunksje () fan 'e applikaasje wurdt útfierd.
It CoreResetP-útfiersinjaal MSS_HPMS_READY wurdt beweard oan it begjin fan it inisjalisaasjeproses, wat oanjout dat de MSS en alle perifeare apparaten (útsein MDDR) klear binne foar kommunikaasje. - De funksje SystemInit () skriuwt konfiguraasjegegevens nei de DDR-controllers en SERDESIF-konfiguraasjeregisters fia de MSS FIC_2 APB3-bus. Dizze ynterface is ferbûn mei de sêfte CoreConfigP-kearn dy't ynstantiearre is yn 'e FPGA-stof.
- Neidat alle registers binne konfigurearre, skriuwt de SystemInit () -funksje nei de CoreConfigP-kontrôleregisters om de foltôging fan 'e registerkonfiguraasjefaze oan te jaan; de CoreConfigP-útfiersinjalen CONFIG1_DONE en CONIG2_DONE wurde dan beweard.
D'r binne twa fazen fan registerkonfiguraasje (CONFIG1 en CONFIG2) ôfhinklik fan 'e perifeare apparaten brûkt yn it ûntwerp. - As ien of beide fan MDDR / FDDR wurde brûkt, en net ien fan de SERDESIF blokken wurde brûkt yn it ûntwerp, der is mar ien register konfiguraasje faze. Sawol de CoreConfigP-útfiersinjalen CONFIG1_DONE en CONIG2_DONE wurde ien nei de oare beweard sûnder wachtsjen / fertraging.
As ien of mear SERDESIF blokken yn net-PCIe modus wurde brûkt yn it ûntwerp, der is mar ien faze fan register konfiguraasje. CONFIG1_DONE en CONIG2_DONE wurde ien nei de oare beweard sûnder wachtsjen / fertraging.
As ien of mear SERDESIF blokken yn PCIe modus wurde brûkt yn it ûntwerp, der binne twa fazen fan register konfiguraasje. CONFIG1_DONE wurdt beweard neidat de earste faze fan registerkonfiguraasje foltôge is. SERDESIF systeem en lane registers wurde konfigurearre yn dizze faze. As SERDESIF is ynsteld yn in net-PCIE modus, wurdt CONFIG2_DONE sinjaal ek beweare fuortendaliks. - De twadde faze fan registerkonfiguraasje folget dan (as SERDESIF is ynsteld yn PCIE-modus). De folgjende binne de ferskate eveneminten dy't barre yn 'e twadde faze:
- CoreResetP de-asserts PHY_RESET_N en CORE_RESET_N sinjalen oerienkommende mei elk fan de SERDESIF blokken brûkt. It beweart ek in útfiersinjaal SDIF_RELEASED nei't alle SERDESIF-blokken út 'e reset binne. Dit SDIF_RELEASED-sinjaal wurdt brûkt om oan te jaan oan de CoreConfigP dat de SERDESIF-kearn net weromset is en klear is foar de twadde faze fan registerkonfiguraasje.
- Sadree't it SDIF_RELEASED-sinjaal is beweard, begjint de SystemInit () -funksje te stimmen foar de bewearing fan PMA_READY op 'e passende SERDESIF-baan. Sadree't de PMA_READY wurdt asserted, de twadde set fan SERDESIF registers (PCIE registers) wurde konfigurearre / skreaun troch de SystemInit () funksje. - Neidat alle PCIE registers binne konfigurearre, skriuwt de SystemInit () funksje nei de CoreConfigP kontrôle registers foar in oanjaan de foltôging fan de twadde faze fan register konfiguraasje; de CoreConfigP útfier sinjaal CONIG2_DONE wurdt dan asserted.
- Njonken de boppesteande sinjaalbewearingen / de-assertions, beheart CoreResetP ek de inisjalisaasje fan 'e ferskate blokken troch de folgjende funksjes út te fieren:
- De-asserting fan de FDDR kearn weromsette
- De-assert de SERDESIF-blokken PHY en CORE weromsette
- Monitoring fan it FDDR PLL (FPLL) slotsinjaal. De FPLL moat beskoattele wêze om te garandearjen dat de FDDR AXI/AHBLite-gegevensynterface en de FPGA-stof goed kinne kommunisearje.
- Tafersjoch op de SERDESIF-blok PLL (SPLL) slotsignalen. De SPLL moat beskoattele hawwe om te garandearjen dat de SERDESIF AXI / AHBLite-ynterface (PCIe-modus) of XAUI-ynterface blokkearret goed kin kommunisearje mei de FPGA-stof.
- Wachtsje op 'e eksterne DDR-oantinkens om te fêstigjen en klear te wêzen om tagong te wurden troch de DDR-controllers. - As alle perifeare apparaten har inisjalisaasje foltôge hawwe, beweart CoreResetP it INIT_DONE-sinjaal; de CoreConfigP ynterne register INIT_DONE wurdt dan beweard.
As ien of beide fan MDDR / FDDR wurde brûkt, en de DDR inisjalisaasje tiid wurdt berikt, wurdt CoreResetP útfier sinjaal DDR_READY asserted. Assertion fan dit sinjaal DDR_READY kin wurde kontrolearre as in yndikaasje dat de DDR (MDDR / FDDR) is klear foar kommunikaasje.
As ien of mear SERDESIF blokken wurde brûkt, en de twadde faze fan register konfiguraasje is mei súkses foltôge, wurdt CoreResetP útfier sinjaal SDIF_READY beweard. Assertion fan dit sinjaal SDIF_READY kin wurde kontrolearre as in yndikaasje dat alle SERDESIF blokken binne klear foar kommunikaasje. - De SystemInit()-funksje, dy't wachte hat op INIT_DONE om beweard te wurden, foltôge, en de haadfunksje fan 'e applikaasje wurdt útfierd. Op dat stuit binne alle brûkte DDR-controllers en SERDESIF-blokken inisjalisearre, en de firmware-applikaasje en de FPGA-stoflogika kinne betrouber mei har kommunisearje.
De metodyk beskreaun yn dit dokumint is basearre op de Cortex-M3 dy't it inisjalisaasjeproses útfiert as ûnderdiel fan 'e systeeminitialisaasjekoade útfierd foar de haadfunksje () fan 'e applikaasje.
Sjoch de Flow Charts yn figuer 1-1, figuer 1-2 en figuer 1-3 foar de inisjalisaasje stappen fan FDDR / MDDR, SEREDES (non-PCIe modus) en SERDES (PCIe modus).
figuer 1-4 lit in perifeare inisjalisaasje timing diagram.
![]() |
![]() |
figuer 1-3 • SERDESIF (PCIe) Inisjalisaasje Flow Chart
De inisjalisaasjeproseduere beskreaun yn dit dokumint fereasket dat jo Cortex-M3 útfiere tidens it inisjalisaasjeproses, sels as jo net fan plan binne in koade út te fieren op 'e Cortex-M3. Jo moatte in basis firmware-applikaasje oanmeitsje dy't neat docht (in ienfâldige loop, bygelyksample) en laden dat útfierber yn it ynbêde Non Volatile Memory (eNVM), sadat de DDR-controllers en SERDESIF-blokken wurde inisjalisearre as de Cortex-M3 opstart.
Systeembouwer brûke om in ûntwerp te meitsjen mei DDR- en SERDESIF-blokken
De SmartFusion2 System Builder is in krêftich ûntwerpark dat jo helpt om jo easken op systeemnivo te fangen en in ûntwerp te produsearjen dat dizze easken ymplementearret. In heul wichtige funksje fan 'e Systeembouwer is de automatyske oanmeitsjen fan it subsysteem Perifeare inisjalisaasje. "It brûken fan SmartDesign om in ûntwerp te meitsjen mei DDR- en SERDESIF-blokken" op side 17 beskriuwt yn detail hoe't jo sa'n oplossing kinne meitsje sûnder de Systeembouwer.
As jo System Builder brûke, moatte jo de folgjende taken útfiere om in ûntwerp te meitsjen dat jo DDR-controllers en SERDESIF-blokken initialisearret by it opstarten:
- Spesifisearje op 'e side Apparaatfunksjes (figuer 2-1) hokker DDR-controllers wurde brûkt en hoefolle SERDESIF-blokken wurde brûkt yn jo ûntwerp.
- Yn de Unthâld side, spesifisearje it type DDR (DDR2 / DDR3 / LPDDR) en de konfiguraasje gegevens foar jo eksterne DDR oantinkens. Sjoch de seksje Memory Page foar details.
- Yn 'e perifeare side foegje stofmasters ta konfigureare as AHBLite / AXI oan it Fabric DDR Subsystem en / of MSS DDR FIC Subsystem (opsjoneel).
- Spesifisearje op 'e side Klokynstellingen de klokfrekwinsjes foar de DDR-subsystemen.
- Folje jo ûntwerpspesifikaasje yn en klikje op Finish. Dit genereart it ûntwerp makke troch System Builder, ynklusyf de logika dy't nedich is foar de 'initialisearring'-oplossing.
- As jo SERDESIF-blokken brûke, moatte jo de SERDESIF-blokken yn jo ûntwerp ynstantearje en har inisjalisaasjepoarten ferbine mei dy fan 'e System Builder-generearre kearn.
Systeembouwer Device Features Side
Spesifisearje op 'e side Apparaatfunksjes hokker DDR-controllers (MDDR en / of FDDR) wurde brûkt en hoefolle SERDESIF-blokken wurde brûkt yn jo ûntwerp (figuer 2-1).
figuer 2-1 • Systeembouwer Device Features Side
Systeembouwer Unthâld Page
Om de MSS DDR (MDDR) of Fabric DDR (FDDR) te brûken, selektearje it Memory Type út it útklapmenu (figuer 2-2).
figuer 2-2 • MSS Eksterne Unthâld
Jo moatte:
- Selektearje it DDR-type (DDR2, DDR3 of LPDDR).
- Definiearje de DDR ûnthâld settling tiid. Rieplachtsje jo eksterne DDR Unthâld Spesifikaasjes foar in set de krekte ûnthâld ynstelling tiid. It DDR-ûnthâld kin miskien net goed inisjalisearje as de tiid foar it fêststellen fan ûnthâld net goed ynsteld is.
- Ymportearje de DDR-registerkonfiguraasjegegevens of set jo DDR-ûnthâldparameters yn. Foar details, ferwize nei de Microsemi SmartFusion2 High Speed Serial and DDR Interfaces User's Guide.
Dizze gegevens wurde brûkt om it DDR-register BFM en firmware-konfiguraasje te generearjen files lykas beskreaun yn de "De firmware-applikaasje oanmeitsje en kompilearje" op side 26 en "BFM Files brûkt foar simulating it ûntwerp "op side 27. Foar details oer DDR controller konfiguraasje registers, ferwize nei de Microsemi SmartFusion2 High Speed Serial and DDR Interfaces User's Guide.
In eksample fan de konfiguraasje file syntaksis wurdt werjûn yn figuer 2-3. De registernammen brûkt yn dit file binne itselde as dy beskreaun yn de Microsemi SmartFusion2 High Speed Serial and DDR Interfaces User's Guide
figuer 2-3 • Konfiguraasje File Syntaksis Example
Systeembouwer Peripherals Side
Yn 'e perifeare side wurdt foar elke DDR-controller in apart subsysteem makke (Fabric DDR Subsystem foar FDDR en MSS DDR FIC Subsystem foar MDDR). Jo kinne in Fabric AMBA Master (konfigurearre as AXI / AHBLite) kearn tafoegje oan elk fan dizze subsystemen om stofmaster tagong te meitsjen ta de DDR-controllers. By generaasje instantiates System Builder automatysk bus kearnen (ôfhinklik fan it type AMBA Master tafoege) en bleatstelt de master BIF fan de bus kearn en de klok en weromsette pins fan de oerienkommende subsystemen (FDDR / MDDR) ûnder passende pin groepen, nei de top. Alles wat jo hoege te dwaan is de BIF's te ferbinen mei de passende Fabric Master-kearnen dy't jo soene ynstantiearje yn it ûntwerp. Yn it gefal fan MDDR is it opsjoneel om in Fabric AMBA Master-kearn ta te foegjen oan it MSS DDR FIC Subsystem; Cortex-M3 is in standert master op dit subsysteem. Figuer 2-4 toant de System Builder Peripherals Side.
figuer 2-4 • System Builder Peripherals Side
Systeembouwer Klokynstellingsside
Yn 'e side fan' e klokynstellingen moatte jo foar elke DDR-controller de klokfrekwinsjes oanjaan dy't relatearre binne oan elk DDR (MDDR en / of FDDR) subsysteem.
Foar MDDR moatte jo opjaan:
- MDDR_CLK - Dizze klok bepaalt de bestjoeringsfrekwinsje fan 'e DDR Controller en moat oerienkomme mei de klokfrekwinsje wêrop jo wolle dat jo eksterne DDR-ûnthâld rint. Dizze klok wurdt definiearre as in mearfâldichheid fan de M3_CLK (Cortex-M3 en MSS Main Clock, figuer 2-5). De MDDR_CLK moat minder wêze as 333 MHz.
- DDR_FIC_CLK - As jo keazen hawwe om ek tagong te krijen ta de MDDR fan 'e FPGA-stof, moatte jo de DDR_FIC_CLK opjaan. Dizze klokfrekwinsje wurdt definiearre as ferhâlding fan 'e MDDR_CLK en moat oerienkomme mei de frekwinsje wêrop it FPGA-stofsubsysteem dat tagong hat ta de MDDR rint.
figuer 2-5 • Cortex-M3 en MSS Main Clock; MDDR klokken
Foar FDDR moatte jo opjaan:
- FDDR_CLK - Bepaalt de bestjoeringsfrekwinsje fan 'e DDR Controller en moat oerienkomme mei de klokfrekwinsje wêrop jo wolle dat jo eksterne DDR-ûnthâld rint. Tink derom dat dizze klok wurdt definiearre as in mearfâldichheid fan de M3_CLK (MSS en Cortex-M3 klok, figuer 2-5). De FDDR_CLK moat binnen 20 MHz en 333 MHz wêze.
- FDDR_SUBSYSTEM_CLK - Dizze klokfrekwinsje wurdt definieare as in ferhâlding fan 'e FDDR_CLK en moat oerienkomme mei de frekwinsje wêrop it FPGA-stofsubsysteem dat tagong hat ta de FDDR rint.
figuer 2-6 • Fabric DDR Clocks
SERDESIF konfiguraasje
De SERDESIF-blokken wurde net ynstantiearre yn it troch System Builder generearre ûntwerp. Foar alle SERDESIF-blokken binne inisjalisaasjesinjalen lykwols beskikber by de ynterface fan 'e System Builder-kearn en kinne wurde ferbûn mei de SERDESIF-kearnen op it folgjende nivo fan hiërargy, lykas werjûn yn figuer 2-7.figuer 2-7 • SERDESIF Perifeare inisjalisaasje Konnektivität
Fergelykber mei de DDR-konfiguraasjeregisters hat elk SERDES-blok ek konfiguraasjeregisters dy't moatte wurde laden by runtime. Jo kinne dizze registerwearden ymportearje of de High Speed Serial Interface Configurator (figuer 2-8) brûke om jo PCIe- of EPCS-parameters yn te fieren en de registerwearden wurde automatysk foar jo berekkene. Foar details, ferwize nei de SERDES Configurator User's Guide.Ofbylding 2-8 • High Speed Serial Interface Configurator
Sadree't jo jo brûkerslogika hawwe yntegrearre mei it System Builder-blok en SERDES-blok, kinne jo jo SmartDesign op it heechste nivo generearje. Dit genereart alle HDL en BFM files dy't nedich binne om jo ûntwerp út te fieren en te simulearjen. Jo kinne dan trochgean mei de rest fan 'e Design Flow.
SmartDesign brûke om in ûntwerp te meitsjen mei DDR- en SERDESIF-blokken
Dizze seksje beskriuwt hoe't jo in folsleine 'initialisaasje'-oplossing byinoar sette sûnder de SmartFusion2 System Builder te brûken. It doel is om jo te helpen begripe wat jo moatte dwaan as jo de Systeembouwer net wolle brûke. Dizze seksje beskriuwt ek wat it Systeembouwer-ark eins foar jo genereart. Dizze seksje beskriuwt hoe't jo:
- Fier de konfiguraasje gegevens foar DDR controller en SERDESIF konfiguraasje registers.
- Instantiearje en ferbine de Fabric Cores dy't nedich binne om de konfiguraasjegegevens oer te bringen nei de DDR-controllers en SERDESIF-konfiguraasjeregisters.
DDR Controller konfiguraasje
De MSS DDR (MDDR) en Fabric DDR (FDDR) controllers moatte wurde konfigurearre dynamysk (by runtime) te passen oan de eksterne DDR ûnthâld konfiguraasje easken (DDR modus, PHY breedte, burst modus, ECC, ensfh). Gegevens ynfierd yn MDDR / FDDR konfigurator wurdt skreaun nei de DDR controller konfiguraasje registers troch de CMSIS SystemInit () -funksje. De konfigurator hat trije ferskillende ljeppers foar it ynfieren fan ferskate soarten konfiguraasjegegevens:
- Algemiene gegevens (DDR-modus, Gegevensbreedte, Klokfrekwinsje, ECC, Fabric Interface, Drive Strength)
- Gegevens foar inisjalisaasje fan ûnthâld (burstlingte, burstfolchoarder, timingmodus, latency, ensfh.)
- Unthâld Timing gegevens
Ferwize nei de spesifikaasjes fan jo eksterne DDR-ûnthâld en konfigurearje de DDR-controller om te passen oan de easken fan jo eksterne DDR-ûnthâld.
Foar details oer DDR konfiguraasje, ferwize nei de SmartFusion2 MSS DDR Configuration User Guide.
SERDESIF konfiguraasje
Dûbelklikje op it SERDES-blok yn it SmartDesign-doek om de konfigurator te iepenjen om de SERDES te konfigurearjen (figuer 3-1). Jo kinne dizze registerwearden ymportearje of de SERDES-konfigurator brûke om jo PCIe- as EPCS-parameters yn te fieren en de registerwearden wurde automatysk foar jo berekkene. Foar details, ferwize nei de SERDES Configurator User's Guide.Ofbylding 3-1 • High Speed Serial Interface Configurator
It oanmeitsjen fan it FPGA-ûntwerpinitialisearring-subsysteem
Om de DDR- en SERDESIF-blokken te inisjalisearjen, moatte jo it inisjalisaasjesubsysteem yn 'e FPGA-stof oanmeitsje. It subsysteem foar initialisaasje fan FPGA-stof ferpleatst gegevens fan 'e Cortex-M3 nei de DDR- en SERDESIF-konfiguraasjeregisters, beheart de reset-sekwinsjes dy't nedich binne foar dizze blokken om operasjoneel te wêzen en sinjalearret as dizze blokken ree binne om te kommunisearjen mei de rest fan jo ûntwerp. Om it inisjalisaasjesubsysteem te meitsjen, moatte jo:
- Konfigurearje FIC_2 binnen de MSS
- Ynstantiearje en konfigurearje de CoreConfigP- en CoreResetP-kearnen
- Instantiearje de on-chip 25/50MHz RC-oscillator
- Ynstantearje de Makro System Reset (SYSRESET).
- Ferbine dizze komponinten oan elke perifeare konfiguraasje-ynterfaces, klokken, resets en PLL-slotports
MSS FIC_2 APB konfiguraasje
Om de MSS FIC_2 te konfigurearjen:
- Iepenje it dialoochfinster FIC_2-konfigurator fan 'e MSS-konfigurator (figuer 3-2).
- Selektearje Inisjalisearje perifeare apparaten mei Cortex-M3.
- Ofhinklik fan jo systeem, kontrolearje ien of beide fan 'e folgjende karfakjes:
- MSS DDR
- Fabric DDR en / of SERDES Blocks - Klikje op OK en gean troch om de MSS te generearjen (jo kinne dizze aksje útstelle oant jo de MSS folslein ynsteld hawwe foar jo ûntwerpeasken). De FIC_2-poarten (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK en FIC_2_APB_M_RESET_N) wurde no bleatsteld oan de MSS-ynterface en kinne wurde ferbûn mei de CoreConfigP- en CoreResetP-kearnen.
figuer 3-2 • MSS FIC_2 Configurator
CoreConfigP
Om CoreConfigP te konfigurearjen:
- Instantiearje CoreConfigP yn jo SmartDesign (typysk dejinge wêr't de MSS wurdt ynstantiearre).
Dizze kearn is te finen yn 'e Libero Catalog (ûnder Peripherals). - Dûbelklikke op de kearn om de konfigurator te iepenjen.
- Konfigurearje de kearn om oan te jaan hokker perifeare apparaten moatte wurde inisjalisearre (figuer 3-3)
figuer 3-3 • CoreConfigP dialoochfinster
CoreResetP
Om CoreResetP te konfigurearjen:
- Instantiearje CoreResetP yn jo SmartDesign (typysk dejinge wêr't de MSS wurdt ynstantiearre).
Dizze kearn is te finen yn 'e Libero Catalog, ûnder Peripherals. - Dûbelklikje op de kearn yn it SmartDesign Canvas om de konfigurator te iepenjen (figuer 3-4).
- Konfigurearje de kearn om:
- Spesifisearje it eksterne weromsettegedrach (EXT_RESET_OUT beweard). Kies ien fan fjouwer opsjes:
o EXT_RESET_OUT wurdt nea beweard
o EXT_RESET_OUT wurdt beweard as opstart weromsette (POWER_ON_RESET_N) wurdt beweard
o EXT_RESET_OUT wurdt beweard as FAB_RESET_N wurdt beweard
o EXT_RESET_OUT wurdt beweard as opstart weromsette (POWER_ON_RESET_N) of FAB_RESET_N wurdt beweard
- Spesifisearje it apparaat Voltage. De selektearre wearde moat oerienkomme mei de voltage jo selektearre yn it Libero Project Settings dialoochfinster.
- Kontrolearje de passende karfakjes om oan te jaan hokker perifeare apparaten jo brûke yn jo ûntwerp.
- Spesifisearje de eksterne DDR ûnthâld ynstelling tiid. Dit is de maksimale wearde foar alle DDR oantinkens brûkt yn jo applikaasje (MDDR en FDDR). Ferwize nei de eksterne DDR ûnthâld ferkeaper datasheet foar in ynstelle dizze parameter. 200us is in goede standertwearde foar DDR2 en DDR3 oantinkens dy't rinne op 200MHz. Dit is in heul wichtige parameter om in wurkjende simulaasje en in wurkjend systeem op silisium te garandearjen. In ferkearde wearde foar de settling tiid kin resultearje yn simulaasje flaters. Ferwize nei de DDR ûnthâld ferkeaper datasheet foar in konfigurearje dizze parameter.
- Kontrolearje foar elk SERDES-blok yn jo ûntwerp de passende fakjes om oan te jaan of:
o PCIe wurdt brûkt
o Stipe foar PCIe Hot Reset is fereaske
o Stipe foar PCIe L2/P2 is nedich
Noat: As jo de 090-die (M2S090) brûke en jo ûntwerp brûkt SERDESIF, hoege jo net ien fan 'e folgjende karfakjes te kontrolearjen: 'Gebrûkt foar PCIe', 'PCIe HotReset-stipe opnimme' en 'PCIe L2/P2-stipe opnimme'. As jo in net-090-apparaat brûke en ien of mear SERDESIF-blokken brûke, moatte jo alle fjouwer karfakjes kontrolearje ûnder de passende SERDESIF-seksje.
Noat: Foar details oer de opsjes beskikber foar jo yn dizze konfigurator, ferwize nei it CoreResetP Hânboek.
figuer 3-4 • CoreResetPConfigurator
25/50MHz Oscillator Instantiation
CoreConfigP en CoreResetP wurde klokt troch de on-chip 25/50MHz RC-oscillator. Jo moatte in 25/50MHz Oscillator ynstantiearje en ferbine mei dizze kearnen.
- Instantiearje de Chip Oscillators-kearn yn jo SmartDesign (typysk dejinge wêr't de MSS wurdt instantiearre). Dizze kearn is te finen yn 'e Libero Catalog ûnder Klok en behear.
- Konfigurearje dizze kearn sa dat de RC-oscillator de FPGA-stof driuwt, lykas werjûn yn figuer 3-5.
figuer 3-5 • Chip Oscillators Configurator
Systeem weromsette (SYSRESET) Instantiation
De SYSRESET-makro leveret funksjonaliteit foar reset fan apparaatnivo oan jo ûntwerp. It POWER_ON_RESET_N-útfiersinjaal wurdt beweard / de-asserted as de chip wurdt oanstutsen as de eksterne pin DEVRST_N wurdt assert / de-asserted (figuer 3-6).
Instantiearje de SYSRESET-makro yn jo SmartDesign (typysk dejinge wêr't de MSS wurdt instantiearre). Dizze makro is te finen yn 'e Libero Catalog ûnder Macro Library. Gjin konfiguraasje fan dizze makro is nedich.
figuer 3-6 • SYSRESET Macro
Algemiene Konnektivität
Neidat jo de MSS-, FDDR-, SERDESIF-, OSC-, SYSRESET-, CoreConfigP- en CoreResetP-kearnen yn jo ûntwerp hawwe instantiearre en konfigureare, moatte jo se ferbine om it subsysteem Peripheral Initialization te foarmjen. Om de ferbiningsbeskriuwing yn dit dokumint te ferienfâldigjen, is it yndield yn 'e APB3-kompatibele konfiguraasjegegevenspaadferbining ferbûn mei de CoreConfigP en de CoreResetP-relatearre ferbiningen.
Konfiguraasje Data Paad Konnektivität
Figuer 3-7 lit sjen hoe't jo de CoreConfigP ferbine mei de MSS FIC_2-sinjalen en de APB3-kompatibele konfiguraasje-ynterfaces fan 'e perifeare apparaten.
Tabel 3-1 • Konfiguraasje Data Paad Port / BIF Ferbinings
FAN Port / Bus Interface (BIF) / komponint |
NEI Port / Bus Interface (BIF) / Komponint |
||
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 |
figuer 3-7 • FIC_2 APB3 Sub-System Konnektivität
Klokken en Resets Konnektivität
Figuer 3-8 lit sjen hoe't jo de CoreResetP ferbine mei de eksterne reset-boarnen en de kearn-reset-sinjalen fan 'e perifeare apparaten. It lit ek sjen hoe't jo de CoreResetP kinne ferbine mei de statussinjalen foar kloksynchronisaasje fan 'e perifeare apparaten (PLL-slotsinjalen). Derneist lit it sjen hoe't de CoreConfigP en CoreResetP binne ferbûn.
figuer 3-8 • Core SF2Reset Sub-System Connectivity
De Firmware-applikaasje oanmeitsje en kompilearje
As jo de firmware eksportearje fan LiberoSoC (Design Flow Finster> Eksportearje Firmware> Eksportearje Firmware), genereart Libero de folgjende files yn de /firmware/drivers_config/ sys_config map:
- sys_config.c - Befettet de gegevensstruktueren dy't de wearden foar de perifeare registers hâlde.
- sys_config.h - Befettet de #define-útspraken dy't spesifisearje hokker perifeare apparaten wurde brûkt yn it ûntwerp en moatte wurde inisjalisearre.
- sys_config_mddr_define.h - Befettet de konfiguraasjegegevens fan 'e MDDR-controller ynfierd yn it dialoochfinster Registers Configuration.
- sys_config_fddr_define.h - Befettet de konfiguraasjegegevens fan de FDDR-controller ynfierd yn it dialoochfinster Registers Configuration.
- sys_config_mss_clocks.h - Dit file befettet de MSS-klokfrekwinsjes lykas definieare yn 'e MSS CCC-konfigurator. Dizze frekwinsjes wurde brûkt troch de CMSIS-koade om korrekte klokynformaasje te jaan oan in protte fan 'e MSS-bestjoerders dy't tagong moatte hawwe ta har frekwinsje fan Peripheral Clock (PCLK) (bgl. MSS UART-baudrate-divisors binne in funksje fan 'e baudrate en de PCLK-frekwinsje).
- sys_config_SERDESIF_ .c - Befettet de SERDESIF_ registrearje konfiguraasjegegevens levere tidens de SERDESIF_ blok konfiguraasje yn ûntwerp skepping.
- sys_config_SERDESIF_ .h - Befettet de #define-útspraken dy't it oantal registerkonfiguraasjepearen spesifisearje en it baannûmer dat moat wurde ûnderfrege foar PMA_READY (allinich yn PCIe-modus).
Dizze files binne nedich foar de CMSIS-koade om goed te kompilearjen en ynformaasje te befetsjen oangeande jo hjoeddeistige ûntwerp, ynklusyf perifeare konfiguraasjegegevens en klokkonfiguraasjeynformaasje foar de MSS.
Bewurkje dizze net files hânmjittich; se wurde oanmakke nei de oerienkommende komponint / perifeare mappen elke kear as de SmartDesign-komponinten dy't de respektivelike perifeare apparaten befetsje, wurde oanmakke. As der wizigingen wurde makke oan de konfiguraasjegegevens fan ien fan 'e perifeare apparaten, moatte jo de firmwareprojekten opnij eksportearje sadat de bywurke firmware files (sjoch de list hjirboppe) wurde eksportearre nei de / firmware/drivers_config/sys_config map.
As jo de firmware eksportearje, makket Libero SoC de firmwareprojekten: in bibleteek wêr't jo ûntwerpkonfiguraasje files en bestjoerders wurde gearstald.
As jo kontrolearje de Create projekt karfakje as jo de firmware eksportearje, wurdt in software SoftConsole/IAR/Keil-projekt makke om it applikaasjeprojekt te hâlden wêr't jo de main.c en brûker C/H kinne bewurkje files. Iepenje it SoftConSole/IAR/Keil-projekt om de CMSIS-koade goed te kompilearjen en jo firmware-applikaasje goed te konfigurearjen om te passen by jo hardware-ûntwerp.
BFM Files Wurdt brûkt foar it simulearjen fan it ûntwerp
As jo de SmartDesign-komponinten generearje dy't de perifeare apparaten befetsje dy't ferbûn binne mei jo ûntwerp, sil de simulaasje files oerienkomt mei de respektivelike perifeare apparaten wurde oanmakke yn 'e /simulaasjemap:
- test.bfm - BFM op it heechste nivo file dat wurdt earst útfierd tidens elke simulaasje dy't de SmartFusion2 MSS Cortex-M3-prosessor oefenet. It útfiert peripheral_init.bfm en user.bfm, yn dy folchoarder.
- MDDR_init.bfm - As jo ûntwerp de MDDR brûkt, genereart Libero dit file; it befettet BFM-skriuwkommando's dy't skriuwwize simulearje fan 'e MSS DDR-konfiguraasjeregistergegevens dy't jo ynfierd hawwe (mei it dialoochfinster bewurkje registers of yn' e MSS_MDDR GUI) yn 'e MSS DDR Controller-registers.
- FDDR_init.bfm - As jo ûntwerp de FDDR brûkt, genereart Libero dit file; it befettet BFM-skriuwkommando's dy't skriuwingen simulearje fan 'e Fabric DDR-konfiguraasjeregistergegevens dy't jo ynfierd hawwe (mei it dialoochfinster bewurkje Registers of yn' e FDDR GUI) yn 'e Fabric DDR Controller-registers.
- SERDESIF_ _init.bfm - As jo ûntwerp ien of mear SERDESIF-blokken brûkt, genereart Libero dit file foar elk fan 'e SERDESIF_ blokken brûkt; it befettet BFM-skriuwkommando's dy't it skriuwen simulearje fan 'e SERDESIF-konfiguraasjeregistergegevens dy't jo ynfierd hawwe (mei it dialoochfinster Registers bewurkje of yn' e SERDESIF_ GUI) yn de SERDESIF_ registers. As it SERDESIF-blok is konfigureare as PCIe, dit file hat ek wat #define-útspraken dy't de útfiering fan 'e 2 registerkonfiguraasjefazen yn perfekte folchoarder kontrolearje.
- brûker.bfm - Befettet de brûkersopdrachten. Dizze kommando's wurde útfierd neidat peripheral_init.bfm foltôge is. Bewurkje dit file om jo BFM-kommando's yn te fieren.
- SERDESIF_ _brûker.bfm - Befettet de brûkersopdrachten. Bewurkje dit file om jo BFM-kommando's yn te fieren. Brûk dit as jo SERDESIF_ ynsteld hawwe blok yn BFM PCIe simulaasje modus en as in AXI / AHBLite master. As jo SERDESIF_ ynsteld hawwe blokje yn RTL simulaasje modus, do silst net nedich dit file.
As jo elke kear simulaasje oproppe, de folgjende twa simulaasje files wurde opnij oanmakke oan de /simulaasjemap mei bywurke ynhâld:
- subsystem.bfm - Befettet de #define-útspraken foar elke perifeare apparaat brûkt yn jo ûntwerp, dy't de bepaalde seksje fan 'e peripheral_init.bfm spesifisearje dy't moat wurde útfierd oerienkommende mei elke perifeare apparaat.
- operipheral_init.bfm - Befettet de BFM-proseduere dy't de CMSIS:: SystemInit () funksje emulearret op 'e Cortex-M3 foardat jo de haad () proseduere ynfiere. It kopiearret de konfiguraasjegegevens foar alle perifeare apparaten dy't brûkt wurde yn it ûntwerp nei de juste perifeare konfiguraasjeregisters en wachtet dan op alle perifeare apparaten klear foardat jo beweare dat jo dizze perifeare apparaten brûke kinne. It útfiert MDDR_init.bfm en FDDR_init.bfm.
Mei help fan dizze generearre files, de DDR-controllers yn jo ûntwerp wurde automatysk konfigureare, simulearje wat der barre soe op in SmartFusion2-apparaat. Jo kinne de user.bfm bewurkje file om alle kommando's ta te foegjen dy't nedich binne om jo ûntwerp te simulearjen (Cortex-M3 is de master). Dizze kommando's wurde útfierd neidat de perifeare apparaten binne inisjalisearre. Net bewurkje de test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files en de SERDESIF_ _init.bfm files.
Produkt Support
Microsemi SoC Products Group stipet har produkten mei ferskate stipe tsjinsten, ynklusyf Customer Service, Customer Technical Support Center, in webside, elektroanyske post, en wrâldwide ferkeapkantoaren.
Dizze taheaksel befettet ynformaasje oer kontakt opnimme mei Microsemi SoC Products Group en it brûken fan dizze stipe tsjinsten.
Klant Service
Nim kontakt op mei Customer Service foar net-technyske produktstipe, lykas produktprizen, produktupgrades, update-ynformaasje, bestelstatus en autorisaasje.
Ut Noard-Amearika, skilje 800.262.1060
Fan 'e rest fan' e wrâld, skilje 650.318.4460
Fax, fan oeral yn 'e wrâld, 408.643.6913
Customer Technical Support Center
Microsemi SoC Products Group bemannet har Customer Technical Support Center mei heechoplate yngenieurs dy't kinne helpe beantwurdzjen fan jo fragen oer hardware, software en ûntwerp oer Microsemi SoC Products. It Customer Technical Support Center besteget in protte tiid oan it meitsjen fan applikaasjenotysjes, antwurden op mienskiplike fragen oer ûntwerpsyklus, dokumintaasje fan bekende problemen, en ferskate FAQ's. Dat, foardat jo kontakt mei ús opnimme, besykje asjebleaft ús online boarnen. It is heul wierskynlik dat wy jo fragen al beantwurde hawwe.
Technyske stipe
Besykje de Customer Support webside (www.microsemi.com/soc/support/search/default.aspx) foar mear ynformaasje en stipe. In protte antwurden beskikber op it sykjen web boarne befetsje diagrammen, yllustraasjes en keppelings nei oare boarnen op 'e website.
Website
Jo kinne blêdzje in ferskaat oan technyske en net-technyske ynformaasje op de SoC thússide, at www.microsemi.com/soc.
Kontakt opnimme mei de Customer Technical Support Center
Heech betûfte yngenieurs personiel it Technical Support Center. It Technical Support Center kin kontakt opnommen wurde mei fia e-post of fia de Microsemi SoC Products Group website.
Email
Jo kinne jo technyske fragen oan ús e-mailadres kommunisearje en antwurden werom krije fia e-post, faks of tillefoan. Ek as jo ûntwerpproblemen hawwe, kinne jo jo ûntwerp e-post stjoere files om help te ûntfangen.
Wy kontrolearje it e-postakkount konstant de hiele dei. As jo jo fersyk nei ús ferstjoere, wês dan wis dat jo jo folsleine namme, bedriuwsnamme en jo kontaktynformaasje opnimme foar effisjinte ferwurking fan jo oanfraach.
It e-postadres foar technyske stipe is soc_tech@microsemi.com.
Myn gefallen
Microsemi SoC Products Group-klanten kinne technyske gefallen online yntsjinje en folgje troch te gean nei Myn gefallen.
Bûten de FS
Klanten dy't bystân nedich binne bûten de Amerikaanske tiidsônes kinne kontakt opnimme mei technyske stipe fia e-post (soc_tech@microsemi.com) of nim kontakt op mei in pleatslik ferkeapkantoar. Ferkeap kantoar listings kinne fûn wurde op www.microsemi.com/soc/company/contact/default.aspx.
ITAR Technyske stipe
Foar technyske stipe op RH- en RT FPGA's dy't wurde regele troch International Traffic in Arms Regulations (ITAR), nim dan kontakt mei ús op fia soc_tech_itar@microsemi.com. As alternatyf, yn My Cases, selektearje Ja yn 'e útklaplist ITAR. Foar in folsleine list fan ITAR-regulearre Microsemi FPGA's, besykje de ITAR web side.
Microsemi Corporation (NASDAQ: MSCC) biedt in wiidweidich portfolio fan semiconductor-oplossingen foar: loftfeart, definsje en feiligens; bedriuw en kommunikaasje; en yndustriële en alternative enerzjymerken. Produkten omfetsje hege prestaasjes, hege betrouberens analoge en RF-apparaten, mingde sinjaal- en RF-yntegreare circuits, oanpasbere SoC's, FPGA's, en folsleine subsystemen. Microsemi hat it haadkantoar yn Aliso Viejo, Calif. Mear ynformaasje op www.microsemi.com.
© 2014 Microsemi Corporation. Alle rjochten foarbehâlden. Microsemi en it Microsemi-logo binne hannelsmerken fan Microsemi Corporation. Alle oare hannelsmerken en tsjinstmerken binne it eigendom fan har respektive eigners.
5-02-00384-1/08.14Microsemi Corporate Headquarters
Ien Enterprise, Aliso Viejo CA 92656 Feriene Steaten
Binnen de FS: +1 949-380-6100
Ferkeap: +1 949-380-6136
Fax: +1 949-215-4996
Dokuminten / Resources
![]() |
Microsemi SmartFusion2 DDR Controller en Serial High Speed Controller [pdf] Brûkersgids SmartFusion2 DDR Controller en Serial High Speed Controller, SmartFusion2 DDR, Controller en Serial High Speed Controller, High Speed Controller |