SmartFusion 2
Controller DDR è Controller Serial High Speed
Metodologia di inizializazione
Guida d'usu
Introduzione
Quandu creanu un disignu cù un dispositivu SmartFusion2, se utilizate unu di i dui controller DDR (FDDR o MDDR) o qualsiasi di i blocchi Serial High speed controller (SERDESIF), duvete inizializà i registri di cunfigurazione di questi blocchi in run-time prima. ponu esse usatu. Per esample, per u controller DDR, duvete stabilisce u modu DDR (DDR3 / DDR2 / LPDDR), larghezza PHY, modalità burst è ECC.
In listessu modu, per u bloccu SERDESIF utilizatu cum'è un endpoint PCIe, duvete stabilisce u PCIE BAR à a finestra AXI (o AHB).
Stu documentu descrive i passi necessarii per creà un disignu Libero chì inizializza automaticamente u controller DDR è i blocchi SERDESIF à l'accensione. Descrive ancu cumu generà u codice di firmware da Libero SOC chì hè utilizatu in u flussu di cuncepimentu integratu.
Una descrizzione dettagliata di a teoria di l'operazioni hè furnita prima.
A sezione dopu descrive cumu creà un tali disignu utilizendu u Libero SoC System Builder, un putente strumentu di cuncepimentu chì, trà l'altri funziunalità, crea a suluzione di "inizializazione" per voi sè utilizate blocchi DDR o SERDESIF in u vostru disignu.
A sezione dopu descrive cumu mette una suluzione cumpleta di "inizializazione" senza aduprà u SmartFusion2 System Builder. Questu aiuta à spiegà ciò chì deve esse fattu se ùn vulete micca aduprà u System Builder, è descrive ancu ciò chì l'uttellu System Builder genera veramente per voi. Questa sezione indirizza:
- A creazione di e dati di cunfigurazione per u controller DDR è i registri di cunfigurazione SERDESIF
- A creazione di a logica FPGA necessaria per trasfiriri i dati di cunfigurazione à i diversi registri di cunfigurazione ASIC
Infine descrivimu u generatu files relative à:
- A creazione di suluzione firmware 'inizializazione'.
- A simulazione di u disignu per a suluzione di "inizializazione" DDR.
Per i dettagli nantu à u controller DDR è i registri di cunfigurazione SERDESIF, riferite à u Microsemi SmartFusion2 High Speed Serial and DDR User's Guide.
Teoria di u funziunamentu
A suluzione di inizializazione periferica usa i seguenti cumpunenti principali:
- A funzione CMSIS SystemInit(), chì corre nantu à u Cortex-M3 è orchestra u prucessu di inizializazione.
- U core IP soft CoreConfigP, chì inizializza i registri di cunfigurazione di i periferichi.
- U core IP soft CoreResetP, chì gestisce a sequenza di reset di i MSS, i cuntrolli DDR è i blocchi SERDESIF.
U prucessu di inizializazione perifèrica funziona cum'è seguente:
- À u reset, u Cortex-M3 esegue a funzione CMSIS SystemInit (). Questa funzione hè eseguita automaticamente prima chì a funzione main() di l'applicazione hè eseguita.
U signale di output CoreResetP MSS_HPMS_READY hè affirmatu à l'iniziu di u prucessu di inizializazione, chì indica chì u MSS è tutti i periferichi (eccettu MDDR) sò pronti per a cumunicazione. - A funzione SystemInit() scrive dati di cunfigurazione à i cuntrolli DDR è i registri di cunfigurazione SERDESIF via u bus MSS FIC_2 APB3. Questa interfaccia hè cunnessa à u core CoreConfigP core instanziatu in u tissu FPGA.
- Dopu chì tutti i registri sò cunfigurati, a funzione SystemInit () scrive à i registri di cuntrollu CoreConfigP per indicà a cumpiimentu di a fase di cunfigurazione di u registru; i signali di output CoreConfigP CONFIG1_DONE è CONIG2_DONE sò allora affirmati.
Ci hè duie fasi di cunfigurazione di u registru (CONFIG1 è CONFIG2) secondu i periferici utilizati in u disignu. - Se unu o i dui di MDDR / FDDR sò usati, è nimu di i blocchi SERDESIF sò usati in u disignu, ci hè una sola fase di cunfigurazione di u registru. I dui signali di output CoreConfigP CONFIG1_DONE è CONIG2_DONE sò affirmati l'un dopu l'altru senza alcuna attesa / ritardu.
Se unu o più blocchi SERDESIF in modu non-PCIe sò usati in u disignu, ci hè solu una fase di cunfigurazione di u registru. CONFIG1_DONE è CONIG2_DONE sò affirmati l'un dopu l'altru senza alcuna attesa / ritardu.
Se unu o più blocchi SERDESIF in modu PCIe sò usati in u disignu, ci sò duie fasi di cunfigurazione di u registru. CONFIG1_DONE hè affirmatu dopu chì a prima fase di a cunfigurazione di u registru hè cumpleta. U sistema SERDESIF è i registri di corsia sò cunfigurati in questa fase. Se SERDESIF hè cunfiguratu in un modu non-PCIE, u signale CONFIG2_DONE hè ancu affirmatu immediatamente. - Dopu seguita a seconda fase di cunfigurazione di u registru (se SERDESIF hè cunfiguratu in modu PCIE). I seguenti sò i diversi avvenimenti chì succedenu in a seconda fase:
- CoreResetP annulla i signali PHY_RESET_N è CORE_RESET_N chì currispondenu à ognunu di i blocchi SERDESIF utilizati. Hè ancu affirmate un signalu di output SDIF_RELEASED dopu chì tutti i blocchi SERDESIF sò fora di reset. Stu signalu SDIF_RELEASED hè utilizatu per indicà à u CoreConfigP chì u core SERDESIF hè fora di reset è hè prestu per a seconda fase di cunfigurazione di u registru.
- Una volta chì u signalu SDIF_RELEASED hè affirmatu, a funzione SystemInit () cumencia à polling per l'affirmazione di PMA_READY nantu à a corsia SERDESIF adatta. Una volta chì u PMA_READY hè affirmatu, u sicondu settore di registri SERDESIF (registri PCIE) sò cunfigurati / scritti da a funzione SystemInit (). - Dopu chì tutti i registri PCIE sò cunfigurati, a funzione SystemInit () scrive à i registri di cuntrollu CoreConfigP per indicà a cumpiimentu di a seconda fase di cunfigurazione di u registru; u signale di output CoreConfigP CONIG2_DONE hè allora affirmatu.
- In più di l'asserzioni / de-asserzioni di signali sopra, CoreResetP gestisce ancu l'inizializazione di i diversi blocchi eseguendu e seguenti funzioni:
- Annullamentu di u reset di u core FDDR
- Disattivazione di i blocchi SERDESIF PHY è CORE reset
– Surveillance du signal de verrouillage FDDR PLL (FPLL). U FPLL deve esse chjusu per assicurà chì l'interfaccia di dati FDDR AXI/AHBLite è u tissu FPGA ponu cumunicà currettamente.
- Monitoraghju di i segnali di serratura di bloccu SERDESIF PLL (SPLL). U SPLL deve esse chjusu per guarantisce chì l'interfaccia AXI / AHBLite di i blocchi SERDESIF (modu PCIe) o l'interfaccia XAUI pò cumunicà bè cù u tissu FPGA.
- Aspittendu chì i ricordi DDR esterni si stallanu è esse pronti per esse accessu da i cuntrolli DDR. - Quandu tutti i periferichi anu cumpletu a so inizializazione, CoreResetP affirmeghja u signalu INIT_DONE; u registru internu CoreConfigP INIT_DONE hè allora affirmatu.
Se unu o i dui di MDDR / FDDR sò usati, è u tempu d'inizializazione DDR hè righjuntu, u signale di output CoreResetP DDR_READY hè assicuratu. L'affirmazione di stu signalu DDR_READY pò esse monitoratu cum'è un indicazione chì u DDR (MDDR / FDDR) hè prontu per a cumunicazione.
Se unu o più blocchi SERDESIF sò usati, è a seconda fase di a cunfigurazione di u registru hè cumpletata cù successu, u signale di output di CoreResetP SDIF_READY hè assicuratu. L'affirmazione di stu signalu SDIF_READY pò esse monitoratu cum'è indicazione chì tutti i blocchi SERDESIF sò pronti per a cumunicazione. - A funzione SystemInit (), chì hè stata aspittendu chì INIT_DONE sia affirmatu, cumpleta, è a funzione principale () di l'applicazione hè eseguita. À quellu tempu, tutti i cuntrolli DDR utilizati è i blocchi SERDESIF sò stati inizializzati, è l'applicazione di firmware è a logica di tela FPGA ponu cumunicà in modu affidabile cun elli.
A metodulugia descritta in stu documentu si basa in u Cortex-M3 chì esegue u prucessu di inizializazione cum'è parte di u codice di inizializazione di u sistema eseguitu prima di a funzione principale () di l'applicazione.
Vede i Diagrammi di flussu in Figura 1-1, Figura 1-2 è Figura 1-3 per i passi di Inizializazione di FDDR/MDDR, SEREDES (modu non-PCIe) è SERDES (modu PCIe).
A Figura 1-4 mostra un diagramma di timing di Inizializazione Perifèrica.
![]() |
![]() |
Figura 1-3 • SERDESIF (PCIe) Initialization Flow Chart
A prucedura d'inizializazione descritta in stu documentu richiede di eseguisce Cortex-M3 durante u prucessu d'inizializazione, ancu s'è ùn avete micca pensatu à eseguisce alcun codice nantu à u Cortex-M3. Duvete creà una applicazione firmware basica chì ùn faci nunda (un ciclu simplice, per esempiuample) è carica quellu eseguibile in a Memoria Non Volatile incrustata (eNVM) perchè i cuntrolli DDR è i blocchi SERDESIF sò inizializzati quandu u Cortex-M3 boots.
Utilizendu System Builder per creà un Design Utilizendu blocchi DDR è SERDESIF
U SmartFusion2 System Builder hè un putente strumentu di cuncepimentu chì vi aiuta à catturà i vostri bisogni à u livellu di u sistema è pruduce un disignu chì implementa questi requisiti. Una funzione assai impurtante di u System Builder hè a creazione automatica di u sottu-sistema di Inizializazione Perifèrica. "Usà SmartDesign per creà un Disegnu Utilizendu i Blocchi DDR è SERDESIF" in a pagina 17 descrive in dettagliu cumu creà una tale soluzione senza System Builder.
Sè aduprate System Builder, duvete eseguisce e seguenti attività per creà un disignu chì inizializza i vostri cuntrolli DDR è i blocchi SERDESIF à l'accensione:
- In a pagina di Funzioni di u Dispositivu (Figura 2-1), specificate quale controller DDR sò usati è quanti blocchi SERDESIF sò usati in u vostru disignu.
- In a pagina di Memoria, specificate u tipu di DDR (DDR2/DDR3/LPDDR) è i dati di cunfigurazione per i vostri ricordi DDR esterni. Vede a sezione Pagina di Memoria per i dettagli.
- In a pagina di Periferichi, aghjunghje i maestri di tela cunfigurati cum'è AHBLite/AXI à u Subsistema DDR Fabric è / o Sottosistema MSS DDR FIC (opcional).
- In a pagina Clock Settings, specificate e frequenze di clock per i sottosistemi DDR.
- Cumplete a vostra specificazione di disignu è cliccate Finish. Questu genera u disignu di System Builder creatu, cumprese a logica necessaria per a suluzione "inizializazione".
- Sè vo aduprate i blocchi SERDESIF, duvete istanzià i blocchi SERDESIF in u vostru disignu è cunnette i so porti d'inizializazione à quelli di u core generatu di System Builder.
Pagina di Funzioni di Dispositivi di System Builder
In a pagina di Funzioni di u Dispositivu, specificate quale controller DDR (MDDR è / o FDDR) sò usati è quanti blocchi SERDESIF sò usati in u vostru disignu (Figura 2-1).
Figura 2-1 • System Builder Device Features Pagina
Pagina di memoria di System Builder
Per utilizà u MSS DDR (MDDR) o Fabric DDR (FDDR), selezziunate u Tipu di Memoria da a lista drop-down (Figura 2-2).
Figura 2-2 • MSS Memoria Esterna
Duvete:
- Sceglite u tipu DDR (DDR2, DDR3 o LPDDR).
- Definisce u tempu di stabilimentu di a memoria DDR. Cunsultate e vostre Specifiche di Memoria DDR esterna per stabilisce u tempu di cunfigurazione di memoria curretta. A memoria DDR ùn pò micca inizializà currettamente se u tempu di stabilimentu di memoria ùn hè micca stabilitu bè.
- O importa i dati di cunfigurazione di u registru DDR o stabilisce i vostri parametri di memoria DDR. Per i dettagli, riferite à u Microsemi SmartFusion2 High Speed Serial and DDR User's Guide.
Queste dati sò usati per generà u registru DDR BFM è a cunfigurazione di firmware files cum'è descritta in "Creazione è compilazione di l'applicazione di firmware" à a pagina 26 è "BFM Files Adupratu per a simulazione di u disignu" à a pagina 27. Per i dettagli nantu à i registri di cunfigurazione di u controller DDR, fate Microsemi SmartFusion2 High Speed Serial and DDR User's Guide.
Un esample di a cunfigurazione file sintassi hè mostrata in Figura 2-3. I nomi di registru utilizati in questu file sò listessi di quelli descritti in u Microsemi SmartFusion2 High Speed Serial and DDR User's Guide
Figura 2-3 • Configurazione File Sintassi Example
Pagina di periferiche di System Builder
In a pagina Peripherals, per ogni controller DDR hè creatu un sottosistema separatu (Fabric DDR Subsystem per FDDR è MSS DDR FIC Subsystem per MDDR). Pudete aghjunghje un core Fabric AMBA Master (configuratu cum'è AXI / AHBLite) à ognunu di sti sottosistemi per attivà l'accessu maestru di tissu à i controller DDR. Dopu a generazione, System Builder instantiate automaticamente i nuclei di bus (secondu u tipu di AMBA Master aghjuntu) è espone u BIF maestru di u core di l'autobus è l'orologio è resettate i pin di i sottosistemi currispondenti (FDDR/MDDR) in i gruppi di pin adatti, à u cima. Tuttu ciò chì duvete fà hè di cunnette i BIF à i nuclei Fabric Master appropritati chì avete da esse instantiate in u disignu. In u casu di MDDR, hè facultativu per aghjunghje un core Fabric AMBA Master à u MSS DDR FIC Subsystem; Cortex-M3 hè un maestru predeterminatu nantu à stu subsistema. A Figura 2-4 mostra a Pagina di Periferiche di System Builder.
Figura 2-4 • Pagina di System Builder Peripherals
Pagina di paràmetri di l'orologio di System Builder
In a pagina Clock Settings, per ogni controller DDR, deve specificà e frequenze di clock relative à ogni subsistema DDR (MDDR è / o FDDR).
Per MDDR, deve specificà:
- MDDR_CLK - Questu clock determina a frequenza operativa di u DDR Controller è deve currisponde à a frequenza di clock chì vulete chì a vostra memoria DDR esterna corre. Stu clock hè definitu cum'è un multiplu di u M3_CLK (Cortex-M3 è MSS Main Clock, Figura 2-5). U MDDR_CLK deve esse menu di 333 MHz.
- DDR_FIC_CLK - Se avete sceltu ancu accede à u MDDR da u tissu FPGA, avete bisognu di specificà u DDR_FIC_CLK. Questa frequenza di clock hè definita cum'è ratio di MDDR_CLK è deve currisponde à a frequenza à a quale u sottu-sistema di tela FPGA chì accede à u MDDR hè in esecuzione.
Figura 2-5 • Cortex-M3 è MSS Main Clock; Orologi MDDR
Per FDDR, deve specificà:
- FDDR_CLK - Determina a frequenza operativa di u Controller DDR è deve currisponde à a freccia di u clock à quale vulete chì a vostra memoria DDR esterna per corre. Nota chì stu clock hè definitu cum'è un multiplu di u M3_CLK (MSS è Cortex-M3 clock, Figura 2-5). U FDDR_CLK deve esse in 20 MHz è 333 MHz.
- FDDR_SUBSYSTEM_CLK - Questa freccia di u clock hè definitu cum'è un rapportu di u FDDR_CLK è deve currisponde à a frequenza à a quale u subsistema di tela FPGA chì accede à u FDDR hè in esecuzione.
Figura 2-6 • Fabric DDR Clocks
Cunfigurazione SERDESIF
I blocchi SERDESIF ùn sò micca instanziati in u disignu generatu di System Builder. Tuttavia, per tutti i blocchi SERDESIF, i signali di inizializazione sò dispunibuli à l'interfaccia di u core System Builder è ponu esse cunnessi à i nuclei SERDESIF à u prossimu livellu di ierarchia, cum'è mostra in Figura 2-7.Figura 2-7 • SERDESIF Peripheral Initialization Connectivity
Simile à i registri di cunfigurazione DDR, ogni bloccu SERDES hà ancu registri di cunfigurazione chì deve esse caricatu in runtime. Pudete impurtà questi valori di registru o utilizate u Configuratore di l'Interfaccia Seriale d'Alta Velocità (Figura 2-8) per inserisce i vostri paràmetri PCIe o EPCS è i valori di registru sò automaticamente calculati per voi. Per i dettagli, riferite à u SERDES Configurator User's Guide.Figura 2-8 • Configuratore di l'interfaccia seriale à alta velocità
Dopu avè integratu a vostra logica d'utilizatore cù u bloccu System Builder è u bloccu SERDES, pudete generà u vostru SmartDesign di livellu superiore. Questu genera tutti HDL è BFM files chì sò necessarii per implementà è simulà u vostru disignu. Pudete tandu prucede cù u restu di u Flussu di Design.
Utilizà SmartDesign per creà un disignu Utilizendu blocchi DDR è SERDESIF
Questa sezione descrive cumu mette una suluzione cumpleta di "inizializazione" senza aduprà u SmartFusion2 System Builder. U scopu hè di aiutà vi capisce ciò chì duvete fà sè ùn vulete micca aduprà u System Builder. Questa sezione descrive ancu ciò chì l'uttellu System Builder genera veramente per voi. Questa sezione descrive cumu:
- Inserite i dati di cunfigurazione per u controller DDR è i registri di cunfigurazione SERDESIF.
- Instanziate è cunnette i Fabric Cores necessarii per trasfiriri i dati di cunfigurazione à i cuntrolli DDR è i registri di cunfigurazione SERDESIF.
Cunfigurazione di u Controller DDR
I controller MSS DDR (MDDR) è Fabric DDR (FDDR) devenu esse cunfigurati dinamicamente (in runtime) per currisponde à i requisiti di cunfigurazione di memoria DDR esterna (modu DDR, larghezza PHY, modalità burst, ECC, etc.). I dati inseriti in u configuratore MDDR / FDDR sò scritti in i registri di cunfigurazione di u controller DDR da a funzione CMSIS SystemInit(). U Configuratore hà trè schede diverse per inserisce diversi tipi di dati di cunfigurazione:
- Dati generali (modu DDR, Larghezza di dati, Frequenza di l'orologio, ECC, Interfaccia di Fabric, Forza di Drive)
- Dati di Inizializazione di Memoria (Lunghezza di Burst, Ordine di Burst, Modu Timing, Latenza, etc.)
- Dati di timing di memoria
Riferite à e specificazioni di a vostra memoria DDR esterna è cunfigurà u Controller DDR per currisponde à i requisiti di a vostra memoria DDR esterna.
Per i dettagli nantu à a cunfigurazione DDR, riferite à u SmartFusion2 MSS DDR Configuration User Guide.
Cunfigurazione SERDESIF
Doppiu cliccà u bloccu SERDES in u canvas SmartDesign per apre u Configuratore per cunfigurà u SERDES (Figura 3-1). Pudete impurtà questi valori di registru o utilizate u configuratore SERDES per inserisce i vostri paràmetri PCIe o EPCS è i valori di registru sò automaticamente calculati per voi. Per i dettagli, riferite à u SERDES Configurator User's Guide.Figura 3-1 • Configuratore di l'interfaccia seriale à alta velocità
Creazione di u Sub-Sistema di Inizializazione di Design FPGA
Per inizializà i blocchi DDR è SERDESIF, deve creà u subsistema di inizializazione in u tissu FPGA. U subsistema di inizializazione di u tessulu FPGA traslada dati da u Cortex-M3 à i registri di cunfigurazione DDR è SERDESIF, gestisce e sequenze di reset necessariu per questi blocchi per esse operativi è signalà quandu questi blocchi sò pronti per cumunicà cù u restu di u vostru disignu. Per creà u sottosistema di inizializazione, duvete:
- Configure FIC_2 in u MSS
- Instanziate è cunfigurà i core CoreConfigP è CoreResetP
- Instanziate l'oscillatore RC 25/50MHz in chip
- Instanziate a macro Reset di Sistema (SYSRESET).
- Cunnette sti cumpunenti à l'interfacce di cunfigurazione di ogni periferica, clocks, resets è porti di serratura PLL
MSS FIC_2 Configurazione APB
Per cunfigurà u MSS FIC_2:
- Aprite a finestra di dialogu di u configuratore FIC_2 da u configuratore MSS (Figura 3-2).
- Selezziunà Initialize peripherals usendu Cortex-M3.
- Sicondu u vostru sistema, verificate una o duie di e seguenti caselle di spunta:
- MSS DDR
– Fabric DDR è/o SERDES Blocks - Cliccate OK è procede per generà u MSS (pudete rinvià sta azione finu à avè cunfiguratu cumplettamente u MSS à i vostri bisogni di cuncepimentu). I porti FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK è FIC_2_APB_M_RESET_N) sò avà esposti à l'interfaccia MSS è ponu esse cunnessi à i core CoreConfigP è CoreResetP.
Figura 3-2 • Configuratore MSS FIC_2
CoreConfigP
Per cunfigurà CoreConfigP:
- Instanziate CoreConfigP in u vostru SmartDesign (tipicamenti quellu induve u MSS hè instanziatu).
Stu core pò esse truvatu in u Catalogu Libero (sottu Peripherals). - Cliccate doppiu u core per apre u configuratore.
- Configurate u core per specificà quale periferica deve esse inizializzata (Figura 3-3)
Figura 3-3 • CoreConfigP Dialog Box
CoreResetP
Per cunfigurà CoreResetP:
- Instanziate CoreResetP in u vostru SmartDesign (tipicamenti quellu induve u MSS hè instanziatu).
Stu core pò esse truvatu in u Catalogu Libero, sottu Peripherals. - Cliccate doppiu u core in u SmartDesign Canvas per apre u Configuratore (Figura 3-4).
- Configurate u core per:
- Specificate u cumpurtamentu di reset esternu (EXT_RESET_OUT affirmatu). Sceglite una di quattru opzioni:
o EXT_RESET_OUT ùn hè mai affirmatu
o EXT_RESET_OUT hè assicuratu se u reset di l'alimentazione (POWER_ON_RESET_N) hè assicuratu
o EXT_RESET_OUT hè affirmatu se FAB_RESET_N hè affirmatu
o EXT_RESET_OUT hè assicuratu se u reset di l'alimentazione (POWER_ON_RESET_N) o FAB_RESET_N hè assicuratu
- Specificate u Dispositivu Voltage. U valore sceltu deve currisponde à u voltage avete sceltu in a finestra di dialogu di l'Configurazione di u Prughjettu Libero.
- Verificate e caselle di spunta adatte per indicà quali periferiche aduprate in u vostru disignu.
- Specificate u tempu di cunfigurazione di memoria DDR esterna. Questu hè u valore massimu per tutti i ricordi DDR utilizati in a vostra applicazione (MDDR è FDDR). Consultate a scheda di dati di u venditore di memoria DDR esterna per cunfigurà stu paràmetru. 200us hè un bonu valore predeterminatu per i ricordi DDR2 è DDR3 chì funzionanu à 200MHz. Questu hè un paràmetru assai impurtante per guarantisce una simulazione di travagliu è un sistema di travagliu nantu à u siliciu. Un valore incorrectu per u tempu di stabilimentu pò esse risultatu in errori di simulazione. Riferite à a datasheet di u venditore di memoria DDR per cunfigurà stu paràmetru.
- Per ogni bloccu SERDES in u vostru disignu, verificate e caselle adatte per indicà se:
o PCIe hè utilizatu
o U supportu per PCIe Hot Reset hè necessariu
o U supportu per PCIe L2/P2 hè necessariu
Nota: Sè aduprate u 090 die (M2S090) è u vostru disignu usa SERDESIF, ùn avete micca da verificà alcuna di e seguenti caselle di verificazione: "Usatu per PCIe", "Include u supportu PCIe HotReset" è "Include u supportu PCIe L2/P2". Sè vo aduprate qualsiasi dispositivu non-090 è aduprendu unu o più blocchi SERDESIF, avete da verificà tutte e quattru caselle sottu a sezione SERDESIF adatta.
Nota: Per i dettagli nantu à l'opzioni dispunibuli per voi in stu configuratore, riferite à u Manuale di CoreResetP.
Figura 3-4 • CoreResetPConfigurator
25/50MHz Oscillator Instantiation
CoreConfigP è CoreResetP sò clocked da l'oscillatore RC 25 / 50MHz in chip. Duvete instantà un Oscillator 25/50MHz è cunnette à questi core.
- Instanziate u core di Chip Oscillators in u vostru SmartDesign (tipicamente quellu induve l'MSS hè instanziatu). Stu core pò esse truvatu in u Catalogu Libero sottu Clock & Management.
- Configurez ce noyau de manière à ce que l'oscillateur RC pilote le tissu FPGA, comme illustré dans la Figure 3-5.
Figura 3-5 • Chip Oscillators Configurator
Reset di u Sistema (SYSRESET) Istanziazioni
A macro SYSRESET furnisce a funziunalità di reset di u nivellu di u dispositivu à u vostru disignu. U signale di output POWER_ON_RESET_N hè affirmatu / annullatu ogni volta chì u chip hè alimentatu o u pin esternu DEVRST_N hè affirmatu / de-asserted (Figura 3-6).
Instanziate a macro SYSRESET in u vostru SmartDesign (tipicamente quellu induve l'MSS hè instanziatu). Questa macro pò esse truvata in u Catalogu Libero sottu Macro Library. Nisuna cunfigurazione di sta macro hè necessaria.
Figura 3-6 • SYSRESET Macro
Connettività generale
Dopu avè instanziatu è cunfiguratu i nuclei MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP è CoreResetP in u vostru disignu, avete bisognu di cunnetta per furmà u sottosistema di Inizializazione Perifèrica. Per simplificà a descrizzione di a cunnessione in stu documentu, hè spartutu in a cunnessione di a via di dati di cunfigurazione cumpleta APB3 assuciata cù u CoreConfigP è e cunnessione CoreResetP.
Connettività di a strada di dati di cunfigurazione
A Figura 3-7 mostra cumu cunnette u CoreConfigP à i signali MSS FIC_2 è l'interfaccia di cunfigurazione APB3 di i periferiche.
Tabella 3-1 • Cunfigurazione Dati Path Port / Cunnessioni BIF
DA Interfaccia Portu / Bus (BIF)/ Composante |
À Port/Bus Interface (BIF)/Composante |
||
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 |
Figura 3-7 • FIC_2 APB3 Sub-System Connectivity
Orologi è resetta a cunnessione
A Figura 3-8 mostra cumu cunnette u CoreResetP à e fonti di reset esterne è i signali di reset di core di i periferichi. Mostra ancu cumu cunnette u CoreResetP à i signali di u statu di sincronizazione di l'orologio di i periferici (signali di bloccu PLL). Inoltre, mostra cumu u CoreConfigP è CoreResetP sò cunnessi.
Figura 3-8 • Core SF2Reset Sub-System Connectivity
Creazione è Cumpilazione di l'Applicazione Firmware
Quandu esportate u firmware da LiberoSoC (Finestra di flussu di design> Export Firmware> Export Firmware), Libero genera i seguenti files in u /firmware/drivers_config/ sys_config cartulare:
- sys_config.c - Contene e strutture di dati chì cuntenenu i valori per i registri periferichi.
- sys_config.h - Contene e dichjarazioni #define chì specificanu quali periferiche sò aduprate in u disignu è devenu esse inizializzate.
- sys_config_mddr_define.h - Contene i dati di cunfigurazione di u controller MDDR inseriti in a finestra di dialogu di Configurazione di i Registri.
- sys_config_fddr_define.h - Contene i dati di cunfigurazione di u controller FDDR inseriti in a finestra di dialogu di Configurazione di i Registri.
- sys_config_mss_clocks.h – Questu file cuntene e frequenze di clock MSS definite in u configuratore MSS CCC. Queste frequenze sò aduprate da u codice CMSIS per furnisce l'infurmazioni currette di u clock à parechji di i cunduttori MSS chì devenu avè accessu à a so freccia di u Peripheral Clock (PCLK) (per esempiu, i divisori di baud rate MSS UART sò una funzione di u baud rate è a frequenza PCLK). ).
- sys_config_SERDESIF_ .c - Contene u SERDESIF_ registrà i dati di cunfigurazione furniti durante u SERDESIF_ cunfigurazione di bloccu in a creazione di disignu.
- sys_config_SERDESIF_ .h - Contene e dichjarazioni #define chì specificanu u numeru di coppie di cunfigurazione di registru è u numeru di corsia chì deve esse interrogatu per PMA_READY (solu in modu PCIe).
Quessi files sò richiesti per u codice CMSIS per cumpilà bè è cuntene infurmazioni riguardanti u vostru disignu attuale, cumprese dati di cunfigurazione periferica è informazioni di cunfigurazione di u clock per u MSS.
Ùn edità micca questi files manualmente; sò creati à i repertorii di cumpunenti / periferiche currispundenti ogni volta chì i cumpunenti SmartDesign chì cuntenenu i periferici rispettivi sò generati. Se alcuni cambiamenti sò fatti à i dati di cunfigurazione di qualcunu di i periferichi, avete bisognu di re-esportà i prughjetti di firmware per chì u firmware aghjurnatu. files (vede a lista sopra) sò esportati à u / firmware/drivers_config/sys_config cartulare.
Quandu esportate u firmware, Libero SoC crea i prughjetti di firmware: una biblioteca induve a vostra cunfigurazione di cuncepimentu files è i driver sò compilati.
Sè vo cuntrolla u prughjettu Crea checkbox quandu esportate u firmware, un prughjettu di software SoftConsole / IAR / Keil hè creatu per mantene u prughjettu di l'applicazione induve pudete edità u main.c è l'utilizatore C / H files. Apertura u prughjettu SoftConSole/IAR/Keil per cumpilà u codice CMSIS currettamente è avè a vostra applicazione di firmware cunfigurata currettamente per currisponde à u vostru disignu di hardware.
BFM Files Adupratu per a simulazione di u disignu
Quandu generate i cumpunenti SmartDesign chì cuntenenu i periferichi assuciati cù u vostru disignu, a simulazione files currispundenti à i rispettivi periferiche sò generati in u /annuariu di simulazione:
- prova.bfm - BFM di primu livellu file chì hè prima eseguitu durante ogni simulazione chì esercita u processore SmartFusion2 MSS Cortex-M3. Esegue peripheral_init.bfm è user.bfm, in questu ordine.
- MDDR_init.bfm - Se u vostru disignu usa u MDDR, Libero genera questu file; cuntene cumandamenti di scrittura BFM chì simulanu scritti di i dati di u registru di cunfigurazione MSS DDR chì avete inseritu (usendu a finestra di dialogu Edit Registers o in a GUI MSS_MDDR) in i registri di u MSS DDR Controller.
- FDDR_init.bfm - Se u vostru disignu usa u FDDR, Libero genera questu file; cuntene cumandamenti di scrittura BFM chì simulanu scritti di i dati di u registru di cunfigurazione di Fabric DDR chì avete inseritu (usendu a finestra di dialogu Edit Registers o in a GUI FDDR) in i registri di Fabric DDR Controller.
- SERDESIF_ _init.bfm - Se u vostru disignu usa unu o più blocchi SERDESIF, Libero genera questu file per ognunu di i SERDESIF_ blocchi usati; cuntene cumandamenti di scrittura BFM chì simulanu scrittura di i dati di u registru di cunfigurazione SERDESIF chì avete inseritu (usendu a finestra di dialogu Edit Registers o in u SERDESIF_ GUI) in SERDESIF_ registri. Se u bloccu SERDESIF hè cunfiguratu cum'è PCIe, questu file hà ancu alcune dichjarazioni #define chì cuntrollanu l'esekzione di e fasi di cunfigurazione di u registru 2 in ordine perfettu.
- user.bfm - Contene i cumandamenti di l'utilizatori. Questi cumandamenti sò eseguiti dopu chì peripheral_init.bfm hè cumpletu. Edite questu file per entre in i vostri cumandamenti BFM.
- SERDESIF_ _user.bfm - Contene i cumandamenti di l'utilizatori. Edite questu file per entre in i vostri cumandamenti BFM. Aduprate questu se avete cunfiguratu SERDESIF_ bloccu in modu di simulazione BFM PCIe è cum'è un maestru AXI/AHBLite. Sè avete cunfiguratu SERDESIF_ bluccatu in modu di simulazione RTL, ùn avete micca bisognu di questu file.
Quandu si invoca a simulazione ogni volta, i seguenti dui simulazioni files sò ricreati à u / annuariu di simulazione cù cuntenutu aghjurnatu:
- sottosistema.bfm - Contene e dichjarazioni #define per ogni perifericu utilizatu in u vostru disignu, chì specificanu a sezione particulare di u peripheral_init.bfm per esse eseguitu currispondente à ogni periferica.
- operipheral_init.bfm - Contene a prucedura BFM chì emula a funzione CMSIS:: SystemInit() eseguita nantu à u Cortex-M3 prima di entre in a prucedura main (). Copià i dati di cunfigurazione per qualsiasi periferica utilizata in u disignu à i registri di cunfigurazione periferica curretta è poi aspetta chì tutti i periferichi sò pronti prima di affirmà chì pudete aduprà sti periferichi. Esegue MDDR_init.bfm è FDDR_init.bfm.
Utilizendu questi generati files, i cuntrolli DDR in u vostru disignu sò cunfigurati automaticamente, simulendu ciò chì succede in un dispositivu SmartFusion2. Pudete edità u user.bfm file per aghjunghje qualsiasi cumandamenti necessarii per simulà u vostru disignu (Cortex-M3 hè u maestru). Questi cumandamenti sò eseguiti dopu chì i periferichi sò stati inizializzati. Ùn editate micca test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files è u SERDESIF_ _init.bfm files.
Supportu di u produttu
Microsemi SoC Products Group sustene i so prudutti cù diversi servizii di supportu, cumpresu u Serviziu Clienti, u Centru di Supportu Tecnicu di Clienti, un websitu, posta elettronica, è uffizii di vendita in u mondu.
Questu appendice cuntene infurmazioni nantu à cuntattà u Gruppu di Prodotti Microsemi SoC è l'usu di sti servizii di supportu.
Serviziu à i clienti
Cuntattate u Serviziu Clienti per un supportu di produttu micca tecnicu, cum'è u prezzu di u produttu, l'aghjurnamenti di u produttu, l'infurmazioni di l'aghjurnamentu, u statu di l'ordine è l'autorizazione.
Da l'America di u Nordu, chjamate 800.262.1060
Da u restu di u mondu, chjamate 650.318.4460
Fax, da ogni locu in u mondu, 408.643.6913
Centru di Assistenza Tecnica di Clienti
Microsemi SoC Products Group furnisce u so Centru di Supportu Tecnicu à i Clienti cù ingegneri altamente qualificati chì ponu aiutà à risponde à e vostre dumande di hardware, software è cuncepimentu nantu à i Prodotti Microsemi SoC. U Centru di Assistenza Tecnica di u Cliente passa assai tempu per creà note d'applicazione, risposte à e dumande cumuni di u ciclu di cuncepimentu, documentazione di prublemi cunnisciuti è diverse FAQ. Allora, prima di cuntattateci, visitate e nostre risorse in linea. Hè assai prubabile chì avemu digià rispostu à e vostre dumande.
Assistenza tecnica
Visita l'Assistenza Clienti websitu (www.microsemi.com/soc/support/search/default.aspx) per più infurmazione è supportu. Parechje risposte dispunibili nantu à u searchable web risorsa include diagrammi, illustrazioni, è ligami à altre risorse nantu à u websitu.
Websitu
Pudete cercà una varietà di infurmazioni tecniche è micca tecniche nantu à a pagina principale di SoC, à www.microsemi.com/soc.
Cuntattate u Centru di Assistenza Tecnica di Clienti
Ingegneri altamente qualificati stanu u Centru di Supportu Tecnicu. U Centru di Supportu Tecnicu pò esse cuntattatu per email o attraversu u Gruppu di Prodotti Microsemi SoC websitu.
E-mail
Pudete cumunicà e vostre dumande tecniche à u nostru indirizzu email è riceve risposte per email, fax, o telefunu. Inoltre, se avete prublemi di disignu, pudete email u vostru disignu files per riceve assistenza.
Monitoremu constantemente u contu di email in tuttu u ghjornu. Quandu ci mandendu a vostra dumanda, assicuratevi di includere u vostru nome cumpletu, u nome di a cumpagnia, è a vostra infurmazione di cuntattu per un trattamentu efficace di a vostra dumanda.
L'indirizzu email di supportu tecnicu hè soc_tech@microsemi.com.
I mo casi
I clienti di Microsemi SoC Products Group ponu presentà è seguità casi tecnichi in linea andendu à I mo casi.
Fora di i Stati Uniti
I clienti chì necessitanu assistenza fora di i fusi orari di i Stati Uniti ponu cuntattà l'assistenza tecnica per email (soc_tech@microsemi.com) o cuntattate un uffiziu di vendita lucale. L'elenco di l'uffizii di vendita ponu esse truvati à www.microsemi.com/soc/company/contact/default.aspx.
Assistenza tecnica ITAR
Per supportu tecnicu nantu à i FPGA RH è RT chì sò regulati da u Regolamentu Internaziunale di Traffic in Arms (ITAR), cuntattateci via soc_tech_itar@microsemi.com. In alternativa, in I miei casi, selezziunate Sì in a lista a tendina ITAR. Per una lista completa di Microsemi FPGA regulati da ITAR, visitate l'ITAR web pagina.
Microsemi Corporation (NASDAQ: MSCC) offre un portafoglio completo di soluzioni semiconduttori per: aerospaziale, difesa è sicurità; impresa è cumunicazioni; è i mercati di l'energia industriale è alternativa. I prudutti includenu apparecchi analogici è RF d'alta affidabilità, signali misti è circuiti integrati RF, SoC persunalizabili, FPGA è sottosistemi cumpleti. Microsemi hà a sede in Aliso Viejo, California. Sapete più à www.microsemi.com.
© 2014 Microsemi Corporation. Tutti i diritti riservati. Microsemi è u logo Microsemi sò marchi di Microsemi Corporation. Tutti l'altri marchi è marchi di serviziu sò a pruprietà di i so rispettivi pruprietarii.
5-02-00384-1/08.14Sede centrale di Microsemi
One Enterprise, Aliso Viejo CA 92656 USA
In i Stati Uniti: +1 949-380-6100
Vendite: +1 949-380-6136
Fax: +1 949-215-4996
Documenti / Risorse
![]() |
Microsemi SmartFusion2 DDR Controller è Serial High Speed Controller [pdfGuida di l'utente SmartFusion2 DDR Controller è Serial High Speed Controller, SmartFusion2 DDR, Controller è Serial High Speed Controller, Controller High Speed |