SmartFusion2
Krmilnik DDR in serijski krmilnik visoke hitrosti
Metodologija inicializacije
Uporabniški priročnik
Uvod
Če pri ustvarjanju načrta z uporabo naprave SmartFusion2 uporabljate enega od dveh krmilnikov DDR (FDDR ali MDDR) ali katerega koli od blokov krmilnika serijske visoke hitrosti (SERDESIF), morate inicializirati konfiguracijske registre teh blokov med izvajanjem, preden jih je mogoče uporabiti. Na primerample, za krmilnik DDR morate nastaviti način DDR (DDR3/DDR2/LPDDR), širino PHY, burst mode in ECC.
Podobno morate za blok SERDESIF, ki se uporablja kot končna točka PCIe, nastaviti PCIE BAR na okno AXI (ali AHB).
Ta dokument opisuje korake, potrebne za ustvarjanje zasnove Libero, ki samodejno inicializira krmilnik DDR in bloke SERDESIF ob vklopu. Opisuje tudi, kako ustvariti kodo vdelane programske opreme iz Libero SOC, ki se uporablja v vdelanem toku načrtovanja.
Najprej je podan podroben opis teorije operacij.
Naslednji razdelek opisuje, kako ustvariti takšno zasnovo z uporabo Libero SoC System Builder, zmogljivega orodja za načrtovanje, ki med drugimi funkcijami za vas ustvari rešitev za 'inicializacijo', če v svoji zasnovi uporabljate bloke DDR ali SERDESIF.
Naslednji razdelek opisuje, kako sestaviti popolno rešitev za 'inicializacijo' brez uporabe orodja SmartFusion2 System Builder. To pomaga razložiti, kaj je treba storiti, če ne želite uporabljati System Builder, in tudi opisuje, kaj orodje System Builder dejansko ustvari za vas. Ta razdelek obravnava:
- Izdelava konfiguracijskih podatkov za krmilnik DDR in konfiguracijske registre SERDESIF
- Ustvarjanje logike FPGA, potrebne za prenos konfiguracijskih podatkov v različne konfiguracijske registre ASIC
Na koncu opišemo ustvarjeno fileje povezano z:
- Izdelava rešitve za 'inicializacijo' vdelane programske opreme.
- Simulacija zasnove za rešitev 'inicializacije' DDR.
Za podrobnosti o krmilniku DDR in konfiguracijskih registrih SERDESIF glejte Uporabniški priročnik za visokohitrostne serijske in DDR vmesnike Microsemi SmartFusion2.
Teorija delovanja
Rešitev za inicializacijo perifernih naprav uporablja naslednje glavne komponente:
- Funkcija CMSIS SystemInit(), ki deluje na Cortex-M3 in usmerja postopek inicializacije.
- Programsko IP jedro CoreConfigP, ki inicializira konfiguracijske registre perifernih naprav.
- Programsko IP jedro CoreResetP, ki upravlja zaporedje ponastavitve blokov MSS, DDR krmilnikov in SERDESIF.
Postopek inicializacije periferne naprave deluje na naslednji način:
- Po ponastavitvi Cortex-M3 zažene funkcijo CMSIS SystemInit(). Ta funkcija se samodejno izvede, preden se izvede funkcija main() aplikacije.
Izhodni signal CoreResetP MSS_HPMS_READY se potrdi na začetku postopka inicializacije, kar kaže, da so MSS in vse zunanje naprave (razen MDDR) pripravljene za komunikacijo. - Funkcija SystemInit() zapisuje konfiguracijske podatke v krmilnike DDR in konfiguracijske registre SERDESIF prek vodila MSS FIC_2 APB3. Ta vmesnik je povezan z mehkim jedrom CoreConfigP, instanciranim v strukturi FPGA.
- Ko so vsi registri konfigurirani, funkcija SystemInit() piše v kontrolne registre CoreConfigP, da nakaže zaključek faze konfiguracije registra; nato se uveljavita izhodna signala CoreConfigP CONFIG1_DONE in CONIG2_DONE.
Obstajata dve fazi konfiguracije registra (CONFIG1 in CONFIG2), odvisno od perifernih naprav, uporabljenih pri načrtovanju. - Če sta uporabljena eden ali oba MDDR/FDDR in pri načrtovanju ni uporabljen noben od blokov SERDESIF, obstaja samo ena faza konfiguracije registra. Oba izhodna signala CoreConfigP CONFIG1_DONE in CONIG2_DONE se uveljavita drug za drugim brez čakanja/zakasnitve.
Če je pri načrtovanju uporabljen eden ali več blokov SERDESIF v načinu, ki ni PCIe, obstaja samo ena faza konfiguracije registra. CONFIG1_DONE in CONIG2_DONE se uveljavljata drug za drugim brez čakanja/zakasnitve.
Če je pri načrtovanju uporabljen en ali več blokov SERDESIF v načinu PCIe, obstajata dve fazi konfiguracije registra. CONFIG1_DONE se potrdi, ko je prva faza konfiguracije registra končana. V tej fazi se konfigurirajo sistem SERDESIF in registri voznih pasov. Če je SERDESIF konfiguriran v načinu, ki ni PCIE, se takoj potrdi tudi signal CONFIG2_DONE. - Nato sledi druga faza konfiguracije registra (če je SERDESIF konfiguriran v načinu PCIE). Sledijo različni dogodki, ki se zgodijo v drugi fazi:
– CoreResetP razveljavi signale PHY_RESET_N in CORE_RESET_N, ki ustrezajo vsakemu od uporabljenih blokov SERDESIF. Prav tako uveljavlja izhodni signal SDIF_RELEASED, potem ko so vsi bloki SERDESIF izven ponastavitve. Ta signal SDIF_RELEASED se uporablja za označevanje CoreConfigP, da je jedro SERDESIF izven ponastavitve in je pripravljeno za drugo fazo konfiguracije registra.
– Ko je signal SDIF_RELEASED uveljavljen, začne funkcija SystemInit() preverjati uveljavitev PMA_READY na ustreznem pasu SERDESIF. Ko je PMA_READY uveljavljen, se drugi niz registrov SERDESIF (registri PCIE) konfigurira/zapiše s funkcijo SystemInit(). - Ko so vsi registri PCIE konfigurirani, funkcija SystemInit() piše v kontrolne registre CoreConfigP, da nakaže dokončanje druge faze konfiguracije registra; nato se potrdi izhodni signal CoreConfigP CONIG2_DONE.
- Poleg zgornjih uveljavitev/odstranitev signalov CoreResetP upravlja tudi inicializacijo različnih blokov z izvajanjem naslednjih funkcij:
– Odstranjevanje ponastavitve jedra FDDR
– Razveljavitev SERDESIF blokira ponastavitve PHY in CORE
– Spremljanje zaklepnega signala FDDR PLL (FPLL). FPLL mora biti zaklenjen, da se zagotovi pravilna komunikacija med podatkovnim vmesnikom FDDR AXI/AHBLite in strukturo FPGA.
– Spremljanje zapornih signalov bloka SERDESIF PLL (SPLL). SPLL mora biti zaklenjen, da se zagotovi, da lahko bloki SERDESIF vmesnik AXI/AHBLite (način PCIe) ali vmesnik XAUI pravilno komunicirajo s strukturo FPGA.
– Čakanje, da se zunanji pomnilniki DDR umirijo in so pripravljeni za dostop krmilnikov DDR. - Ko vse zunanje naprave zaključijo svojo inicializacijo, CoreResetP potrdi signal INIT_DONE; nato se potrdi notranji register CoreConfigP INIT_DONE.
Če sta uporabljena eden ali oba MDDR/FDDR in je dosežen čas inicializacije DDR, se potrdi izhodni signal CoreResetP DDR_READY. Uveljavitev tega signala DDR_READY je mogoče spremljati kot znak, da je DDR (MDDR/FDDR) pripravljen za komunikacijo.
Če je uporabljen eden ali več blokov SERDESIF in je druga faza konfiguracije registra uspešno zaključena, se potrdi izhodni signal CoreResetP SDIF_READY. Uveljavitev tega signala SDIF_READY je mogoče spremljati kot znak, da so vsi bloki SERDESIF pripravljeni za komunikacijo. - Funkcija SystemInit(), ki je čakala na uveljavitev INIT_DONE, se zaključi in funkcija main() aplikacije se izvede. Takrat so bili vsi uporabljeni krmilniki DDR in bloki SERDESIF inicializirani, aplikacija vdelane programske opreme in logika tkanine FPGA pa lahko zanesljivo komunicirata z njimi.
Metodologija, opisana v tem dokumentu, se opira na Cortex-M3, ki izvaja postopek inicializacije kot del sistemske inicializacijske kode, ki se izvede pred glavno()funkcijo aplikacije.
Oglejte si diagrame poteka na sliki 1-1, sliki 1-2 in sliki 1-3 za korake inicializacije FDDR/MDDR, SEREDES (način brez PCIe) in SERDES (način PCIe).
Slika 1-4 prikazuje časovni diagram periferne inicializacije.
![]() |
![]() |
Slika 1-3 • Diagram poteka inicializacije SERDESIF (PCIe).
Postopek inicializacije, opisan v tem dokumentu, zahteva, da med postopkom inicializacije zaženete Cortex-M3, tudi če na Cortex-M3 ne nameravate izvajati nobene kode. Ustvariti morate osnovno aplikacijo vdelane programske opreme, ki ne dela ničesar (preprosta zanka, nprample) in naložite to izvršljivo datoteko v vgrajeni trajni pomnilnik (eNVM), tako da se krmilniki DDR in bloki SERDESIF inicializirajo, ko se Cortex-M3 zažene.
Uporaba programa System Builder za ustvarjanje načrta z uporabo blokov DDR in SERDESIF
SmartFusion2 System Builder je zmogljivo orodje za načrtovanje, ki vam pomaga zajeti vaše zahteve na sistemski ravni in ustvari načrt, ki izvaja te zahteve. Zelo pomembna funkcija System Builderja je samodejno ustvarjanje podsistema Peripheral Initialization. “Uporaba SmartDesign za ustvarjanje dizajna z uporabo blokov DDR in SERDESIF” na strani 17 podrobno opisuje, kako ustvariti takšno rešitev brez graditelja sistema.
Če uporabljate System Builder, morate izvesti naslednje naloge, da ustvarite načrt, ki inicializira vaše krmilnike DDR in bloke SERDESIF ob vklopu:
- Na strani Device Features (Slika 2-1) določite, kateri krmilniki DDR se uporabljajo in koliko blokov SERDESIF je uporabljenih v vaši zasnovi.
- Na strani Pomnilnik določite vrsto DDR (DDR2/DDR3/LPDDR) in konfiguracijske podatke za vaše zunanje pomnilnike DDR. Za podrobnosti si oglejte razdelek Memory Page.
- Na strani z zunanjimi napravami dodajte matične naprave, konfigurirane kot AHBLite/AXI, v podsistem Fabric DDR in/ali podsistem MSS DDR FIC (neobvezno).
- Na strani z nastavitvami ure določite frekvence ure za podsisteme DDR.
- Izpolnite specifikacijo zasnove in kliknite Dokončaj. To ustvari zasnovo, ki jo je ustvaril System Builder, vključno z logiko, potrebno za rešitev 'inicializacije'.
- Če uporabljate bloke SERDESIF, morate instancirati bloke SERDESIF v svoji zasnovi in povezati njihova inicializacijska vrata s tistimi v jedru, ki ga ustvari System Builder.
Stran s funkcijami naprave System Builder
Na strani s funkcijami naprave določite, kateri krmilniki DDR (MDDR in/ali FDDR) se uporabljajo in koliko blokov SERDESIF je uporabljenih v vaši zasnovi (slika 2-1).
Slika 2-1 • Stran s funkcijami naprave System Builder
Stran pomnilnika System Builder
Če želite uporabiti MSS DDR (MDDR) ali Fabric DDR (FDDR), na spustnem seznamu izberite vrsto pomnilnika (slika 2-2).
Slika 2-2 • Zunanji pomnilnik MSS
Morate:
- Izberite vrsto DDR (DDR2, DDR3 ali LPDDR).
- Določite čas nastavitve pomnilnika DDR. Za nastavitev pravilnega časa nastavitve pomnilnika se obrnite na specifikacije zunanjega pomnilnika DDR. Pomnilnik DDR se morda ne bo pravilno inicializiral, če čas nastavitve pomnilnika ni pravilno nastavljen.
- Uvozite konfiguracijske podatke registra DDR ali nastavite svoje parametre pomnilnika DDR. Za podrobnosti glejte Uporabniški priročnik za visokohitrostne serijske in DDR vmesnike Microsemi SmartFusion2.
Ti podatki se uporabljajo za ustvarjanje registra DDR BFM in konfiguracije vdelane programske opreme files, kot je opisano v »Ustvarjanje in prevajanje aplikacije vdelane programske opreme« na strani 26 in »BFM Files Uporablja se za simulacijo zasnove« na strani 27. Za podrobnosti o konfiguracijskih registrih krmilnika DDR glejte Uporabniški priročnik za visokohitrostne serijske in DDR vmesnike Microsemi SmartFusion2.
Bivšiample konfiguracije file sintaksa je prikazana na sliki 2-3. Pri tem uporabljena imena registrov file so enaki tistim, ki so opisani v Uporabniški priročnik za visokohitrostne serijske in DDR vmesnike Microsemi SmartFusion2
Slika 2-3 • Konfiguracija File Sintaksa Nprample
Stran s perifernimi napravami System Builder
Na strani Peripherals je za vsak krmilnik DDR ustvarjen ločen podsistem (podsistem Fabric DDR za FDDR in podsistem MSS DDR FIC za MDDR). Vsakemu od teh podsistemov lahko dodate jedro Fabric AMBA Master (konfigurirano kot AXI/AHBLite), da omogočite glavni dostop do krmilnikov DDR. Po generiranju System Builder samodejno instancira jedra vodil (odvisno od vrste dodanega masterja AMBA) in izpostavi glavni BIF jedra vodila ter zatiče za uro in ponastavitev ustreznih podsistemov (FDDR/MDDR) pod ustreznimi skupinami zatičev. vrh. Vse, kar morate storiti, je povezati BIF-je z ustreznimi jedri Fabric Master, ki bi jih vnesli v načrt. V primeru MDDR je neobvezno dodati jedro Fabric AMBA Master podsistemu MSS DDR FIC; Cortex-M3 je privzeti glavni v tem podsistemu. Slika 2-4 prikazuje stran perifernih naprav System Builder.
Slika 2-4 • Stran s perifernimi napravami System Builder
Stran z nastavitvami ure System Builder
Na strani z nastavitvami ure morate za vsak krmilnik DDR določiti frekvence ure, povezane z vsakim podsistemom DDR (MDDR in/ali FDDR).
Za MDDR morate navesti:
- MDDR_CLK – Ta ura določa delovno frekvenco krmilnika DDR in se mora ujemati s frekvenco ure, na kateri želite, da deluje vaš zunanji pomnilnik DDR. Ta ura je opredeljena kot večkratnik M3_CLK (glavna ura Cortex-M3 in MSS, slika 2-5). MDDR_CLK mora biti nižji od 333 MHz.
- DDR_FIC_CLK – Če ste se odločili za dostop do MDDR tudi iz FPGA tkanine, morate določiti DDR_FIC_CLK. Ta urna frekvenca je definirana kot razmerje MDDR_CLK in se mora ujemati s frekvenco, pri kateri deluje podsistem FPGA, ki dostopa do MDDR.
Slika 2-5 • Cortex-M3 in glavna ura MSS; Ure MDDR
Za FDDR morate navesti:
- FDDR_CLK – Določa delovno frekvenco krmilnika DDR in se mora ujemati s frekvenco ure, pri kateri želite, da deluje vaš zunanji pomnilnik DDR. Upoštevajte, da je ta ura definirana kot večkratnik M3_CLK (ura MSS in Cortex-M3, slika 2-5). FDDR_CLK mora biti znotraj 20 MHz in 333 MHz.
- FDDR_SUBSYSTEM_CLK – Ta taktna frekvenca je definirana kot razmerje FDDR_CLK in se mora ujemati s frekvenco, pri kateri deluje podsistem FPGA, ki dostopa do FDDR.
Slika 2-6 • Ure DDR iz tkanine
Konfiguracija SERDESIF
Bloki SERDESIF niso instancirani v načrtu, ki ga ustvari System Builder. Vendar pa so za vse bloke SERDESIF signali inicializacije na voljo na vmesniku jedra System Builder in jih je mogoče povezati z jedri SERDESIF na naslednji ravni hierarhije, kot je prikazano na sliki 2-7.Slika 2-7 • Povezljivost periferne inicializacije SERDESIF
Podobno kot konfiguracijski registri DDR ima vsak blok SERDES tudi konfiguracijske registre, ki jih je treba naložiti med izvajanjem. Te vrednosti registra lahko uvozite ali uporabite konfigurator za hitri serijski vmesnik (slika 2-8), da vnesete svoje parametre PCIe ali EPCS in vrednosti registra se samodejno izračunajo namesto vas. Za podrobnosti glejte Navodila za uporabo konfiguratorja SERDES.Slika 2-8 • Konfigurator hitrega serijskega vmesnika
Ko integrirate svojo uporabniško logiko z blokom System Builder in blokom SERDES, lahko ustvarite svojo najvišjo raven SmartDesign. To ustvari vse HDL in BFM fileki so potrebni za izvedbo in simulacijo vašega načrta. Nato lahko nadaljujete s preostalim potekom načrtovanja.
Uporaba SmartDesign za ustvarjanje dizajna z uporabo blokov DDR in SERDESIF
Ta razdelek opisuje, kako sestaviti popolno rešitev za 'inicializacijo' brez uporabe orodja SmartFusion2 System Builder. Cilj je, da vam pomaga razumeti, kaj morate storiti, če ne želite uporabljati System Builder. Ta razdelek opisuje tudi, kaj orodje System Builder dejansko ustvari za vas. V tem razdelku je opisano, kako:
- Vnesite konfiguracijske podatke za krmilnik DDR in konfiguracijske registre SERDESIF.
- Instanciirajte in povežite jedra Fabric, potrebna za prenos konfiguracijskih podatkov v krmilnike DDR in konfiguracijske registre SERDESIF.
Konfiguracija krmilnika DDR
Krmilnika MSS DDR (MDDR) in Fabric DDR (FDDR) je treba konfigurirati dinamično (v času izvajanja), da se ujemajo z zahtevami konfiguracije zunanjega pomnilnika DDR (način DDR, širina PHY, rafalni način, ECC itd.). Podatki, vneseni v konfigurator MDDR/FDDR, se zapišejo v konfiguracijske registre krmilnika DDR s funkcijo CMSIS SystemInit(). Konfigurator ima tri različne zavihke za vnos različnih vrst konfiguracijskih podatkov:
- Splošni podatki (način DDR, širina podatkov, taktna frekvenca, ECC, vmesnik Fabric, moč pogona)
- Podatki o inicializaciji pomnilnika (dolžina niza, vrstni red nizov, časovni način, zakasnitev itd.)
- Časovni podatki pomnilnika
Oglejte si specifikacije vašega zunanjega pomnilnika DDR in konfigurirajte krmilnik DDR tako, da ustreza zahtevam vašega zunanjega pomnilnika DDR.
Za podrobnosti o konfiguraciji DDR glejte Uporabniški priročnik za konfiguracijo SmartFusion2 MSS DDR.
Konfiguracija SERDESIF
Dvokliknite blok SERDES na platnu SmartDesign, da odprete konfigurator za konfiguracijo SERDES (slika 3-1). Te vrednosti registra lahko uvozite ali uporabite konfigurator SERDES za vnos parametrov PCIe ali EPCS in vrednosti registra se samodejno izračunajo namesto vas. Za podrobnosti glejte Navodila za uporabo konfiguratorja SERDES.Slika 3-1 • Konfigurator hitrega serijskega vmesnika
Ustvarjanje podsistema za inicializacijo načrta FPGA
Za inicializacijo blokov DDR in SERDESIF morate ustvariti inicializacijski podsistem v strukturi FPGA. Podsistem za inicializacijo tkanine FPGA premakne podatke iz Cortex-M3 v konfiguracijske registre DDR in SERDESIF, upravlja sekvence ponastavitve, potrebne za delovanje teh blokov, in signalizira, kdaj so ti bloki pripravljeni za komunikacijo s preostalim delom vašega dizajna. Če želite ustvariti inicializacijski podsistem, morate:
- Konfigurirajte FIC_2 znotraj MSS
- Instanciirajte in konfigurirajte jedra CoreConfigP in CoreResetP
- Instanciirajte 25/50MHz RC oscilator na čipu
- Ustvarite makro za ponastavitev sistema (SYSRESET).
- Te komponente povežite s konfiguracijskimi vmesniki, urami, ponastavitvami in vrati za zaklepanje PLL vsake zunanje naprave
Konfiguracija MSS FIC_2 APB
Če želite konfigurirati MSS FIC_2:
- Odprite pogovorno okno konfiguratorja FIC_2 iz konfiguratorja MSS (slika 3-2).
- Izberite Inicializiraj zunanje naprave z uporabo Cortex-M3.
- Odvisno od vašega sistema potrdite eno ali obe od naslednjih potrditvenih polj:
– MSS DDR
– Fabric DDR in/ali bloki SERDES - Kliknite V redu in nadaljujte z generiranjem MSS (to dejanje lahko odložite, dokler v celoti ne konfigurirate MSS v skladu z zahtevami zasnove). Vrata FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK in FIC_2_APB_M_RESET_N) so zdaj izpostavljena na vmesniku MSS in jih je mogoče povezati z jedrima CoreConfigP in CoreResetP.
Slika 3-2 • Konfigurator MSS FIC_2
CoreConfigP
Če želite konfigurirati CoreConfigP:
- Instanciirajte CoreConfigP v svoj SmartDesign (običajno tistega, kjer je instanciran MSS).
To jedro lahko najdete v katalogu Libero (pod perifernimi napravami). - Dvokliknite jedro, da odprete konfigurator.
- Konfigurirajte jedro, da določite, katere zunanje naprave je treba inicializirati (slika 3-3)
Slika 3-3 • Pogovorno okno CoreConfigP
CoreResetP
Če želite konfigurirati CoreResetP:
- Instanciirajte CoreResetP v svoj SmartDesign (običajno tistega, kjer je instanciran MSS).
To jedro lahko najdete v katalogu Libero, pod perifernimi napravami. - Dvokliknite jedro znotraj SmartDesign Canvas, da odprete konfigurator (slika 3-4).
- Konfigurirajte jedro za:
– Določite vedenje zunanje ponastavitve (EXT_RESET_OUT potrjeno). Izberite eno od štirih možnosti:
o EXT_RESET_OUT ni nikoli uveljavljen
o EXT_RESET_OUT je uveljavljen, če je uveljavljena ponastavitev ob vklopu (POWER_ON_RESET_N).
o EXT_RESET_OUT je uveljavljen, če je uveljavljen FAB_RESET_N
o EXT_RESET_OUT je uveljavljen, če je uveljavljen ponastavitev ob vklopu (POWER_ON_RESET_N) ali FAB_RESET_N
– Določite Voltage. Izbrana vrednost se mora ujemati z voltage ste izbrali v pogovornem oknu Nastavitve projekta Libero.
– Označite ustrezna potrditvena polja, da navedete, katere zunanje naprave uporabljate v svoji zasnovi.
– Določite čas nastavitve zunanjega pomnilnika DDR. To je največja vrednost za vse pomnilnike DDR, ki se uporabljajo v vaši aplikaciji (MDDR in FDDR). Za konfiguracijo tega parametra glejte podatkovni list prodajalca zunanjega pomnilnika DDR. 200us je dobra privzeta vrednost za pomnilnike DDR2 in DDR3, ki delujejo pri 200MHz. To je zelo pomemben parameter za zagotavljanje delujoče simulacije in delujočega sistema na siliciju. Napačna vrednost za čas umirjanja lahko povzroči napake pri simulaciji. Za konfiguracijo tega parametra glejte podatkovni list prodajalca pomnilnika DDR.
– Za vsak blok SERDES v vašem načrtu potrdite ustrezna polja, da označite, ali:
o uporablja se PCIe
o Potrebna je podpora za PCIe Hot Reset
o Potrebna je podpora za PCIe L2/P2
Opomba: Če uporabljate matrico 090 (M2S090) in vaš dizajn uporablja SERDESIF, vam ni treba potrditi nobenega od naslednjih potrditvenih polj: »Uporablja se za PCIe«, »Vključi podporo za PCIe HotReset« in »Vključi podporo za PCIe L2/P2«. Če uporabljate katero koli napravo, ki ni 090, in uporabljate enega ali več blokov SERDESIF, morate potrditi vsa štiri potrditvena polja pod ustreznim razdelkom SERDESIF.
Opomba: Za podrobnosti o možnostih, ki so vam na voljo v tem konfiguratorju, glejte priročnik CoreResetP.
Slika 3-4 • CoreResetPConfigurator
Instancija oscilatorja 25/50MHz
CoreConfigP in CoreResetP uravnavata takt 25/50MHz RC oscilator na čipu. Ustvariti morate oscilator 25/50MHz in ga povezati s temi jedri.
- Instanciirajte jedro čip oscilatorjev v svoj SmartDesign (običajno tisto, kjer je instanciran MSS). To jedro lahko najdete v katalogu Libero pod Ura in upravljanje.
- Konfigurirajte to jedro tako, da oscilator RC poganja strukturo FPGA, kot je prikazano na sliki 3-5.
Slika 3-5 • Konfigurator oscilatorjev čipov
Instancija ponastavitve sistema (SYSRESET).
Makro SYSRESET zagotavlja funkcionalnost ponastavitve na ravni naprave za vaš načrt. Izhodni signal POWER_ON_RESET_N se uveljavi/izklopi vsakič, ko je čip vklopljen ali ko je zunanji pin DEVRST_N uveljavljen/izključen (slika 3-6).
Instanciirajte makro SYSRESET v svoj SmartDesign (običajno tistega, kjer je instanciran MSS). Ta makro lahko najdete v katalogu Libero pod knjižnico makrov. Konfiguracija tega makra ni potrebna.
Slika 3-6 • Makro SYSRESET
Splošna povezljivost
Ko ste instancirali in konfigurirali jedra MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP in CoreResetP v svoji zasnovi, jih morate povezati, da oblikujete podsistem Peripheral Initialization. Za poenostavitev opisa povezljivosti v tem dokumentu je razdeljen na povezljivost konfiguracijske podatkovne poti, skladne z APB3, povezano s povezavami, povezanimi s CoreConfigP in CoreResetP.
Povezljivost konfiguracijske podatkovne poti
Slika 3-7 prikazuje, kako povezati CoreConfigP s signali MSS FIC_2 in konfiguracijskimi vmesniki perifernih naprav, ki so skladni z APB3.
Tabela 3-1 • Konfiguracijska podatkovna pot Vrata/BIF povezave
OD Vmesnik Port/Bus (BIF)/ Komponenta |
TO Vmesnik vrat/vodila (BIF)/komponenta |
||
APB S PREDNASTAVITEV N/ CoreConfigP | APB S PREDNASTAVITEV N/ SDIF<0/1/2/3> | APB S PREDNASTAV. 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/konfig | APB PODREJENI (BIF)/SDIF<0/1/2/3> | ||
FDDR APBmslave | APB SLAVE (BIF)/FDDR | ||
FIC 2 APBmmaster/CoreConfigP | FIC 2 APB MASTER/MSS |
Slika 3-7 • Povezljivost podsistema FIC_2 APB3
Ure in ponastavi povezljivost
Slika 3-8 prikazuje, kako povezati CoreResetP z zunanjimi viri ponastavitve in signali jedra ponastavitve perifernih naprav. Prikazuje tudi, kako povezati CoreResetP s signali statusa sinhronizacije ure perifernih naprav (signali zaklepanja PLL). Poleg tega prikazuje, kako sta CoreConfigP in CoreResetP povezana.
Slika 3-8 • Povezljivost podsistema Core SF2Reset
Ustvarjanje in prevajanje aplikacije vdelane programske opreme
Ko izvozite vdelano programsko opremo iz LiberoSoC (okno poteka oblikovanja > Izvozi vdelano programsko opremo > Izvozi vdelano programsko opremo), Libero ustvari naslednje files v /firmware/drivers_config/ mapa sys_config:
- sys_config.c – Vsebuje podatkovne strukture, ki vsebujejo vrednosti za periferne registre.
- sys_config.h – Vsebuje stavke #define, ki določajo, katere zunanje naprave so uporabljene pri načrtovanju in jih je treba inicializirati.
- sys_config_mddr_define.h – Vsebuje konfiguracijske podatke krmilnika MDDR, vnesene v pogovorno okno Registrs Configuration.
- sys_config_fddr_define.h – Vsebuje konfiguracijske podatke krmilnika FDDR, vnesene v pogovorno okno Registrs Configuration.
- sys_config_mss_clocks.h – To file vsebuje taktne frekvence MSS, kot so definirane v konfiguratorju MSS CCC. Te frekvence uporablja koda CMSIS za zagotavljanje pravilnih informacij o uri številnim gonilnikom MSS, ki morajo imeti dostop do svoje frekvence periferne ure (PCLK) (npr. delilniki hitrosti prenosa MSS UART so funkcija hitrosti prenosa in frekvence PCLK ).
- sys_config_SERDESIF_ .c – Vsebuje SERDESIF_ podatke o konfiguraciji registra, posredovane med SERDESIF_ konfiguracija blokov pri ustvarjanju dizajna.
- sys_config_SERDESIF_ .h – Vsebuje stavke #define, ki določajo število parov konfiguracije registra in številko steze, ki jo je treba vprašati za PMA_READY (samo v načinu PCIe).
te fileso potrebni za pravilno prevajanje kode CMSIS in vsebujejo informacije o vaši trenutni zasnovi, vključno s podatki o periferni konfiguraciji in informacijami o konfiguraciji ure za MSS.
Teh ne urejajte files ročno; ustvarjeni so v ustreznih imenikih komponent/perifernih naprav vsakič, ko so ustvarjene komponente SmartDesign, ki vsebujejo ustrezne zunanje naprave. Če se konfiguracijski podatki katere koli zunanje naprave spremenijo, morate znova izvoziti projekte vdelane programske opreme, da bo posodobljena vdelana programska oprema files (glejte zgornji seznam) se izvozijo v / firmware/drivers_config/sys_config mapo.
Ko izvozite vdelano programsko opremo, Libero SoC ustvari projekte vdelane programske opreme: knjižnico, kjer je vaša načrtovalska konfiguracija files in gonilniki so prevedeni.
Če označite Ustvari projekt potrditveno polje, ko izvozite vdelano programsko opremo, se ustvari projekt programske opreme SoftConsole/IAR/Keil, ki zadrži projekt aplikacije, kjer lahko urejate main.c in uporabniški C/H files. Odprite projekt SoftConSole/IAR/Keil, da pravilno prevedete kodo CMSIS in ustrezno konfigurirate aplikacijo vdelane programske opreme, da se ujema z vašo zasnovo strojne opreme.
BFM Files Uporablja se za simulacijo načrta
Ko ustvarite komponente SmartDesign, ki vsebujejo zunanje naprave, povezane z vašim dizajnom, se simulacija files, ki ustrezajo ustreznim zunanjim napravam, se ustvarijo v /imenik simulacije:
- test.bfm – BFM na najvišji ravni file ki se prvič izvede med katero koli simulacijo, ki izvaja procesor SmartFusion2 MSS Cortex-M3. Izvede peripheral_init.bfm in user.bfm v tem vrstnem redu.
- MDDR_init.bfm – Če vaš dizajn uporablja MDDR, Libero to ustvari file; vsebuje ukaze za pisanje BFM, ki simulirajo zapise podatkov registra konfiguracije MSS DDR, ki ste jih vnesli (s pogovornim oknom za urejanje registrov ali v GUI MSS_MDDR) v registre krmilnika MSS DDR.
- FDDR_init.bfm – Če vaš dizajn uporablja FDDR, Libero to ustvari file; vsebuje ukaze za pisanje BFM, ki simulirajo zapisovanje podatkov konfiguracijskega registra Fabric DDR, ki ste jih vnesli (z uporabo pogovornega okna Edit Registrs ali v FDDR GUI) v registre Fabric DDR Controller.
- SERDESIF_ _init.bfm – Če vaš dizajn uporablja enega ali več blokov SERDESIF, Libero to ustvari file za vsakega od SERDESIF_ uporabljeni bloki; vsebuje ukaze za pisanje BFM, ki simulirajo pisanje podatkov konfiguracijskega registra SERDESIF, ki ste jih vnesli (z uporabo pogovornega okna Urejanje registrov ali v SERDESIF_ GUI) v SERDESIF_ registri. Če je blok SERDESIF konfiguriran kot PCIe, to file ima tudi nekaj stavkov #define, ki nadzirajo izvajanje 2 faz konfiguracije registra v popolnem vrstnem redu.
- uporabnik.bfm – Vsebuje uporabniške ukaze. Ti ukazi se izvedejo po zaključku peripheral_init.bfm. Uredi to file za vnos ukazov BFM.
- SERDESIF_ _uporabnik.bfm – Vsebuje uporabniške ukaze. Uredi to file za vnos ukazov BFM. Uporabite to, če ste konfigurirali SERDESIF_ blok v simulacijskem načinu BFM PCIe in kot glavni AXI/AHBLite. Če ste konfigurirali SERDESIF_ blok v simulacijskem načinu RTL, tega ne boste potrebovali file.
Ko vsakič prikličete simulacijo, sta naslednji dve simulaciji files so ponovno ustvarjeni v /imenik simulacije s posodobljeno vsebino:
- podsistem.bfm – Vsebuje stavke #define za vsako periferno napravo, uporabljeno v vašem načrtovanju, ki določajo določen razdelek peripheral_init.bfm, ki naj se izvede v skladu z vsako periferno napravo.
- operipheral_init.bfm – Vsebuje postopek BFM, ki posnema funkcijo CMSIS:: SystemInit(), ki se izvaja na Cortex-M3, preden vstopite v postopek main(). Kopira podatke o konfiguraciji za katero koli periferno napravo, uporabljeno pri načrtovanju, v pravilne registre konfiguracije periferije in nato počaka, da so vse zunanje naprave pripravljene, preden potrdi, da lahko te zunanje naprave uporabljate. Izvaja MDDR_init.bfm in FDDR_init.bfm.
Z uporabo teh ustvarjenih files, so krmilniki DDR v vaši zasnovi samodejno konfigurirani in simulirajo, kaj bi se zgodilo na napravi SmartFusion2. Urejate lahko user.bfm file da dodate vse ukaze, potrebne za simulacijo vaše zasnove (Cortex-M3 je glavni). Ti ukazi se izvedejo po inicializaciji perifernih naprav. Ne urejajte test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files in SERDESIF_ _init.bfm files.
Podpora za izdelke
Microsemi SoC Products Group svoje izdelke podpira z različnimi podpornimi storitvami, vključno s storitvami za stranke, centrom za tehnično podporo strankam, webspletno mesto, elektronska pošta in prodajne pisarne po vsem svetu.
Ta dodatek vsebuje informacije o stiku s skupino Microsemi SoC Products Group in uporabi teh podpornih storitev.
Storitev za stranke
Obrnite se na službo za stranke za netehnično podporo za izdelke, kot so cene izdelkov, nadgradnje izdelkov, informacije o posodobitvah, status naročila in avtorizacija.
Iz Severne Amerike, pokličite 800.262.1060
Iz preostalega sveta pokličite 650.318.4460
Faks, od koder koli na svetu, 408.643.6913
Center za tehnično podporo strankam
Microsemi SoC Products Group zaposluje svoj center za tehnično podporo strankam z visoko usposobljenimi inženirji, ki vam lahko pomagajo odgovoriti na vaša vprašanja o strojni opremi, programski opremi in dizajnu o izdelkih Microsemi SoC. Center za tehnično podporo strankam porabi veliko časa za ustvarjanje opomb o aplikacijah, odgovorov na pogosta vprašanja cikla načrtovanja, dokumentacije o znanih težavah in različnih pogostih vprašanj. Torej, preden stopite v stik z nami, obiščite naše spletne vire. Zelo verjetno smo že odgovorili na vaša vprašanja.
Tehnična podpora
Obiščite podporo strankam webspletno mesto (www.microsemi.com/soc/support/search/default.aspx) za več informacij in podporo. Številni odgovori so na voljo na iskanju web vir vključuje diagrame, ilustracije in povezave do drugih virov na webmesto.
Webmesto
Na domači strani SoC lahko brskate po različnih tehničnih in netehničnih informacijah na www.microsemi.com/soc.
Obrnite se na center za tehnično podporo strankam
Center za tehnično podporo zaposlujejo visoko usposobljeni inženirji. Na center za tehnično podporo lahko stopite v stik po e-pošti ali prek skupine izdelkov Microsemi SoC webmesto.
E-pošta
Svoja tehnična vprašanja lahko pošljete na naš elektronski naslov in prejmete odgovore po elektronski pošti, faksu ali telefonu. Če imate težave z oblikovanjem, lahko svoj dizajn pošljete po e-pošti fileda prejme pomoč.
E-poštni račun ves dan spremljamo. Ko nam pošljete svojo zahtevo, obvezno vključite svoje polno ime, ime podjetja in kontaktne podatke za učinkovito obdelavo vaše zahteve.
E-poštni naslov tehnične podpore je soc_tech@microsemi.com.
Moji primeri
Stranke skupine Microsemi SoC Products Group lahko predložijo in spremljajo tehnične primere na spletu tako, da obiščejo Moji primeri.
Zunaj ZDA
Stranke, ki potrebujejo pomoč zunaj časovnih pasov ZDA, se lahko obrnejo na tehnično podporo po e-pošti (soc_tech@microsemi.com) ali se obrnite na lokalno prodajno pisarno. Seznam prodajnih pisarn najdete na www.microsemi.com/soc/company/contact/default.aspx.
Tehnična podpora ITAR
Za tehnično podporo za RH in RT FPGA, ki jih urejajo mednarodni predpisi o prometu z orožjem (ITAR), nas kontaktirajte prek soc_tech_itar@microsemi.com. Druga možnost je, da v Mojih primerih izberete Da na spustnem seznamu ITAR. Za popoln seznam FPGA Microsemi, ki jih ureja ITAR, obiščite ITAR web strani.
Microsemi Corporation (NASDAQ: MSCC) ponuja obsežen portfelj polprevodniških rešitev za: letalstvo, obramba in varnost; podjetja in komunikacije; ter industrijske in alternativne energetske trge. Izdelki vključujejo visoko zmogljive, visoko zanesljive analogne in RF naprave, mešana signalna in RF integrirana vezja, prilagodljive SoC, FPGA in celotne podsisteme. Microsemi ima sedež v Aliso Viejo v Kaliforniji. Več o tem na www.microsemi.com.
© 2014 Microsemi Corporation. Vse pravice pridržane. Microsemi in logotip Microsemi sta blagovni znamki Microsemi Corporation. Vse druge blagovne in storitvene znamke so last njihovih lastnikov.
5-02-00384-1/08.14Sedež podjetja Microsemi
One Enterprise, Aliso Viejo CA 92656 ZDA
Znotraj ZDA: +1 949-380-6100
Prodaja: +1 949-380-6136
Faks: +1 949-215-4996
Dokumenti / Viri
![]() |
Krmilnik Microsemi SmartFusion2 DDR in serijski visokohitrostni krmilnik [pdf] Uporabniški priročnik Krmilnik SmartFusion2 DDR in serijski krmilnik visoke hitrosti, krmilnik SmartFusion2 DDR, krmilnik in serijski krmilnik visoke hitrosti, krmilnik visoke hitrosti |