SmartFusion2
DDR řadič a sériový vysokorychlostní řadič
Metodika inicializace
Uživatelská příručka
Zavedení
Při vytváření návrhu pomocí zařízení SmartFusion2, pokud používáte jeden ze dvou řadičů DDR (FDDR nebo MDDR) nebo některý z bloků sériového vysokorychlostního řadiče (SERDESIF), musíte před spuštěním inicializovat konfigurační registry těchto bloků za běhu. mohou být použity. NapřampPro řadič DDR musíte nastavit režim DDR (DDR3/DDR2/LPDDR), šířku PHY, režim sériového snímání a ECC.
Podobně pro blok SERDESIF používaný jako koncový bod PCIe musíte nastavit PCIE BAR na okno AXI (nebo AHB).
Tento dokument popisuje kroky potřebné k vytvoření návrhu Libero, který automaticky inicializuje řadič DDR a bloky SERDESIF při zapnutí. Také popisuje, jak vygenerovat kód firmwaru z Libero SOC, který se používá v toku vestavěného návrhu.
Nejprve je uveden podrobný popis teorie operací.
Další část popisuje, jak vytvořit takový návrh pomocí Libero SoC System Builder, výkonného návrhářského nástroje, který vám kromě jiných funkcí vytvoří „inicializační“ řešení, pokud ve svém návrhu používáte bloky DDR nebo SERDESIF.
Další část popisuje, jak sestavit kompletní řešení „inicializace“ bez použití nástroje SmartFusion2 System Builder. To pomáhá vysvětlit, co je třeba udělat, pokud nechcete používat nástroj System Builder, a také popisuje, co pro vás nástroj System Builder skutečně generuje. Tato sekce se zabývá:
- Vytvoření konfiguračních dat pro řadič DDR a konfigurační registry SERDESIF
- Vytvoření logiky FPGA vyžaduje přenos konfiguračních dat do různých konfiguračních registrů ASIC
Nakonec popíšeme vygenerované filesouvisí s:
- Vytvoření řešení „inicializace“ firmwaru.
- Simulace návrhu řešení „inicializace“ DDR.
Podrobnosti o řadiči DDR a konfiguračních registrech SERDESIF viz Uživatelská příručka pro vysokorychlostní sériová a DDR rozhraní Microsemi SmartFusion2.
Teorie provozu
Řešení inicializace periferií používá následující hlavní komponenty:
- Funkce CMSIS SystemInit(), která běží na Cortex-M3 a řídí proces inicializace.
- CoreConfigP soft IP jádro, které inicializuje konfigurační registry periferií.
- CoreResetP soft IP jádro, které spravuje sekvenci resetování řadičů MSS, DDR a bloků SERDESIF.
Proces inicializace periferií funguje následovně:
- Po resetování Cortex-M3 spustí funkci CMSIS SystemInit(). Tato funkce se automaticky provede před provedením funkce main() aplikace.
Výstupní signál CoreResetP MSS_HPMS_READY je aktivován na začátku procesu inicializace, což znamená, že MSS a všechna periferní zařízení (kromě MDDR) jsou připravena ke komunikaci. - Funkce SystemInit() zapisuje konfigurační data do řadičů DDR a konfiguračních registrů SERDESIF prostřednictvím sběrnice MSS FIC_2 APB3. Toto rozhraní je připojeno k měkkému jádru CoreConfigP vytvořenému ve struktuře FPGA.
- Po nakonfigurování všech registrů funkce SystemInit() zapíše do řídicích registrů CoreConfigP, aby označila dokončení fáze konfigurace registru; výstupní signály CoreConfigP CONFIG1_DONE a CONIG2_DONE jsou poté aktivovány.
Existují dvě fáze konfigurace registru (CONFIG1 a CONFIG2) v závislosti na periferiích použitých v návrhu. - Pokud je použit jeden nebo oba MDDR/FDDR a v návrhu není použit žádný z bloků SERDESIF, existuje pouze jedna fáze konfigurace registru. Oba výstupní signály CoreConfigP CONFIG1_DONE a CONIG2_DONE jsou uplatňovány jeden po druhém bez jakéhokoli čekání/zpoždění.
Pokud je v návrhu použit jeden nebo více bloků SERDESIF v režimu bez PCIe, existuje pouze jedna fáze konfigurace registru. CONFIG1_DONE a CONIG2_DONE jsou uplatňovány jedna po druhé bez čekání/zpoždění.
Pokud je v návrhu použit jeden nebo více bloků SERDESIF v režimu PCIe, existují dvě fáze konfigurace registru. CONFIG1_DONE je potvrzeno po dokončení první fáze konfigurace registru. V této fázi se konfiguruje systém SERDESIF a registry jízdních pruhů. Pokud je SERDESIF nakonfigurován v režimu bez PCIE, je okamžitě aktivován také signál CONFIG2_DONE. - Následuje druhá fáze konfigurace registru (pokud je SERDESIF konfigurován v režimu PCIE). Následující jsou různé události, ke kterým dochází ve druhé fázi:
– CoreResetP deaktivuje signály PHY_RESET_N a CORE_RESET_N odpovídající každému z použitých bloků SERDESIF. Také aktivuje výstupní signál SDIF_RELEASED poté, co jsou všechny bloky SERDESIF mimo reset. Tento signál SDIF_RELEASED se používá k indikaci CoreConfigP, že jádro SERDESIF je mimo reset a je připraveno na druhou fázi konfigurace registru.
– Jakmile je potvrzen signál SDIF_RELEASED, funkce SystemInit() spustí dotaz na potvrzení PMA_READY na příslušné dráze SERDESIF. Jakmile je potvrzeno PMA_READY, druhá sada registrů SERDESIF (registry PCIE) je konfigurována/zapsána funkcí SystemInit(). - Poté, co jsou nakonfigurovány všechny registry PCIE, funkce SystemInit() zapíše do řídicích registrů CoreConfigP, aby indikovala dokončení druhé fáze konfigurace registrů; poté se aktivuje výstupní signál CoreConfigP CONIG2_DONE.
- Kromě výše uvedených potvrzení/odhlášení signálu CoreResetP také spravuje inicializaci různých bloků prováděním následujících funkcí:
– Odvolání resetu jádra FDDR
– Odvolání bloků SERDESIF PHY a CORE se resetuje
– Monitorování zamykacího signálu FDDR PLL (FPLL). FPLL musí být uzamčen, aby bylo zaručeno, že datové rozhraní FDDR AXI/AHBLite a FPGA mohou správně komunikovat.
– Monitorování blokovacích signálů PLL (SPLL) bloku SERDESIF. SPLL musí být uzamčen, aby bylo zaručeno, že rozhraní AXI/AHBLite bloků SERDESIF (režim PCIe) nebo rozhraní XAUI může správně komunikovat s tkaninou FPGA.
– Čekání, až se externí paměti DDR usadí a budou připraveny k přístupu řadičů DDR. - Když všechna periferní zařízení dokončí svou inicializaci, CoreResetP potvrdí signál INIT_DONE; pak je potvrzen interní registr CoreConfigP INIT_DONE.
Pokud je použita jedna nebo obě MDDR/FDDR a je dosaženo času inicializace DDR, je aktivován výstupní signál CoreResetP DDR_READY. Uplatnění tohoto signálu DDR_READY může být monitorováno jako indikace, že DDR (MDDR/FDDR) je připravena ke komunikaci.
Pokud je použit jeden nebo více bloků SERDESIF a druhá fáze konfigurace registru je úspěšně dokončena, je uplatněn výstupní signál CoreResetP SDIF_READY. Uplatnění tohoto signálu SDIF_READY může být monitorováno jako indikace, že všechny SERDESIF bloky jsou připraveny ke komunikaci. - Funkce SystemInit(), která čekala na potvrzení INIT_DONE, se dokončí a spustí se funkce main() aplikace. V té době jsou všechny používané DDR řadiče a SERDESIF bloky inicializovány a aplikace firmwaru a FPGA fabric logika s nimi dokáže spolehlivě komunikovat.
Metodika popsaná v tomto dokumentu se opírá o to, že Cortex-M3 provádí inicializační proces jako součást inicializačního kódu systému spouštěného před funkcí main() aplikace.
Viz vývojové diagramy na obrázku 1-1, obrázku 1-2 a obrázku 1-3 pro kroky inicializace FDDR/MDDR, SEREDES (režim bez PCIe) a SERDES (režim PCIe).
Obrázek 1-4 ukazuje časový diagram inicializace periferie.
![]() |
![]() |
Obrázek 1-3 • Vývojový diagram inicializace SERDESIF (PCIe).
Postup inicializace popsaný v tomto dokumentu vyžaduje, abyste během procesu inicializace spustili Cortex-M3, a to i v případě, že na Cortex-M3 neplánujete spouštět žádný kód. Musíte vytvořit základní aplikaci firmwaru, která nic nedělá (jednoduchá smyčka, napřample) a načtěte tento spustitelný soubor do vestavěné nevolatilní paměti (eNVM), aby byly řadiče DDR a bloky SERDESIF inicializovány při bootování Cortex-M3.
Použití System Builder k vytvoření návrhu pomocí bloků DDR a SERDESIF
SmartFusion2 System Builder je výkonný návrhářský nástroj, který vám pomůže zachytit požadavky na systémové úrovni a vytvoří návrh, který tyto požadavky implementuje. Velmi důležitou funkcí System Builderu je automatické vytváření podsystému Peripheral Initialization. „Použití SmartDesign k vytvoření návrhu pomocí bloků DDR a SERDESIF“ na stránce 17 podrobně popisuje, jak vytvořit takové řešení bez Tvůrce systému.
Pokud používáte System Builder, musíte provést následující úkoly, abyste vytvořili návrh, který inicializuje vaše řadiče DDR a bloky SERDESIF při zapnutí:
- Na stránce Funkce zařízení (Obrázek 2-1) určete, které řadiče DDR se používají a kolik bloků SERDESIF je ve vašem návrhu použito.
- Na stránce Paměť zadejte typ DDR (DDR2/DDR3/LPDDR) a konfigurační data pro vaše externí paměti DDR. Podrobnosti naleznete v části Stránka paměti.
- Na stránce Peripherals přidejte matrice tkaniny nakonfigurované jako AHBLite/AXI do Fabric DDR Subsystem a/nebo MSS DDR FIC Subsystem (volitelné).
- Na stránce Nastavení hodin zadejte hodinové frekvence pro podsystémy DDR.
- Dokončete specifikaci návrhu a klikněte na Dokončit. Tím se vygeneruje návrh vytvořený v System Builder, včetně logiky nezbytné pro „inicializační“ řešení.
- Pokud používáte bloky SERDESIF, musíte ve svém návrhu vytvořit instanci bloků SERDESIF a propojit jejich inicializační porty s porty jádra generovaného v System Builder.
Stránka Funkce zařízení Tvůrce systému
Na stránce Funkce zařízení určete, které řadiče DDR (MDDR a/nebo FDDR) se používají a kolik bloků SERDESIF je použito ve vašem návrhu (obrázek 2-1).
Obrázek 2-1 • Stránka Funkce zařízení Tvůrce systému
Stránka paměti Tvůrce systému
Chcete-li použít MSS DDR (MDDR) nebo Fabric DDR (FDDR), vyberte typ paměti z rozevíracího seznamu (obrázek 2-2).
Obrázek 2-2 • Externí paměť MSS
Musíte:
- Vyberte typ DDR (DDR2, DDR3 nebo LPDDR).
- Definujte dobu ustálení paměti DDR. Chcete-li nastavit správný čas nastavení paměti, přečtěte si specifikace externí paměti DDR. Paměť DDR se nemusí správně inicializovat, pokud není správně nastavena doba ustálení paměti.
- Buď importujte konfigurační data registru DDR, nebo nastavte parametry paměti DDR. Podrobnosti viz Uživatelská příručka pro vysokorychlostní sériové a DDR rozhraní Microsemi SmartFusion2.
Tato data se používají ke generování registru DDR BFM a konfiguraci firmwaru filejak je popsáno v části „Vytvoření a kompilace firmwarové aplikace“ na straně 26 a „BFM Files Používá se pro simulaci návrhu“ na stránce 27. Podrobnosti o registrech konfigurace řadiče DDR viz Uživatelská příručka pro vysokorychlostní sériová a DDR rozhraní Microsemi SmartFusion2.
Bývalýample konfigurace file syntaxe je znázorněna na obrázku 2-3. Jména registrů použitá v tomto file jsou stejné jako ty popsané v Uživatelská příručka pro vysokorychlostní sériové a DDR rozhraní Microsemi SmartFusion2
Obrázek 2-3 • Konfigurace File Syntaxe Přample
Stránka s periferiemi Tvůrce systému
Na stránce Peripherals je pro každý řadič DDR vytvořen samostatný subsystém (Fabric DDR Subsystem pro FDDR a MSS DDR FIC Subsystem pro MDDR). Ke každému z těchto subsystémů můžete přidat jádro Fabric AMBA Master (konfigurované jako AXI/AHBLite), abyste umožnili hlavnímu zařízení přístup k řadičům DDR. Po generování System Builder automaticky vytvoří instanci jader sběrnice (v závislosti na typu přidaného AMBA Master) a vystaví hlavní BIF jádra sběrnice a taktovací a resetovací kolíky odpovídajících subsystémů (FDDR/MDDR) pod vhodnými skupinami pinů. horní. Jediné, co musíte udělat, je připojit BIFy k příslušným jádrům Fabric Master, které byste v návrhu vytvořili. V případě MDDR je volitelné přidat jádro Fabric AMBA Master do MSS DDR FIC Subsystému; Cortex-M3 je výchozí master na tomto subsystému. Obrázek 2-4 ukazuje stránku System Builder Peripherals.
Obrázek 2-4 • Stránka s periferiemi nástroje System Builder
Stránka nastavení hodin nástroje System Builder
Na stránce Nastavení hodin pro každý řadič DDR musíte určit hodinové frekvence související s každým podsystémem DDR (MDDR a/nebo FDDR).
Pro MDDR musíte zadat:
- MDDR_CLK – Tyto hodiny určují provozní frekvenci řadiče DDR a měly by odpovídat frekvenci hodin, na které chcete, aby vaše externí paměť DDR běžela. Tyto hodiny jsou definovány jako násobek M3_CLK (Cortex-M3 a MSS Main Clock, obrázek 2-5). MDDR_CLK musí být nižší než 333 MHz.
- DDR_FIC_CLK – Pokud jste zvolili také přístup k MDDR z struktury FPGA, musíte zadat DDR_FIC_CLK. Tato frekvence hodin je definována jako poměr MDDR_CLK a měla by odpovídat frekvenci, na které běží subsystém tkaniny FPGA, který přistupuje k MDDR.
Obrázek 2-5 • Hlavní hodiny Cortex-M3 a MSS; Hodiny MDDR
Pro FDDR musíte zadat:
- FDDR_CLK – Určuje provozní frekvenci řadiče DDR a měla by odpovídat hodinové frekvenci, se kterou chcete, aby externí paměť DDR běžela. Všimněte si, že tyto hodiny jsou definovány jako násobek M3_CLK (hodiny MSS a Cortex-M3, obrázek 2-5). FDDR_CLK musí být v rozmezí 20 MHz a 333 MHz.
- FDDR_SUBSYSTEM_CLK – Tato frekvence hodin je definována jako poměr FDDR_CLK a měla by odpovídat frekvenci, na které běží subsystém FPGA, který přistupuje k FDDR.
Obrázek 2-6 • Látkové hodiny DDR
Konfigurace SERDESIF
Bloky SERDESIF nejsou vytvořeny v návrhu generovaném Tvůrcem systému. Pro všechny bloky SERDESIF jsou však inicializační signály dostupné na rozhraní jádra System Builder a lze je připojit k jádrům SERDESIF na další úrovni hierarchie, jak je znázorněno na obrázku 2-7.Obrázek 2-7 • Připojení periferní inicializace SERDESIF
Podobně jako konfigurační registry DDR má každý blok SERDES také konfigurační registry, které je třeba načíst za běhu. Tyto hodnoty registrů můžete buď importovat, nebo použít konfigurátor vysokorychlostního sériového rozhraní (obrázek 2-8) k zadání parametrů PCIe nebo EPCS a hodnoty registrů se automaticky vypočítají za vás. Podrobnosti viz Uživatelská příručka konfigurátoru SERDES.Obrázek 2-8 • Konfigurátor vysokorychlostního sériového rozhraní
Jakmile integrujete svou uživatelskou logiku s blokem System Builder a SERDES, můžete vygenerovat svůj SmartDesign nejvyšší úrovně. To generuje všechny HDL a BFM filekteré jsou nezbytné k implementaci a simulaci vašeho návrhu. Poté můžete pokračovat se zbytkem Design Flow.
Použití SmartDesign k vytvoření návrhu pomocí bloků DDR a SERDESIF
Tato část popisuje, jak sestavit kompletní řešení „inicializace“ bez použití nástroje SmartFusion2 System Builder. Cílem je pomoci vám pochopit, co musíte udělat, pokud nechcete používat System Builder. Tato část také popisuje, co pro vás nástroj System Builder skutečně generuje. Tato část popisuje, jak:
- Zadejte konfigurační data pro řadič DDR a konfigurační registry SERDESIF.
- Vytvořte a připojte Fabric Cores potřebná k přenosu konfiguračních dat do řadičů DDR a konfiguračních registrů SERDESIF.
Konfigurace řadiče DDR
Řadiče MSS DDR (MDDR) a Fabric DDR (FDDR) musí být konfigurovány dynamicky (za běhu), aby odpovídaly požadavkům na konfiguraci externí paměti DDR (režim DDR, šířka PHY, režim burst, ECC atd.). Data zadaná v konfigurátoru MDDR/FDDR se zapisují do konfiguračních registrů řadiče DDR funkcí CMSIS SystemInit(). Konfigurátor má tři různé karty pro zadávání různých typů konfiguračních dat:
- Obecná data (režim DDR, šířka dat, frekvence hodin, ECC, rozhraní tkaniny, síla disku)
- Data inicializace paměti (délka série, pořadí série, režim časování, latence atd.)
- Data časování paměti
Podívejte se na specifikace vaší externí paměti DDR a nakonfigurujte řadič DDR tak, aby odpovídal požadavkům vaší externí paměti DDR.
Podrobnosti o konfiguraci DDR viz Uživatelská příručka pro konfiguraci SmartFusion2 MSS DDR.
Konfigurace SERDESIF
Poklepáním na blok SERDES na plátně SmartDesign otevřete konfigurátor pro konfiguraci SERDES (obrázek 3-1). Tyto hodnoty registrů můžete buď importovat, nebo použít konfigurátor SERDES k zadání parametrů PCIe nebo EPCS a hodnoty registrů se automaticky vypočítávají za vás. Podrobnosti viz Uživatelská příručka konfigurátoru SERDES.Obrázek 3-1 • Konfigurátor vysokorychlostního sériového rozhraní
Vytvoření podsystému inicializace návrhu FPGA
Chcete-li inicializovat bloky DDR a SERDESIF, musíte vytvořit inicializační subsystém ve struktuře FPGA. Inicializační subsystém FPGA fabric přesouvá data z Cortex-M3 do konfiguračních registrů DDR a SERDESIF, řídí resetovací sekvence potřebné pro fungování těchto bloků a signalizuje, kdy jsou tyto bloky připraveny komunikovat se zbytkem vašeho návrhu. Chcete-li vytvořit inicializační subsystém, musíte:
- Nakonfigurujte FIC_2 uvnitř MSS
- Vytvořte a nakonfigurujte jádra CoreConfigP a CoreResetP
- Spusťte RC oscilátor 25/50 MHz na čipu
- Okamžitě spusťte makro System Reset (SYSRESET).
- Připojte tyto komponenty ke konfiguračním rozhraním, hodinám, resetům a PLL lock portům každé periferie
Konfigurace MSS FIC_2 APB
Konfigurace MSS FIC_2:
- Otevřete dialogové okno konfigurátoru FIC_2 z konfigurátoru MSS (obrázek 3-2).
- Vyberte Inicializovat periferní zařízení pomocí Cortex-M3.
- V závislosti na vašem systému zaškrtněte jedno nebo obě z následujících políček:
– MSS DDR
– Tkaninové bloky DDR a/nebo SERDES - Klikněte na OK a pokračujte ve vygenerování MSS (tuto akci můžete odložit, dokud MSS plně nenakonfigurujete podle vašich návrhových požadavků). Porty FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK a FIC_2_APB_M_RESET_N) jsou nyní vystaveny na rozhraní MSS a lze je připojit k jádrům CoreConfigP a CoreResetP.
Obrázek 3-2 • Konfigurátor MSS FIC_2
CoreConfigP
Konfigurace CoreConfigP:
- Instanciujte CoreConfigP do svého SmartDesignu (obvykle do toho, kde je vytvořena instance MSS).
Toto jádro lze nalézt v katalogu Libero (v části Periferie). - Poklepáním na jádro otevřete konfigurátor.
- Nakonfigurujte jádro, abyste určili, které periferie je třeba inicializovat (obrázek 3-3)
Obrázek 3-3 • Dialogové okno CoreConfigP
CoreResetP
Konfigurace CoreResetP:
- Instantujte CoreResetP do svého SmartDesignu (obvykle do toho, kde je vytvořena instance MSS).
Toto jádro lze nalézt v katalogu Libero v části Periferní zařízení. - Poklepáním na jádro uvnitř SmartDesign Canvas otevřete konfigurátor (obrázek 3-4).
- Nakonfigurujte jádro na:
– Určete chování externího resetu (vyžadováno EXT_RESET_OUT). Vyberte jednu ze čtyř možností:
o EXT_RESET_OUT není nikdy potvrzeno
o EXT_RESET_OUT je uplatněno, pokud je uplatněn reset po zapnutí (POWER_ON_RESET_N)
o EXT_RESET_OUT je uplatněno, pokud je uplatněno FAB_RESET_N
o EXT_RESET_OUT je uplatněno, pokud je aktivován reset po zapnutí (POWER_ON_RESET_N) nebo FAB_RESET_N
– Zadejte objem zařízenítagE. Zvolená hodnota by měla odpovídat objemutage jste vybrali v dialogovém okně Libero Project Settings.
– Zaškrtnutím příslušných políček označte, které periferie používáte ve svém návrhu.
– Zadejte čas nastavení externí paměti DDR. Toto je maximální hodnota pro všechny paměti DDR používané ve vaší aplikaci (MDDR a FDDR). Informace o konfiguraci tohoto parametru naleznete v datovém listu dodavatele externí paměti DDR. 200us je dobrá výchozí hodnota pro paměti DDR2 a DDR3 běžící na 200 MHz. To je velmi důležitý parametr pro zaručení funkční simulace a fungujícího systému na křemíku. Nesprávná hodnota doby ustálení může způsobit chyby simulace. Informace o konfiguraci tohoto parametru naleznete v datovém listu dodavatele paměti DDR.
– U každého bloku SERDES ve vašem návrhu zaškrtněte příslušná políčka, abyste uvedli, zda:
o Používá se PCIe
o Je vyžadována podpora PCIe Hot Reset
o Je vyžadována podpora pro PCIe L2/P2
Poznámka: Pokud používáte matrici 090 (M2S090) a váš návrh používá SERDESIF, nemusíte zaškrtávat žádné z následujících políček: 'Used for PCIe', 'Include PCIe HotReset support' a 'Include PCIe L2/P2 support'. Pokud používáte jakékoli jiné zařízení než 090 a používáte jeden nebo více bloků SERDESIF, musíte zaškrtnout všechna čtyři políčka v příslušné sekci SERDESIF.
Poznámka: Podrobnosti o možnostech, které máte v tomto konfigurátoru k dispozici, naleznete v příručce CoreResetP Handbook.
Obrázek 3-4 • CoreResetPConfigurator
Instanci oscilátoru 25/50 MHz
CoreConfigP a CoreResetP jsou taktovány na čipu 25/50MHz RC oscilátorem. Musíte vytvořit instanci 25/50MHz oscilátoru a připojit jej k těmto jádrům.
- Instantujte jádro čipových oscilátorů do svého SmartDesignu (obvykle do toho, kde je vytvořena instance MSS). Toto jádro lze nalézt v katalogu Libero v části Clock & Management.
- Nakonfigurujte toto jádro tak, aby RC oscilátor řídil tkaninu FPGA, jak je znázorněno na obrázku 3-5.
Obrázek 3-5 • Konfigurátor čipových oscilátorů
Okamžité obnovení systému (SYSRESET).
Makro SYSRESET poskytuje vašemu návrhu funkci resetování na úrovni zařízení. Výstupní signál POWER_ON_RESET_N je uplatněn/deaktivován vždy, když je čip zapnut nebo je aktivován/deaktivován externí pin DEVRST_N (obrázek 3-6).
Vytvořte instanci makra SYSRESET do vašeho SmartDesignu (obvykle do toho, kde je vytvořena instance MSS). Toto makro lze nalézt v katalogu Libero v části Knihovna maker. Není nutná žádná konfigurace tohoto makra.
Obrázek 3-6 • Makro SYSRESET
Celková konektivita
Poté, co ve svém návrhu vytvoříte instanci a nakonfigurujete jádra MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP a CoreResetP, musíte je propojit a vytvořit subsystém periferní inicializace. Pro zjednodušení popisu konektivity v tomto dokumentu je rozdělena na konektivitu konfiguračních datových cest vyhovujících APB3 přidruženou k CoreConfigP a CoreResetP souvisejícím připojením.
Konektivita datové cesty konfigurace
Obrázek 3-7 ukazuje, jak připojit CoreConfigP k signálům MSS FIC_2 a konfiguračním rozhraním periferních zařízení vyhovujícím APB3.
Tabulka 3-1 • Konfigurační datová cesta Port/BIF připojení
Z Port/Bus rozhraní (BIF)/ Komponenta |
NA Port/Bus Interface (BIF)/Component |
||
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 |
Obrázek 3-7 • Konektivita podsystému FIC_2 APB3
Hodiny a resetování připojení
Obrázek 3-8 ukazuje, jak připojit CoreResetP k externím zdrojům resetování a signálům resetování jádra periferií. Také ukazuje, jak připojit CoreResetP k signálům stavu synchronizace hodin periferií (signály PLL lock). Kromě toho ukazuje, jak jsou CoreConfigP a CoreResetP propojeny.
Obrázek 3-8 • Připojení podsystému Core SF2Reset
Vytvoření a kompilace firmwarové aplikace
Když exportujete firmware z LiberoSoC (okno Design Flow > Export Firmware > Export Firmware), Libero vygeneruje následující files v /firmware/drivers_config/ složka sys_config:
- sys_config.c – Obsahuje datové struktury, které obsahují hodnoty pro periferní registry.
- sys_config.h – Obsahuje příkazy #define, které určují, které periferie jsou použity v návrhu a je třeba je inicializovat.
- sys_config_mddr_define.h – Obsahuje konfigurační data řadiče MDDR zadaná v dialogovém okně Konfigurace registrů.
- sys_config_fddr_define.h – Obsahuje konfigurační data řadiče FDDR zadaná v dialogovém okně Konfigurace registrů.
- sys_config_mss_clocks.h – Tohle file obsahuje hodinové frekvence MSS definované v konfigurátoru MSS CCC. Tyto frekvence používá kód CMSIS k poskytování správných informací o hodinách mnoha ovladačům MSS, které musí mít přístup ke své frekvenci periferních hodin (PCLK) (např. děliče přenosové rychlosti MSS UART jsou funkcí přenosové rychlosti a frekvence PCLK ).
- sys_config_SERDESIF_ .C – Obsahuje SERDESIF_ registrovat konfigurační data poskytnutá během SERDESIF_ konfigurace bloku při tvorbě návrhu.
- sys_config_SERDESIF_ .h – Obsahuje příkazy #define, které určují počet párů konfigurace registrů a číslo dráhy, která musí být dotazována na PMA_READY (pouze v režimu PCIe).
Tyto files jsou vyžadovány, aby se kód CMSIS správně zkompiloval a obsahoval informace týkající se vašeho aktuálního návrhu, včetně konfiguračních dat periferií a informací o konfiguraci hodin pro MSS.
Neupravujte je files ručně; jsou vytvářeny do odpovídajících adresářů komponent/periferií pokaždé, když jsou generovány komponenty SmartDesign obsahující příslušné periferie. Pokud dojde ke změnám v konfiguračních datech některého z periferních zařízení, musíte znovu exportovat projekty firmwaru, aby se aktualizovaný firmware files (viz seznam výše) jsou exportovány do / složka firmware/drivers_config/sys_config.
Při exportu firmwaru vytvoří Libero SoC projekty firmwaru: knihovnu, kde je vaše konfigurace návrhu files a ovladače jsou zkompilovány.
Pokud zaškrtnete políčko Vytvořit projekt zaškrtávacím políčku při exportu firmwaru se vytvoří projekt softwaru SoftConsole/IAR/Keil, který bude obsahovat projekt aplikace, kde můžete upravovat hlavní.c a uživatelské C/H files. Otevřete projekt SoftConSole/IAR/Keil, abyste správně zkompilovali kód CMSIS a měli aplikaci firmwaru správně nakonfigurovanou tak, aby odpovídala vašemu návrhu hardwaru.
BFM Files Používá se pro simulaci návrhu
Když generujete součásti SmartDesign obsahující periferie spojené s vaším návrhem, simulace files odpovídající příslušným periferiím jsou generovány v adresář /simulation:
- test.bfm – BFM nejvyšší úrovně file který je poprvé spuštěn během jakékoli simulace, která cvičí procesor SmartFusion2 MSS Cortex-M3. Provádí periferní_init.bfm a user.bfm v tomto pořadí.
- MDDR_init.bfm – Pokud váš návrh používá MDDR, Libero jej vygeneruje file; obsahuje příkazy zápisu BFM, které simulují zápis dat konfiguračního registru MSS DDR, který jste zadali (pomocí dialogového okna Upravit registry nebo v GUI MSS_MDDR) do registrů řadiče MSS DDR.
- FDDR_init.bfm – Pokud váš návrh používá FDDR, Libero jej vygeneruje file; obsahuje příkazy zápisu BFM, které simulují zápisy dat konfiguračního registru Fabric DDR, které jste zadali (pomocí dialogového okna Upravit registry nebo v GUI FDDR) do registrů řadiče Fabric DDR.
- SERDESIF_ _init.bfm – Pokud váš návrh používá jeden nebo více bloků SERDESIF, Libero toto vygeneruje file pro každý ze SERDESIF_ použité bloky; obsahuje příkazy zápisu BFM, které simulují zápis dat konfiguračního registru SERDESIF, který jste zadali (pomocí dialogového okna Upravit registry nebo v SERDESIF_ GUI) do SERDESIF_ registrů. Pokud je blok SERDESIF nakonfigurován jako PCIe, toto file má také několik příkazů #define, které řídí provádění 2 fází konfigurace registru v dokonalém pořadí.
- user.bfm – Obsahuje uživatelské příkazy. Tyto příkazy se provádějí po dokončení periferie_init.bfm. Upravte toto file zadejte příkazy BFM.
- SERDESIF_ _user.bfm – Obsahuje uživatelské příkazy. Upravte toto file zadejte příkazy BFM. Použijte toto, pokud jste nakonfigurovali SERDESIF_ blok v režimu simulace BFM PCIe a jako master AXI/AHBLite. Pokud jste nakonfigurovali SERDESIF_ bloku v režimu simulace RTL, nebudete to potřebovat file.
Když pokaždé vyvoláte simulaci, následující dvě simulace files jsou znovu vytvořeny na /simulation adresář s aktualizovaným obsahem:
- subsystém.bfm – Obsahuje příkazy #define pro každou periferii použitou ve vašem návrhu, která specifikuje konkrétní sekci periferního_init.bfm, která má být provedena odpovídající každé periferii.
- operipheral_init.bfm – Obsahuje proceduru BFM, která emuluje funkci CMSIS:: SystemInit() spuštěnou na Cortex-M3 předtím, než zadáte proceduru main(). Zkopíruje konfigurační data jakékoli periferie použité v návrhu do správných konfiguračních registrů periferií a poté čeká, až budou všechny periferie připraveny, než potvrdí, že tyto periferie můžete používat. Provádí MDDR_init.bfm a FDDR_init.bfm.
Pomocí těchto vygenerovaných fileŘadiče DDR ve vašem návrhu jsou konfigurovány automaticky a simulují to, co by se stalo na zařízení SmartFusion2. Můžete upravit soubor user.bfm file přidat jakékoli příkazy potřebné k simulaci vašeho návrhu (Cortex-M3 je hlavní). Tyto příkazy se provádějí po inicializaci periferií. Neupravujte soubory test.bfm, subsystem.bfm, periferní_init.bfm, MDDR_init.bfm, FDDR_init.bfm files a SERDESIF_ _init.bfm files.
Podpora produktu
Microsemi SoC Products Group podporuje své produkty různými podpůrnými službami, včetně zákaznických služeb, zákaznického centra technické podpory, a webmísto, elektronickou poštu a celosvětové prodejní kanceláře.
Tento dodatek obsahuje informace o kontaktování Microsemi SoC Products Group a používání těchto služeb podpory.
Služby zákazníkům
Obraťte se na zákaznický servis pro netechnickou podporu produktu, jako je cena produktu, aktualizace produktu, informace o aktualizaci, stav objednávky a autorizace.
Ze Severní Ameriky, zavolejte 800.262.1060
Ze zbytku světa, zavolejte 650.318.4460
Fax odkudkoli na světě, 408.643.6913
Centrum zákaznické technické podpory
Microsemi SoC Products Group zaměstnává své centrum zákaznické technické podpory vysoce kvalifikovanými inženýry, kteří vám mohou pomoci zodpovědět vaše hardwarové, softwarové a konstrukční otázky týkající se produktů Microsemi SoC. Centrum zákaznické technické podpory tráví spoustu času vytvářením poznámek k aplikacím, odpovědí na běžné otázky cyklu návrhu, dokumentace známých problémů a různých často kladených otázek. Než nás tedy budete kontaktovat, navštivte naše online zdroje. Je velmi pravděpodobné, že jsme již zodpověděli vaše otázky.
Technická podpora
Navštivte zákaznickou podporu webweb (www.microsemi.com/soc/support/search/default.aspx) pro další informace a podporu. Mnoho odpovědí dostupných na vyhledávání web zdroj zahrnuje diagramy, ilustrace a spojení na jiné zdroje na webmísto.
Webmísto
Na domovské stránce SoC na adrese můžete procházet různé technické i netechnické informace www.microsemi.com/soc.
Kontaktování střediska technické podpory zákazníků
Středisko technické podpory zaměstnávají vysoce kvalifikovaní inženýři. Centrum technické podpory lze kontaktovat e-mailem nebo prostřednictvím skupiny produktů Microsemi SoC webmísto.
E-mail
Své technické dotazy můžete sdělit na naši e-mailovou adresu a získat odpovědi zpět e-mailem, faxem nebo telefonicky. Také, pokud máte problémy s návrhem, můžete svůj návrh poslat e-mailem files získat pomoc.
E-mailový účet neustále monitorujeme po celý den. Když nám zasíláte svůj požadavek, nezapomeňte uvést své celé jméno, název společnosti a své kontaktní údaje pro efektivní zpracování vašeho požadavku.
E-mailová adresa technické podpory je soc_tech@microsemi.com.
Moje případy
Zákazníci Microsemi SoC Products Group mohou předkládat a sledovat technické případy online na adrese Moje případy.
Mimo USA
Zákazníci, kteří potřebují pomoc mimo časová pásma USA, mohou kontaktovat technickou podporu prostřednictvím e-mailu (soc_tech@microsemi.com) nebo se obraťte na místní prodejní kancelář. Seznam prodejních kanceláří naleznete na www.microsemi.com/soc/company/contact/default.aspx.
Technická podpora ITAR
Pro technickou podporu na RH a RT FPGA, které jsou regulovány Mezinárodními předpisy pro obchod se zbraněmi (ITAR), nás kontaktujte prostřednictvím soc_tech_itar@microsemi.com. Případně v rámci My Cases vyberte Yes v rozevíracím seznamu ITAR. Pro úplný seznam ITAR-regulovaných Microsemi FPGA navštivte ITAR web strana.
Microsemi Corporation (NASDAQ: MSCC) nabízí komplexní portfolio polovodičových řešení pro: letectví, obrana a bezpečnost; podnikání a komunikace; a trhy s průmyslovými a alternativními energiemi. Produkty zahrnují vysoce výkonná, vysoce spolehlivá analogová a RF zařízení, integrované obvody se smíšeným signálem a RF, přizpůsobitelné SoC, FPGA a kompletní subsystémy. Microsemi má centrálu v Aliso Viejo v Kalifornii. Více informací na www.microsemi.com.
© 2014 Microsemi Corporation. Všechna práva vyhrazena. Microsemi a logo Microsemi jsou ochranné známky společnosti Microsemi Corporation. Všechny ostatní ochranné známky a servisní známky jsou majetkem příslušných vlastníků.
5-02-00384-1/08.14Sídlo společnosti Microsemi
One Enterprise, Aliso Viejo CA 92656 USA
V rámci USA: +1 949-380-6100
Prodej: +1 949-380-6136
Fax: +1 949-215-4996
Dokumenty / zdroje
![]() |
Ovladač Microsemi SmartFusion2 DDR a sériový vysokorychlostní ovladač [pdfUživatelská příručka SmartFusion2 DDR ovladač a sériový vysokorychlostní ovladač, SmartFusion2 DDR, ovladač a sériový vysokorychlostní ovladač, vysokorychlostní ovladač |