Logoja mikrosemiSmartFusion2
Kontrolluesi DDR dhe kontrolluesi serial i shpejtësisë së lartë
Metodologjia e Inicializimit
Udhëzues përdorimi

Hyrje

Kur krijoni një dizajn duke përdorur një pajisje SmartFusion2, nëse përdorni një nga dy kontrollorët DDR (FDDR ose MDDR) ose ndonjë nga blloqet e kontrolluesit me shpejtësi të lartë serike (SERDESIF), duhet të inicializoni regjistrat e konfigurimit të këtyre blloqeve në kohën e ekzekutimit përpara ato mund të përdoren. Për shembullampPër kontrolluesin DDR, duhet të vendosni modalitetin DDR (DDR3/DDR2/LPDDR), gjerësinë PHY, modalitetin e shpërthimit dhe ECC.
Në mënyrë të ngjashme, për bllokun SERDESIF të përdorur si pikë përfundimtare PCIe, duhet të vendosni PCIE BAR në dritaren AXI (ose AHB).
Ky dokument përshkruan hapat e nevojshëm për të krijuar një dizajn Libero që inicializon automatikisht kontrolluesin DDR dhe blloqet SERDESIF në momentin e ndezjes. Ai gjithashtu përshkruan se si të gjenerohet kodi i firmuerit nga Libero SOC që përdoret në rrjedhën e dizajnit të integruar.
Së pari jepet një përshkrim i detajuar i teorisë së operacioneve.
Seksioni tjetër përshkruan se si të krijoni një dizajn të tillë duke përdorur Libero SoC System Builder, një mjet i fuqishëm dizajni që, përveç veçorive të tjera, krijon zgjidhjen e 'initializimit' për ju nëse përdorni blloqe DDR ose SERDESIF në dizajnin tuaj.
Seksioni tjetër përshkruan se si të bashkoni një zgjidhje të plotë 'inicializimi' pa përdorur Ndërtuesin e Sistemit SmartFusion2. Kjo ndihmon për të shpjeguar se çfarë duhet bërë nëse nuk dëshironi të përdorni System Builder, dhe gjithashtu përshkruan se çfarë gjeneron në të vërtetë mjeti System Builder për ju. Ky seksion adreson:

  • Krijimi i të dhënave të konfigurimit për kontrolluesin DDR dhe regjistrat e konfigurimit SERDESIF
  • Krijimi i logjikës FPGA që kërkohet për të transferuar të dhënat e konfigurimit në regjistrat e ndryshëm të konfigurimit ASIC

Së fundi ne përshkruajmë të gjeneruar files lidhur me:

  • Krijimi i zgjidhjes së 'initializimit' të firmuerit.
  • Simulimi i dizajnit për zgjidhjen e 'initializimit' DDR.

Për detaje rreth kontrolluesit DDR dhe regjistrave të konfigurimit SERDESIF, referojuni Udhëzuesi i përdorimit të ndërfaqeve të serive me shpejtësi të lartë Microsemi SmartFusion2 dhe DDR.

Teoria e Operacionit

Zgjidhja e inicializimit periferik përdor komponentët kryesorë të mëposhtëm:

  • Funksioni CMSIS SystemInit(), i cili funksionon në Cortex-M3 dhe orkestron procesin e inicializimit.
  • Bërthama e butë IP CoreConfigP, e cila inicializon regjistrat e konfigurimit të pajisjeve periferike.
  • Bërthama e butë IP CoreResetP, e cila menaxhon sekuencën e rivendosjes së blloqeve MSS, DDR dhe SERDESIF.

Procesi i inicializimit periferik funksionon si më poshtë:

  1. Pas rivendosjes, Cortex-M3 ekzekuton funksionin CMSIS SystemInit(). Ky funksion ekzekutohet automatikisht përpara se të ekzekutohet funksioni main() i aplikacionit.
    Sinjali i daljes CoreResetP MSS_HPMS_READY pohohet në fillim të procesit të inicializimit, duke treguar që MSS dhe të gjitha pajisjet periferike (përveç MDDR) janë gati për komunikim.
  2. Funksioni SystemInit() shkruan të dhënat e konfigurimit te kontrollorët DDR dhe regjistrat e konfigurimit SERDESIF nëpërmjet autobusit MSS FIC_2 APB3. Kjo ndërfaqe është e lidhur me bërthamën e butë CoreConfigP të instancuar në strukturën FPGA.
  3. Pasi të konfigurohen të gjithë regjistrat, funksioni SystemInit() shkruan në regjistrat e kontrollit CoreConfigP për të treguar përfundimin e fazës së konfigurimit të regjistrit; më pas pohohen sinjalet dalëse CoreConfigP CONFIG1_DONE dhe CONIG2_DONE.
    Ekzistojnë dy faza të konfigurimit të regjistrit (CONFIG1 dhe CONFIG2) në varësi të pajisjeve periferike të përdorura në dizajn.
  4. Nëse përdoret një ose të dyja MDDR/FDDR dhe asnjë nga blloqet SERDESIF nuk përdoret në dizajn, ekziston vetëm një fazë e konfigurimit të regjistrit. Të dy sinjalet e daljes CoreConfigP CONFIG1_DONE dhe CONIG2_DONE pohohen njëri pas tjetrit pa asnjë pritje/vonesë.
    Nëse një ose më shumë blloqe SERDESIF në modalitetin jo-PCIe përdoren në dizajn, ekziston vetëm një fazë e konfigurimit të regjistrit. CONFIG1_DONE dhe CONIG2_DONE pohohen njëri pas tjetrit pa asnjë pritje/vonesë.
    Nëse një ose më shumë blloqe SERDESIF në modalitetin PCIe përdoren në dizajn, ekzistojnë dy faza të konfigurimit të regjistrit. CONFIG1_DONE pohohet pasi të përfundojë faza e parë e konfigurimit të regjistrit. Sistemi SERDESIF dhe regjistrat e korsive janë konfiguruar në këtë fazë. Nëse SERDESIF është konfiguruar në një modalitet jo-PCIE, sinjali CONFIG2_DONE pohohet gjithashtu menjëherë.
  5. Më pas vijon faza e dytë e konfigurimit të regjistrit (nëse SERDESIF është konfiguruar në modalitetin PCIE). Më poshtë janë ngjarjet e ndryshme që ndodhin në fazën e dytë:
    – CoreResetP heq sinjalet PHY_RESET_N dhe CORE_RESET_N që korrespondojnë me secilin prej blloqeve SERDESIF të përdorur. Ai gjithashtu pohon një sinjal dalës SDIF_RELEASED pasi të gjitha blloqet SERDESIF janë jashtë rivendosjes. Ky sinjal SDIF_RELEASED përdoret për t'i treguar CoreConfigP se bërthama SERDESIF është jashtë rivendosjes dhe është gati për fazën e dytë të konfigurimit të regjistrit.
    – Pasi të vendoset sinjali SDIF_RELEASED, funksioni SystemInit() fillon votimin për pohimin e PMA_READY në korsinë e duhur SERDESIF. Pasi të jetë pohuar PMA_READY, grupi i dytë i regjistrave SERDESIF (regjistrat PCIE) konfigurohen/shkruhen nga funksioni SystemInit().
  6. Pasi të konfigurohen të gjithë regjistrat PCIE, funksioni SystemInit() shkruan në regjistrat e kontrollit CoreConfigP për të treguar përfundimin e fazës së dytë të konfigurimit të regjistrit; më pas pohohet sinjali dalës CoreConfigP CONIG2_DONE.
  7. Përveç pohimeve/de-pohimeve të sinjalit të mësipërm, CoreResetP menaxhon gjithashtu inicializimin e blloqeve të ndryshme duke kryer funksionet e mëposhtme:
    – De-pohimi i rivendosjes së bërthamës FDDR
    – De-pohimi i SERDESIF bllokon rivendosjen e PHY dhe CORE
    – Monitorimi i sinjalit të kyçjes FDDR PLL (FPLL). FPLL duhet të jetë i kyçur për të garantuar që ndërfaqja e të dhënave FDDR AXI/AHBLite dhe fabrika FPGA mund të komunikojnë saktë.
    – Monitorimi i sinjaleve të bllokimit të bllokut SERDESIF PLL (SPLL). SPLL duhet të jetë i kyçur për të garantuar që ndërfaqja e blloqeve SERDESIF AXI/AHBLite (modaliteti PCIe) ose ndërfaqja XAUI mund të komunikojë siç duhet me strukturën FPGA.
    – Në pritje që memoriet e jashtme DDR të vendosen dhe të jenë gati për t'u aksesuar nga kontrollorët DDR.
  8. Kur të gjithë pajisjet periferike të kenë përfunduar inicializimin e tyre, CoreResetP pohon sinjalin INIT_DONE; më pas pohohet regjistri i brendshëm CoreConfigP INIT_DONE.
    Nëse përdoret një ose të dyja MDDR/FDDR dhe arrihet koha e inicializimit të DDR, sinjali i daljes CoreResetP DDR_READY pohohet. Pohimi i këtij sinjali DDR_READY mund të monitorohet si një tregues që DDR (MDDR/FDDR) është gati për komunikim.
    Nëse përdoren një ose më shumë blloqe SERDESIF dhe faza e dytë e konfigurimit të regjistrit përfundon me sukses, sinjali i daljes CoreResetP SDIF_READY pohohet. Pohimi i këtij sinjali SDIF_READY mund të monitorohet si një tregues që të gjitha blloqet SERDESIF janë gati për komunikim.
  9. Funksioni SystemInit(), i cili ka pritur që të pohohet INIT_DONE, përfundon dhe funksioni main() i aplikacionit ekzekutohet. Në atë kohë, të gjithë kontrollorët e përdorur DDR dhe blloqet SERDESIF janë inicializuar dhe aplikacioni i firmuerit dhe logjika e pëlhurës FPGA mund të komunikojnë me besueshmëri me ta.

Metodologjia e përshkruar në këtë dokument mbështetet në ekzekutimin e procesit të inicializimit nga Cortex-M3 si pjesë e kodit të inicializimit të sistemit të ekzekutuar përpara funksionit kryesor() të aplikacionit.
Shih grafikët e rrjedhës në Figurën 1-1, Figura 1-2 dhe Figurën 1-3 për hapat e inicializimit të FDDR/MDDR, SEREDES (modaliteti jo PCIe) dhe SERDES (modaliteti PCIe).
Figura 1-4 tregon një diagram kohor të inicimit periferik.

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - diagrami i kohës 1 Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - diagrami i kohës 2

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - diagrami i kohës 3Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - diagrami i kohës 4Figura 1-3 • Grafiku i rrjedhës së inicimit të SERDESIF (PCIe).
Procedura e inicializimit e përshkruar në këtë dokument kërkon që të ekzekutoni Cortex-M3 gjatë procesit të inicializimit, edhe nëse nuk planifikoni të ekzekutoni ndonjë kod në Cortex-M3. Ju duhet të krijoni një aplikacion bazë firmware që nuk bën asgjë (një lak i thjeshtë, p.shample) dhe ngarkoni atë të ekzekutueshëm në memorien e integruar të paqëndrueshme (eNVM) kështu që kontrollorët DDR dhe blloqet SERDESIF inicializohen kur niset Cortex-M3.

Përdorimi i Ndërtuesit të Sistemit për të krijuar një dizajn duke përdorur blloqe DDR dhe SERDESIF

Ndërtuesi i Sistemit SmartFusion2 është një mjet i fuqishëm projektimi që ju ndihmon të kapni kërkesat tuaja të nivelit të sistemit dhe prodhon një dizajn që i zbaton ato kërkesa. Një funksion shumë i rëndësishëm i System Builder është krijimi automatik i nënsistemit të Inicializimit Periferik. "Përdorimi i SmartDesign për të krijuar një dizajn duke përdorur blloqe DDR dhe SERDESIF" në faqen 17 përshkruan në detaje se si të krijosh një zgjidhje të tillë pa Ndërtuesin e Sistemit.
Nëse jeni duke përdorur System Builder, duhet të kryeni detyrat e mëposhtme për të krijuar një dizajn që inicializon kontrollorët tuaj DDR dhe blloqet SERDESIF në ndezje:

  1. Në faqen Veçoritë e pajisjes (Figura 2-1), specifikoni se cilët kontrollues DDR përdoren dhe sa blloqe SERDESIF përdoren në dizajnin tuaj.
  2. Në faqen e kujtesës, specifikoni llojin e DDR (DDR2/DDR3/LPDDR) dhe të dhënat e konfigurimit për memoriet tuaja të jashtme DDR. Shikoni seksionin Faqja e kujtesës për detaje.
  3. Në faqen "Periferikët", shtoni masterat e rrobave të konfiguruara si AHBLite/AXI në nënsistemin DDR Fabric dhe/ose nënsistemin MSS DDR FIC (opsionale).
  4. Në faqen Cilësimet e orës, specifikoni frekuencat e orës për nën-sistemet DDR.
  5. Plotësoni specifikimet tuaja të dizajnit dhe klikoni Finish. Kjo gjeneron dizajnin e krijuar nga System Builder, duke përfshirë logjikën e nevojshme për zgjidhjen e 'initializimit'.
  6. Nëse jeni duke përdorur blloqe SERDESIF, duhet të instantoni blloqet SERDESIF në dizajnin tuaj dhe të lidhni portat e tyre të inicializimit me ato të bërthamës së krijuar nga System Builder.

Faqja e veçorive të pajisjes së ndërtuesit të sistemit
Në faqen Veçoritë e pajisjes, specifikoni se cilët kontrollues DDR (MDDR dhe/ose FDDR) përdoren dhe sa blloqe SERDESIF përdoren në dizajnin tuaj (Figura 2-1).

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Faqja e veçorive të pajisjesFigura 2-1 • Faqja e veçorive të pajisjes së ndërtuesit të sistemit

Faqja e kujtesës së ndërtuesit të sistemit
Për të përdorur MSS DDR (MDDR) ose Fabric DDR (FDDR), zgjidhni llojin e kujtesës nga lista rënëse (Figura 2-2).

Kontrollues Microsemi SmartFusion2 DDR dhe kontrollues serial me shpejtësi të lartë - Memorie e jashtmeFigura 2-2 • Memoria e jashtme MSS

Ju duhet:

  1. Zgjidhni llojin DDR (DDR2, DDR3 ose LPDDR).
  2. Përcaktoni kohën e rregullimit të memories DDR. Konsultohuni me specifikimet tuaja të jashtme të memories DDR për të vendosur kohën e duhur të cilësimit të kujtesës. Memoria DDR mund të dështojë të inicializohet siç duhet nëse koha e rregullimit të memories nuk është caktuar saktë.
  3. Ose importoni të dhënat e konfigurimit të regjistrit DDR ose vendosni parametrat e memories DDR. Për detaje, referojuni Udhëzuesi i përdorimit të ndërfaqeve të serive me shpejtësi të lartë Microsemi SmartFusion2 dhe DDR.

Këto të dhëna përdoren për të gjeneruar BFM të regjistrit DDR dhe konfigurimin e firmuerit files siç përshkruhet në "Krijimi dhe përpilimi i aplikacionit të firmuerit" në faqen 26 dhe "BFM Files Përdoret për simulimin e dizajnit” në faqen 27. Për detaje mbi regjistrat e konfigurimit të kontrolluesit DDR, referojuni Udhëzuesi i përdorimit të ndërfaqeve të serive me shpejtësi të lartë Microsemi SmartFusion2 dhe DDR.
Një ishample të konfigurimit file sintaksa është paraqitur në figurën 2-3. Emrat e regjistrit të përdorur në këtë file janë të njëjta me ato të përshkruara në Udhëzuesi i përdorimit të ndërfaqeve të serive me shpejtësi të lartë Microsemi SmartFusion2 dhe DDR

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - File Sintaksa PshampleFigura 2-3 • Konfigurimi File Sintaksa Pshample
Faqja e pajisjeve periferike të ndërtuesit të sistemit
Në faqen Peripherals, për çdo kontrollues DDR krijohet një nënsistem i veçantë (Fabric DDR Subsystem për FDDR dhe MSS DDR FIC Subsystem për MDDR). Ju mund të shtoni një bërthamë Fabric AMBA Master (të konfiguruar si AXI/AHBLite) në secilin prej këtyre nënsistemeve për të mundësuar aksesin master të rrobave te kontrollorët DDR. Pas gjenerimit, System Builder instantizon automatikisht bërthamat e autobusit (në varësi të llojit të Masterit AMBA të shtuar) dhe ekspozon BIF-in kryesor të bërthamës së autobusit dhe kunjat e orës dhe të rivendosjes së nënsistemeve përkatëse (FDDR/MDDR) nën grupet e duhura pine, krye. E tëra çfarë ju duhet të bëni është të lidhni BIF-të me bërthamat e duhura Fabric Master që do të përdornit në dizajn. Në rastin e MDDR, është opsionale të shtoni një bërthamë Fabric AMBA Master në nënsistemin MSS DDR FIC; Cortex-M3 është një master i paracaktuar në këtë nënsistem. Figura 2-4 tregon faqen Periferike të Ndërtuesit të Sistemit.

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Faqja e pajisjeve periferike të ndërtuesitFigura 2-4 • Faqja Periferike e Ndërtuesit të Sistemit

Faqja e cilësimeve të orës së ndërtuesit të sistemit
Në faqen e cilësimeve të orës, për çdo kontrollues DDR, duhet të specifikoni frekuencat e orës që lidhen me secilin nënsistem DDR (MDDR dhe/ose FDDR).
Për MDDR, duhet të specifikoni:

  • MDDR_CLK – Kjo orë përcakton frekuencën e funksionimit të kontrolluesit DDR dhe duhet të përputhet me frekuencën e orës në të cilën dëshironi të funksionojë memoria juaj e jashtme DDR. Kjo orë është përcaktuar si një shumëfish i M3_CLK (Cortex-M3 dhe MSS Main Clock, Figura 2-5). MDDR_CLK duhet të jetë më pak se 333 MHz.
  • DDR_FIC_CLK – Nëse keni zgjedhur të aksesoni gjithashtu MDDR nga pëlhura FPGA, duhet të specifikoni DDR_FIC_CLK. Kjo frekuencë e orës përcaktohet si raporti i MDDR_CLK dhe duhet të përputhet me frekuencën në të cilën funksionon nënsistemi i pëlhurës FPGA që akseson MDDR.

Kontrollues Microsemi SmartFusion2 DDR dhe kontrollues serial me shpejtësi të lartë - Orë MDDRFigura 2-5 • Ora kryesore Cortex-M3 dhe MSS; Orë MDDR

Për FDDR, duhet të specifikoni:

  • FDDR_CLK – Përcakton frekuencën e funksionimit të kontrolluesit DDR dhe duhet të përputhet me frekuencën e orës në të cilën dëshironi të funksionojë memoria juaj e jashtme DDR. Vini re se kjo orë është përcaktuar si një shumëfish i M3_CLK (ora MSS dhe Cortex-M3, Figura 2-5). FDDR_CLK duhet të jetë brenda 20 MHz dhe 333 MHz.
  • FDDR_SUBSYSTEM_CLK – Kjo frekuencë e orës përcaktohet si një raport i FDDR_CLK dhe duhet të përputhet me frekuencën në të cilën funksionon nënsistemi i pëlhurës FPGA që akseson FDDR.

Kontrollues Microsemi SmartFusion2 DDR dhe kontrollues serial me shpejtësi të lartë - Orë DDR prej pëlhureFigura 2-6 • Orë DDR prej pëlhure
Konfigurimi SERDESIF
Blloqet SERDESIF nuk instantohen në dizajnin e krijuar nga System Builder. Megjithatë, për të gjitha blloqet SERDESIF, sinjalet e inicializimit janë të disponueshme në ndërfaqen e bërthamës së Ndërtuesit të Sistemit dhe mund të lidhen me bërthamat SERDESIF në nivelin tjetër të hierarkisë, siç tregohet në figurën 2-7.Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Lidhshmëria e inicializimit periferikFigura 2-7 • Lidhshmëria e inicializimit periferik SERDESIF
Ngjashëm me regjistrat e konfigurimit DDR, çdo bllok SERDES ka gjithashtu regjistra konfigurimi që duhet të ngarkohen në kohën e ekzekutimit. Ju ose mund t'i importoni këto vlera të regjistrit ose të përdorni konfiguruesin e ndërfaqes serike me shpejtësi të lartë (Figura 2-8) për të futur parametrat tuaj PCIe ose EPCS dhe vlerat e regjistrit llogariten automatikisht për ju. Për detaje, referojuni Udhëzuesi i përdoruesit të konfiguruesit SERDES.Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Konfiguruesi i ndërfaqes serikeFigura 2-8 • Konfiguruesi i ndërfaqes serike me shpejtësi të lartë
Pasi të keni integruar logjikën tuaj të përdoruesit me bllokun System Builder dhe bllokun SERDES, mund të gjeneroni SmartDesign të nivelit tuaj të lartë. Kjo gjeneron të gjitha HDL dhe BFM files që janë të nevojshme për të zbatuar dhe simuluar dizajnin tuaj. Më pas mund të vazhdoni me pjesën tjetër të Rrjedhës së Dizajnit.

Përdorimi i SmartDesign për të krijuar një dizajn duke përdorur blloqe DDR dhe SERDESIF

Ky seksion përshkruan se si të vendosni një zgjidhje të plotë 'inicializimi' pa përdorur Ndërtuesin e Sistemit SmartFusion2. Qëllimi është t'ju ndihmojë të kuptoni se çfarë duhet të bëni nëse nuk dëshironi të përdorni Sistemin Ndërtues. Ky seksion përshkruan gjithashtu se çfarë gjeneron në të vërtetë për ju mjeti System Builder. Ky seksion përshkruan se si të:

  • Futni të dhënat e konfigurimit për kontrolluesin DDR dhe regjistrat e konfigurimit SERDESIF.
  • Instantoni dhe lidhni Bërthamat Fabric që kërkohen për të transferuar të dhënat e konfigurimit te kontrollorët DDR dhe regjistrat e konfigurimit SERDESIF.

Konfigurimi i kontrolluesit DDR
Kontrollorët MSS DDR (MDDR) dhe Fabric DDR (FDDR) duhet të konfigurohen në mënyrë dinamike (në kohën e ekzekutimit) që të përputhen me kërkesat e konfigurimit të memories së jashtme DDR (modaliteti DDR, gjerësia PHY, modaliteti i shpërthimit, ECC, etj.). Të dhënat e futura në konfiguruesin MDDR/FDDR shkruhen në regjistrat e konfigurimit të kontrolluesit DDR nga funksioni CMSIS SystemInit(). Konfiguruesi ka tre skeda të ndryshme për futjen e llojeve të ndryshme të të dhënave të konfigurimit:

  • Të dhëna të përgjithshme (modaliteti DDR, Gjerësia e të dhënave, Frekuenca e orës, ECC, Ndërfaqja Fabric, Forca e Diskut)
  • Të dhënat e inicializimit të memories (Gjatësia e shpërthimit, Rendi i shpërthimit, Modaliteti i kohës, vonesa, etj.)
  • Të dhënat e kohës së kujtesës

Referojuni specifikimeve të memories tuaj të jashtme DDR dhe konfiguroni kontrolluesin DDR që të përputhet me kërkesat e memories tuaj të jashtme DDR.
Për detaje mbi konfigurimin DDR, referojuni Udhëzuesi i përdoruesit për konfigurimin e SmartFusion2 MSS DDR.
Konfigurimi SERDESIF
Klikoni dy herë mbi bllokun SERDES në kanavacën SmartDesign për të hapur Konfiguratorin për të konfiguruar SERDES (Figura 3-1). Ju ose mund t'i importoni këto vlera të regjistrit ose të përdorni konfiguruesin SERDES për të futur parametrat tuaj PCIe ose EPCS dhe vlerat e regjistrit llogariten automatikisht për ju. Për detaje, referojuni Udhëzuesi i përdoruesit të konfiguruesit SERDES.Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Konfiguruesi i ndërfaqes serike me shpejtësi të lartëFigura 3-1 • Konfiguruesi i ndërfaqes serike me shpejtësi të lartë
Krijimi i Nënsistemit të Inicializimit të Dizajnit FPGA
Për të inicializuar blloqet DDR dhe SERDESIF, duhet të krijoni nënsistemin e inicializimit në strukturën FPGA. Nënsistemi i inicializimit të pëlhurës FPGA zhvendos të dhënat nga Cortex-M3 në regjistrat e konfigurimit DDR dhe SERDESIF, menaxhon sekuencat e rivendosjes së kërkuar që këto blloqe të jenë funksionale dhe sinjalizon kur këto blloqe janë gati për të komunikuar me pjesën tjetër të dizajnit tuaj. Për të krijuar nënsistemin e inicializimit, duhet:

  • Konfiguro FIC_2 brenda MSS
  • Instantoni dhe konfiguroni bërthamat CoreConfigP dhe CoreResetP
  • Instantoni oshilatorin RC në çip 25/50 MHz
  • Instantoni makro "Rivendosja e sistemit" (SYSRESET).
  • Lidhni këta komponentë me ndërfaqet e konfigurimit të secilës pajisje periferike, orët, rivendosjet dhe portat e kyçjes PLL

Konfigurimi i MSS FIC_2 APB
Për të konfiguruar MSS FIC_2:

  1. Hapni kutinë e dialogut të konfiguruesit FIC_2 nga konfiguruesi MSS (Figura 3-2).
  2. Zgjidhni Inicializoni pajisjet periferike duke përdorur Cortex-M3.
  3. Në varësi të sistemit tuaj, kontrolloni një ose të dyja kutitë e mëposhtme:
    – MSS DDR
    – Pëlhura DDR dhe/ose blloqe SERDES
  4. Klikoni OK dhe vazhdoni të gjeneroni MSS (mund ta shtyni këtë veprim derisa të keni konfiguruar plotësisht MSS sipas kërkesave tuaja të projektimit). Portat FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK dhe FIC_2_APB_M_RESET_N) tani janë të ekspozuara në ndërfaqen MSS dhe mund të lidhen me bërthamat CoreConfigP dhe CoreResetP.

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Konfiguruesi MSS FIC 2Figura 3-2 • Konfiguruesi MSS FIC_2

CoreConfigP
Për të konfiguruar CoreConfigP:

  1. Instantoni CoreConfigP në SmartDesign-in tuaj (zakonisht ai ku instantohet MSS).
    Kjo bërthamë mund të gjendet në Katalogun Libero (nën Periferikët).
  2. Klikoni dy herë në bërthamë për të hapur konfiguruesin.
  3. Konfiguro thelbin për të specifikuar se cilat pajisje periferike duhet të inicializohen (Figura 3-3)

Kontrollues Microsemi SmartFusion2 DDR dhe kontrollues serial me shpejtësi të lartë - Kuti dialoguFigura 3-3 • Kutia e dialogut CoreConfigP

CoreResetP
Për të konfiguruar CoreResetP:

  1. Instantoni CoreResetP në SmartDesign tuaj (zakonisht ai ku është instancuar MSS).
    Kjo bërthamë mund të gjendet në Katalogun Libero, nën Periferikët.
  2. Klikoni dy herë në bërthamën brenda kanavacës SmartDesign për të hapur Konfiguratorin (Figura 3-4).
  3. Konfiguro thelbin në:
    – Specifikoni sjelljen e rivendosjes së jashtme (EXT_RESET_OUT pohohet). Zgjidhni një nga katër opsionet:
    o EXT_RESET_OUT nuk pohohet kurrë
    o EXT_RESET_OUT është pohuar nëse kërkohet rivendosja e ndezjes (POWER_ON_RESET_N)
    o EXT_RESET_OUT pohohet nëse pohohet FAB_RESET_N
    o EXT_RESET_OUT është pohuar nëse kërkohet rivendosja e ndezjes (POWER_ON_RESET_N) ose FAB_RESET_N
    – Specifikoni vëllimin e pajisjestage. Vlera e zgjedhur duhet të përputhet me vëllimintage keni zgjedhur në kutinë e dialogut Libero Project Settings.
    – Kontrolloni kutitë e duhura për të treguar se cilat pajisje periferike po përdorni në dizajnin tuaj.
    – Përcaktoni kohën e cilësimit të memories së jashtme DDR. Kjo është vlera maksimale për të gjitha memoriet DDR të përdorura në aplikacionin tuaj (MDDR dhe FDDR). Referojuni fletës së të dhënave të shitësit të memories së jashtme DDR për të konfiguruar këtë parametër. 200us është një vlerë e mirë e paracaktuar për memoriet DDR2 dhe DDR3 që funksionojnë në 200 MHz. Ky është një parametër shumë i rëndësishëm për të garantuar një simulim pune dhe një sistem pune në silikon. Një vlerë e gabuar për kohën e rregullimit mund të rezultojë në gabime simulimi. Referojuni fletës së të dhënave të shitësit të memories DDR për të konfiguruar këtë parametër.
    – Për çdo bllok SERDES në dizajnin tuaj, kontrolloni kutitë e duhura për të treguar nëse:
    o Përdoret PCIe
    o Kërkohet mbështetje për PCIe Hot Reset
    o Kërkohet mbështetje për PCIe L2/P2

Shënim: Nëse jeni duke përdorur modelin 090 (M2S090) dhe dizajni juaj përdor SERDESIF, nuk keni pse të kontrolloni asnjë nga kutitë e mëposhtme: "Përdoret për PCIe", "Përfshi mbështetjen e PCIe HotReset" dhe "Përfshi mbështetjen e PCIe L2/P2". Nëse jeni duke përdorur ndonjë pajisje që nuk është 090 dhe përdorni një ose më shumë blloqe SERDESIF, duhet të kontrolloni të katër kutitë e kontrollit nën seksionin përkatës SERDESIF.
Shënim: Për detaje mbi opsionet e disponueshme për ju në këtë konfigurues, referojuni Manualit CoreResetP.

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - CoreResetPConfiguratorFigura 3-4 • CoreResetPConfigurator

Instantimi i oshilatorit 25/50 MHz
CoreConfigP dhe CoreResetP klockohen nga oshilatori RC 25/50 MHz në çip. Ju duhet të instaloni një oshilator 25/50 MHz dhe ta lidhni atë me këto bërthama.

  1. Instantoni bërthamën e oshilatorëve të çipit në SmartDesign (zakonisht në atë ku instantohet MSS). Kjo bërthamë mund të gjendet në Katalogun Libero nën Ora dhe Menaxhimi.
  2. Konfiguro këtë bërthamë në mënyrë që oshilatori RC të drejtojë strukturën FPGA, siç tregohet në figurën 3-5.

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Konfiguruesi i oshilatorëveFigura 3-5 • Konfiguruesi i oshilatorëve të çipit

Instantimi i rivendosjes së sistemit (SYSRESET).
Makroja SYSRESET ofron funksionalitetin e rivendosjes së nivelit të pajisjes sipas dizajnit tuaj. Sinjali i daljes POWER_ON_RESET_N pohohet/de-pohohet sa herë që çipi ndizet ose kunja e jashtme DEVRST_N pohohet/shtrohet (Figura 3-6).
Instantoni makro SYSRESET në SmartDesign tuaj (zakonisht ai ku është instancuar MSS). Kjo makro mund të gjendet në Katalogun Libero nën Macro Library. Asnjë konfigurim i kësaj makro nuk është i nevojshëm.

Kontrollues Microsemi SmartFusion2 DDR dhe kontrollues serial me shpejtësi të lartë - makro SYSRESETFigura 3-6 • Makro SYSRESET

Lidhja e përgjithshme
Pasi të keni instancuar dhe konfiguruar bërthamat MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP dhe CoreResetP në dizajnin tuaj, duhet t'i lidhni ato për të formuar nënsistemin e Inicializimit Periferik. Për të thjeshtuar përshkrimin e lidhjes në këtë dokument, ai ndahet në lidhjen e rrugës së të dhënave të konfigurimit në përputhje me APB3 e lidhur me lidhjet e lidhura me CoreConfigP dhe CoreResetP.
Lidhja e rrugës së të dhënave të konfigurimit
Figura 3-7 tregon se si të lidhni CoreConfigP me sinjalet MSS FIC_2 dhe ndërfaqet e konfigurimit në përputhje me APB3 të pajisjeve periferike.
Tabela 3-1 • Lidhjet e portit të rrugës së të dhënave të konfigurimit/BIF

NGA
Ndërfaqja e portit / autobusit
(BIF)/ Komponenti
TE
Ndërfaqja e portit / autobusit (BIF) / Komponenti
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

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Lidhja e nën-sistemitFigura 3-7 • Lidhja e nënsistemit FIC_2 APB3

Orët dhe rivendos lidhjen
Figura 3-8 tregon se si të lidhni CoreResetP me burimet e jashtme të rivendosjes dhe sinjalet kryesore të rivendosjes së pajisjeve periferike. Ai gjithashtu tregon se si të lidhni CoreResetP me sinjalet e statusit të sinkronizimit të orës së pajisjeve periferike (sinjalet e kyçjes PLL). Përveç kësaj, tregon se si janë të lidhura CoreConfigP dhe CoreResetP.

Kontrolluesi Microsemi SmartFusion2 DDR dhe kontrolluesi serial i shpejtësisë së lartë - Lidhja e nën-sistemit 2Figura 3-8 • Lidhshmëria e Nën-Sistemit Bërthamë SF2Reset

Krijimi dhe përpilimi i aplikacionit Firmware

Kur eksportoni firmuerin nga LiberoSoC (Dritarja e rrjedhës së projektimit > Firmware eksporti > firmware eksporti), Libero gjeneron sa vijon files në /firmware/drivers_config/ dosja sys_config:

  • sys_config.c – Përmban strukturat e të dhënave që mbajnë vlerat për regjistrat periferikë.
  • sys_config.h – Përmban deklaratat #define që specifikojnë se cilat pajisje periferike përdoren në dizajn dhe duhet të inicializohen.
  • sys_config_mddr_define.h – Përmban të dhënat e konfigurimit të kontrolluesit MDDR të futura në kutinë e dialogut të konfigurimit të Regjistrave.
  • sys_config_fddr_define.h – Përmban të dhënat e konfigurimit të kontrolluesit FDDR të futura në kutinë e dialogut të konfigurimit të Regjistrave.
  • sys_config_mss_clocks.h – Kjo file përmban frekuencat e orës MSS siç përcaktohen në konfiguruesin MSS CCC. Këto frekuenca përdoren nga kodi CMSIS për të ofruar informacion të saktë të orës për shumë nga drejtuesit MSS që duhet të kenë akses në frekuencën e tyre të orës periferike (PCLK) (p.sh., pjesëtuesit e shpejtësisë së zhurmës MSS UART janë një funksion i shpejtësisë së zhurmës dhe frekuencës PCLK ).
  • sys_config_SERDESIF_ .c – Përmban SERDESIF_ regjistroni të dhënat e konfigurimit të ofruara gjatë SERDESIF_ konfigurimi i bllokut në krijimin e dizajnit.
  • sys_config_SERDESIF_ .h – Përmban deklaratat #define që specifikojnë numrin e çifteve të konfigurimit të regjistrave dhe numrin e korsisë që duhet të anketohet për PMA_READY (vetëm në modalitetin PCIe).

Këto fileKërkohen që kodi CMSIS të përpilohet siç duhet dhe të përmbajë informacion në lidhje me dizajnin tuaj aktual, duke përfshirë të dhënat e konfigurimit periferik dhe informacionin e konfigurimit të orës për MSS.
Mos i modifikoni këto files me dorë; ato krijohen në drejtoritë përkatëse të komponentëve/periferikës sa herë që gjenerohen komponentët SmartDesign që përmbajnë pajisjet periferike përkatëse. Nëse bëhen ndryshime në të dhënat e konfigurimit të ndonjë prej pajisjeve periferike, ju duhet të rieksportoni projektet e firmuerit në mënyrë që firmueri i përditësuar files (shih listën e mësipërme) eksportohen në / dosja firmware/drivers_config/sys_config.
Kur eksportoni firmuerin, Libero SoC krijon projektet e firmuerit: një bibliotekë ku konfiguroni dizajnin tuaj files dhe drejtuesit janë përpiluar.
Nëse kontrolloni Krijo projektin kutia e zgjedhjes kur eksportoni firmuerin, krijohet një projekt softuer SoftConsole/IAR/Keil për të mbajtur projektin e aplikacionit ku mund të modifikoni main.c dhe përdoruesin C/H files. Hapni projektin SoftConSole/IAR/Keil për të përpiluar saktë kodin CMSIS dhe për të konfiguruar siç duhet aplikacionin tuaj të firmuerit që të përputhet me dizajnin tuaj të harduerit.

BFM FilePërdoret për simulimin e dizajnit

Kur gjeneroni komponentët SmartDesign që përmbajnë pajisjet periferike të lidhura me dizajnin tuaj, simulimi files që korrespondojnë me periferikët përkatës gjenerohen në /Direktoria e simulimit:

  • test.bfm – BFM e nivelit të lartë file që ekzekutohet fillimisht gjatë çdo simulimi që ushtron procesorin SmartFusion2 MSS Cortex-M3. Ai ekzekuton peripheral_init.bfm dhe user.bfm, në atë renditje.
  • MDDR_init.bfm – Nëse dizajni juaj përdor MDDR, Libero e gjeneron këtë file; ai përmban komandat e shkrimit BFM që simulojnë shkrimet e të dhënave të regjistrit të konfigurimit MSS DDR që keni futur (duke përdorur kutinë e dialogut Redakto Regjistrat ose në GUI MSS_MDDR) në regjistrat e kontrolluesit MSS DDR.
  • FDDR_init.bfm – Nëse dizajni juaj përdor FDDR, Libero e gjeneron këtë file; ai përmban komandat e shkrimit BFM që simulojnë shkrimet e të dhënave të regjistrit të konfigurimit të Fabric DDR që keni futur (duke përdorur kutinë e dialogut Edit Registers ose në GUI FDDR) në regjistrat e Fabric DDR Controller.
  • SERDESIF_ _init.bfm – Nëse dizajni juaj përdor një ose më shumë blloqe SERDESIF, Libero e gjeneron këtë file për secilën prej SERDESIF_ blloqe të përdorura; ai përmban komanda të shkrimit BFM që simulojnë shkrimet e të dhënave të regjistrit të konfigurimit SERDESIF që keni futur (duke përdorur kutinë e dialogut Redakto Regjistrat ose në SERDESIF_ GUI) në SERDESIF_ regjistrat. Nëse blloku SERDESIF është konfiguruar si PCIe, kjo file gjithashtu ka disa deklarata #define që kontrollojnë ekzekutimin e 2 fazave të konfigurimit të regjistrit në mënyrë të përsosur.
  • përdorues.bfm – Përmban komandat e përdoruesit. Këto komanda ekzekutohen pasi të ketë përfunduar peripheral_init.bfm. Redakto këtë file për të futur komandat tuaja BFM.
  • SERDESIF_ _user.bfm – Përmban komandat e përdoruesit. Redakto këtë file për të futur komandat tuaja BFM. Përdoreni këtë nëse keni konfiguruar SERDESIF_ bllokoni në modalitetin e simulimit BFM PCIe dhe si master AXI/AHBLite. Nëse keni konfiguruar SERDESIF_ bllokoni në modalitetin e simulimit RTL, nuk do t'ju duhet kjo file.

Kur ju thirrni simulimin çdo herë, dy simulimet e mëposhtme files janë rikrijuar në /Direktoria e simulimit me përmbajtje të përditësuar:

  • nënsistemi.bfm – Përmban deklaratat #define për çdo pajisje periferike të përdorur në dizajnin tuaj, që specifikojnë seksionin e veçantë të periferal_init.bfm që do të ekzekutohet që korrespondon me çdo periferik.
  • operipheral_init.bfm – Përmban procedurën BFM që imiton funksionin CMSIS:: SystemInit() të ekzekutuar në Cortex-M3 përpara se të hyni në procedurën main(). Ai kopjon të dhënat e konfigurimit për çdo pajisje periferike të përdorur në dizajn në regjistrat e duhur të konfigurimit periferik dhe më pas pret që të gjitha pajisjet periferike të jenë gati përpara se të pohojë se mund t'i përdorni këto pajisje periferike. Ai ekzekuton MDDR_init.bfm dhe FDDR_init.bfm.

Duke përdorur këto të krijuara files, kontrollorët DDR në dizajnin tuaj konfigurohen automatikisht, duke simuluar atë që do të ndodhte në një pajisje SmartFusion2. Ju mund të redaktoni user.bfm file për të shtuar çdo komandë të nevojshme për të simuluar dizajnin tuaj (Cortex-M3 është master). Këto komanda ekzekutohen pasi të jenë inicializuar pajisjet periferike. Mos modifikoni test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files dhe SERDESIF_ _init.bfm files.

Mbështetja e produktit

Microsemi SoC Products Group mbështet produktet e tij me shërbime të ndryshme mbështetëse, duke përfshirë Shërbimin ndaj Klientit, Qendrën e Mbështetjes Teknike të Klientit, një websiti, posta elektronike dhe zyrat e shitjeve në mbarë botën.
Kjo shtojcë përmban informacione rreth kontaktimit të Microsemi SoC Products Group dhe përdorimit të këtyre shërbimeve mbështetëse.
Shërbimi ndaj klientit
Kontaktoni Shërbimin e Klientit për mbështetjen jo-teknike të produktit, të tilla si çmimi i produktit, përmirësimet e produktit, informacioni i përditësimit, statusi i porosisë dhe autorizimi.
Nga Amerika e Veriut, telefononi 800.262.1060
Nga pjesa tjetër e botës, telefononi 650.318.4460
Faks, nga kudo në botë, 408.643.6913
Qendra e Mbështetjes Teknike të Klientit
Microsemi SoC Products Group ka staf në Qendrën e tij të Mbështetjes Teknike të Klientit me inxhinierë shumë të aftë të cilët mund t'ju ndihmojnë t'u përgjigjeni pyetjeve tuaja të harduerit, softuerit dhe dizajnit në lidhje me Produktet Microsemi SoC. Qendra e Mbështetjes Teknike të Klientit shpenzon shumë kohë duke krijuar shënime aplikacioni, përgjigje për pyetjet e zakonshme të ciklit të projektimit, dokumentimin e çështjeve të njohura dhe FAQ të ndryshme. Pra, përpara se të na kontaktoni, ju lutemi vizitoni burimet tona në internet. Ka shumë të ngjarë që ne t'u jemi përgjigjur tashmë pyetjeve tuaja.
Mbështetje Teknike
Vizitoni Mbështetjen e Klientit webfaqe (www.microsemi.com/soc/support/search/default.aspx) për më shumë informacion dhe mbështetje. Shumë përgjigje të disponueshme në të kërkueshme web burimet përfshijnë diagrame, ilustrime dhe lidhje me burime të tjera në webfaqe.
Webfaqe
Mund të shfletoni një sërë informacionesh teknike dhe jo-teknike në faqen kryesore të SoC, në www.microsemi.com/soc.
Kontaktoni Qendrën e Mbështetjes Teknike të Klientit
Inxhinierë shumë të kualifikuar stafojnë Qendrën e Mbështetjes Teknike. Qendra e Mbështetjes Teknike mund të kontaktohet me email ose përmes Grupit të Produkteve Microsemi SoC webfaqe.
Email
Ju mund t'i komunikoni pyetjet tuaja teknike në adresën tonë të emailit dhe të merrni përgjigjet me email, faks ose telefon. Gjithashtu, nëse keni probleme me projektimin, mund t'i dërgoni email dizajnit tuaj files për të marrë ndihmë.
Ne monitorojmë vazhdimisht llogarinë e emailit gjatë gjithë ditës. Kur na dërgoni kërkesën tuaj, sigurohuni që të përfshini emrin tuaj të plotë, emrin e kompanisë dhe informacionin tuaj të kontaktit për përpunimin efikas të kërkesës suaj.
Adresa e emailit të mbështetjes teknike është soc_tech@microsemi.com.
Rastet e mia
Klientët e Microsemi SoC Products Group mund të dorëzojnë dhe gjurmojnë rastet teknike në internet duke shkuar te Rastet e mia.
Jashtë SHBA
Klientët që kanë nevojë për ndihmë jashtë zonave kohore të SHBA-së mund të kontaktojnë mbështetjen teknike nëpërmjet emailit (soc_tech@microsemi.com) ose kontaktoni një zyrë lokale të shitjeve. Listimet e zyrave të shitjeve mund të gjenden në www.microsemi.com/soc/company/contact/default.aspx.
Mbështetje Teknike ITAR
Për mbështetje teknike për FPGA-të RH dhe RT që rregullohen nga Rregulloret Ndërkombëtare të Trafikut të Armëve (ITAR), na kontaktoni përmes soc_tech_itar@microsemi.com. Përndryshe, brenda Rastet e Mia, zgjidhni Po në listën rënëse ITAR. Për një listë të plotë të FPGA-ve Microsemi të rregulluara nga ITAR, vizitoni ITAR web faqe.
Microsemi Corporation (NASDAQ: MSCC) ofron një portofol gjithëpërfshirës të zgjidhjeve gjysmëpërçuese për: hapësirën ajrore, mbrojtjen dhe sigurinë; ndërmarrje dhe komunikim; dhe tregjet industriale dhe alternative të energjisë. Produktet përfshijnë pajisje analoge dhe RF me performancë të lartë, me besueshmëri të lartë, qarqe të integruara me sinjal të përzier dhe RF, SoC të personalizueshëm, FPGA dhe nënsisteme të plota. Microsemi e ka selinë në Aliso Viejo, Kaliforni. Mësoni më shumë në www.microsemi.com.
© 2014 Microsemi Corporation. Të gjitha të drejtat e rezervuara. Microsemi dhe logoja Microsemi janë marka tregtare të Microsemi Corporation. Të gjitha markat e tjera tregtare dhe markat e shërbimit janë pronë e pronarëve të tyre përkatës.

5-02-00384-1/08.14Logoja mikrosemiSelia e Korporatës Microsemi
One Enterprise, Aliso Viejo CA 92656 USA
Brenda SHBA: +1 949-380-6100
Shitjet: +1 949-380-6136
Faks: +1 949-215-4996

Dokumentet / Burimet

Kontrollues Microsemi SmartFusion2 DDR dhe kontrollues serial me shpejtësi të lartë [pdfUdhëzuesi i përdoruesit
SmartFusion2 kontrollues DDR dhe kontrollues serik me shpejtësi të lartë, SmartFusion2 DDR, kontrollues dhe kontrollues serik me shpejtësi të lartë, kontrollues me shpejtësi të lartë

Referencat

Lini një koment

Adresa juaj e emailit nuk do të publikohet. Fushat e kërkuara janë shënuar *