Microsemi logotipsSmartFusion2
DDR kontrolieris un sērijas ātrgaitas kontrolieris
Inicializācijas metodika
Lietotāja rokasgrāmata

Ievads

Veidojot dizainu, izmantojot SmartFusion2 ierīci, ja izmantojat vienu no diviem DDR kontrolleriem (FDDR vai MDDR) vai kādu no sērijas ātrgaitas kontrollera (SERDESIF) blokiem, jums ir jāinicializē šo bloku konfigurācijas reģistri izpildes laikā pirms tos var izmantot. Piemēram,ampDDR kontrollerim ir jāiestata DDR režīms (DDR3/DDR2/LPDDR), PHY platums, sērijveida režīms un ECC.
Tāpat SERDESIF blokam, ko izmanto kā PCIe galapunktu, PCIE BAR ir jāiestata uz AXI (vai AHB) logu.
Šajā dokumentā ir aprakstītas darbības, kas nepieciešamas, lai izveidotu Libero dizainu, kas automātiski inicializē DDR kontrolleri un SERDESIF blokus, ieslēdzot to. Tajā ir arī aprakstīts, kā ģenerēt programmaparatūras kodu no Libero SOC, kas tiek izmantots iegultā dizaina plūsmā.
Vispirms tiek sniegts detalizēts darbību teorijas apraksts.
Nākamajā sadaļā ir aprakstīts, kā izveidot šādu dizainu, izmantojot Libero SoC System Builder — jaudīgu projektēšanas rīku, kas, cita starpā, izveido inicializācijas risinājumu jūsu vietā, ja dizainā izmantojat DDR vai SERDESIF blokus.
Nākamajā sadaļā ir aprakstīts, kā izveidot pilnīgu inicializācijas risinājumu, neizmantojot SmartFusion2 System Builder. Tas palīdz izskaidrot, kas jādara, ja nevēlaties izmantot System Builder, kā arī aprakstīts, ko sistēmas veidotāja rīks faktiski ģenerē. Šī sadaļa attiecas uz:

  • DDR kontrollera un SERDESIF konfigurācijas reģistru konfigurācijas datu izveide
  • FPGA loģikas izveide, kas nepieciešama konfigurācijas datu pārsūtīšanai uz dažādiem ASIC konfigurācijas reģistriem

Visbeidzot mēs aprakstam ģenerēto fileir saistīts ar:

  • Programmaparatūras 'inicializācijas' risinājuma izveide.
  • DDR “inicializācijas” risinājuma dizaina simulācija.

Sīkāku informāciju par DDR kontrolleri un SERDESIF konfigurācijas reģistriem skatiet sadaļā Microsemi SmartFusion2 liela ātruma seriālo un DDR interfeisu lietotāja rokasgrāmata.

Darbības teorija

Perifērijas inicializācijas risinājumā tiek izmantoti šādi galvenie komponenti:

  • Funkcija CMSIS SystemInit(), kas darbojas uz Cortex-M3 un organizē inicializācijas procesu.
  • CoreConfigP mīkstais IP kodols, kas inicializē perifērijas ierīču konfigurācijas reģistrus.
  • CoreResetP mīkstais IP kodols, kas pārvalda MSS, DDR kontrolleru un SERDESIF bloku atiestatīšanas secību.

Perifērijas inicializācijas process darbojas šādi:

  1. Pēc atiestatīšanas Cortex-M3 palaiž CMSIS SystemInit() funkciju. Šī funkcija tiek automātiski izpildīta, pirms tiek izpildīta lietojumprogrammas galvenā() funkcija.
    CoreResetP izejas signāls MSS_HPMS_READY tiek apstiprināts inicializācijas procesa sākumā, norādot, ka MSS un visas perifērijas ierīces (izņemot MDDR) ir gatavas saziņai.
  2. Funkcija SystemInit() ieraksta konfigurācijas datus DDR kontrolleros un SERDESIF konfigurācijas reģistros, izmantojot MSS FIC_2 APB3 kopni. Šis interfeiss ir savienots ar mīksto CoreConfigP kodolu, kas izveidots FPGA audumā.
  3. Kad visi reģistri ir konfigurēti, funkcija SystemInit() raksta CoreConfigP vadības reģistros, lai norādītu uz reģistra konfigurācijas fāzes pabeigšanu; pēc tam tiek apstiprināti CoreConfigP izejas signāli CONFIG1_DONE un CONIG2_DONE.
    Atkarībā no dizainā izmantotajām perifērijas ierīcēm ir divas reģistra konfigurācijas fāzes (CONFIG1 un CONFIG2).
  4. Ja tiek izmantots viens vai abi MDDR/FDDR un projektēšanā netiek izmantots neviens no SERDESIF blokiem, ir tikai viena reģistra konfigurācijas fāze. Abi CoreConfigP izejas signāli CONFIG1_DONE un CONIG2_DONE tiek apstiprināti viens pēc otra bez gaidīšanas/aizkavēšanās.
    Ja projektēšanā tiek izmantots viens vai vairāki SERDESIF bloki režīmā, kas nav PCIe, ir tikai viena reģistra konfigurācijas fāze. CONFIG1_DONE un CONIG2_DONE tiek apstiprināti viens pēc otra bez gaidīšanas/aizkavēšanās.
    Ja projektēšanā tiek izmantots viens vai vairāki SERDESIF bloki PCIe režīmā, ir divas reģistra konfigurācijas fāzes. CONFIG1_DONE tiek apgalvots pēc tam, kad ir pabeigta pirmā reģistra konfigurācijas fāze. Šajā fāzē tiek konfigurēti SERDESIF sistēmas un joslu reģistri. Ja SERDESIF ir konfigurēts režīmā, kas nav PCIE, nekavējoties tiek aktivizēts arī signāls CONFIG2_DONE.
  5. Pēc tam seko otrā reģistra konfigurācijas fāze (ja SERDESIF ir konfigurēts PCIE režīmā). Tālāk ir norādīti dažādi notikumi, kas notiek otrajā fāzē.
    – CoreResetP deaktivizē PHY_RESET_N un CORE_RESET_N signālus, kas atbilst katram izmantotajam SERDESIF blokam. Tas arī apstiprina izejas signālu SDIF_RELEASED pēc tam, kad visi SERDESIF bloki ir atiestatīti. Šis SDIF_RELEASED signāls tiek izmantots, lai norādītu CoreConfigP, ka SERDESIF kodols nav atiestatīts un ir gatavs reģistra konfigurācijas otrajai fāzei.
    – Kad signāls SDIF_RELEASED ir apstiprināts, funkcija SystemInit() sāk aptauju par PMA_READY apstiprinājumu attiecīgajā SERDESIF joslā. Kad PMA_READY ir apstiprināts, otro SERDESIF reģistru (PCIE reģistru) kopu konfigurē/raksta funkcija SystemInit().
  6. Kad visi PCIE reģistri ir konfigurēti, funkcija SystemInit() raksta CoreConfigP vadības reģistros, lai norādītu uz reģistra konfigurācijas otrās fāzes pabeigšanu; pēc tam tiek apstiprināts CoreConfigP izejas signāls CONIG2_DONE.
  7. Papildus iepriekš minētajiem signāla apgalvojumiem/atteikumiem, CoreResetP pārvalda arī dažādu bloku inicializāciju, veicot šādas funkcijas:
    – FDDR kodola atiestatīšanas atcelšana
    – SERDESIF apstiprinājuma atcelšana bloķē PHY un CORE atiestatīšanu
    – FDDR PLL (FPLL) bloķēšanas signāla uzraudzība. FPLL ir jābūt bloķētam, lai garantētu, ka FDDR AXI/AHBLite datu saskarne un FPGA audums var pareizi sazināties.
    – SERDESIF bloka PLL (SPLL) bloķēšanas signālu uzraudzība. SPLL ir jābūt bloķētam, lai garantētu, ka SERDESIF bloķē AXI/AHBLite interfeisu (PCIe režīms) vai XAUI saskarni var pareizi sazināties ar FPGA audumu.
    – Gaida, kamēr ārējās DDR atmiņas nokārtosies un būs gatavas, lai tām varētu piekļūt DDR kontrolleri.
  8. Kad visas perifērijas ierīces ir pabeigušas inicializāciju, CoreResetP apstiprina signālu INIT_DONE; pēc tam tiek apstiprināts CoreConfigP iekšējais reģistrs INIT_DONE.
    Ja tiek izmantots viens vai abi MDDR/FDDR un tiek sasniegts DDR inicializācijas laiks, tiek apstiprināts CoreResetP izejas signāls DDR_READY. Šī signāla DDR_READY apstiprinājumu var pārraudzīt kā norādi, ka DDR (MDDR/FDDR) ir gatavs saziņai.
    Ja tiek izmantots viens vai vairāki SERDESIF bloki un reģistra konfigurācijas otrā fāze ir veiksmīgi pabeigta, tiek apstiprināts CoreResetP izejas signāls SDIF_READY. Šī signāla SDIF_READY apstiprināšanu var uzraudzīt kā norādi, ka visi SERDESIF bloki ir gatavi saziņai.
  9. Funkcija SystemInit (), kas gaidīja, kamēr tiek apstiprināta INIT_DONE, tiek pabeigta, un tiek izpildīta lietojumprogrammas galvenā () funkcija. Tajā laikā visi izmantotie DDR kontrolleri un SERDESIF bloki ir inicializēti, un programmaparatūras lietojumprogramma un FPGA auduma loģika var droši sazināties ar tiem.

Šajā dokumentā aprakstītā metodoloģija balstās uz Cortex-M3, kas veic inicializācijas procesu kā daļu no sistēmas inicializācijas koda, kas izpildīts pirms lietojumprogrammas galvenās () funkcijas.
FDDR/MDDR, SEREDES (režīms bez PCIe) un SERDES (PCIe režīms) inicializācijas soļiem skatiet blokshēmas 1-1., 1-2. un 1-3. attēlā.
Attēlā 1-4 ir parādīta perifērijas inicializācijas laika diagramma.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — laika diagramma 1 Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — laika diagramma 2

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — laika diagramma 3Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — laika diagramma 4Attēls 1-3 • SERDESIF (PCIe) inicializācijas blokshēma
Šajā dokumentā aprakstītajai inicializācijas procedūrai inicializācijas procesa laikā ir jāpalaiž Cortex-M3, pat ja neplānojat palaist nevienu kodu Cortex-M3. Jums ir jāizveido pamata programmaparatūras lietojumprogramma, kas neko nedara (vienkārša cilpa, piemēram,ample) un ielādējiet izpildāmo failu iegultajā nemainīgajā atmiņā (eNVM), lai Cortex-M3 sāknēšanas laikā tiktu inicializēti DDR kontrolleri un SERDESIF bloki.

Sistēmas veidotāja izmantošana, lai izveidotu dizainu, izmantojot DDR un SERDESIF blokus

SmartFusion2 System Builder ir spēcīgs projektēšanas rīks, kas palīdz uztvert jūsu sistēmas līmeņa prasības un izveidot dizainu, kas īsteno šīs prasības. Ļoti svarīga System Builder funkcija ir automātiska perifērijas inicializācijas apakšsistēmas izveide. Sadaļā “SmartDesign izmantošana dizaina izveidei, izmantojot DDR un SERDESIF blokus” 17. lpp. ir detalizēti aprakstīts, kā izveidot šādu risinājumu bez sistēmas veidotāja.
Ja izmantojat System Builder, jums ir jāveic šādi uzdevumi, lai izveidotu dizainu, kas inicializē jūsu DDR kontrollerus un SERDESIF blokus ieslēgšanas brīdī:

  1. Lapā Device Features (Attēls 2-1) norādiet, kuri DDR kontrolleri tiek izmantoti un cik SERDESIF bloki tiek izmantoti jūsu dizainā.
  2. Lapā Atmiņa norādiet DDR veidu (DDR2/DDR3/LPDDR) un ārējo DDR atmiņu konfigurācijas datus. Sīkāku informāciju skatiet sadaļā Atmiņas lapa.
  3. Lapā Perifērijas ierīces auduma DDR apakšsistēmai un/vai MSS DDR FIC apakšsistēmai (pēc izvēles) pievienojiet auduma šablonus, kas konfigurēti kā AHBLite/AXI.
  4. Lapā Pulksteņa iestatījumi norādiet pulksteņa frekvences DDR apakšsistēmām.
  5. Aizpildiet dizaina specifikāciju un noklikšķiniet uz Pabeigt. Tas ģenerē System Builder izveidoto dizainu, ieskaitot loģiku, kas nepieciešama "inicializācijas" risinājumam.
  6. Ja izmantojat SERDESIF blokus, jums savā dizainā ir jāizveido SERDESIF bloki un jāsavieno to inicializācijas porti ar System Builder ģenerētā kodola portiem.

Sistēmas veidotāja ierīču funkciju lapa
Lapā Ierīces līdzekļi norādiet, kuri DDR kontrolleri (MDDR un/vai FDDR) tiek izmantoti un cik SERDESIF bloki tiek izmantoti jūsu dizainā (2-1. attēls).

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — ierīces funkciju lapaAttēls 2-1 • System Builder ierīces funkciju lapa

Sistēmas veidotāja atmiņas lapa
Lai izmantotu MSS DDR (MDDR) vai auduma DDR (FDDR), nolaižamajā sarakstā atlasiet atmiņas veidu (2-2. attēls).

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris - ārējā atmiņaAttēls 2-2 • MSS ārējā atmiņa

Jums ir:

  1. Izvēlieties DDR veidu (DDR2, DDR3 vai LPDDR).
  2. Definējiet DDR atmiņas iestatīšanas laiku. Lai iestatītu pareizo atmiņas iestatīšanas laiku, skatiet savas ārējās DDR atmiņas specifikācijas. DDR atmiņu var neizdoties pareizi inicializēt, ja nav pareizi iestatīts atmiņas iestatīšanas laiks.
  3. Importējiet DDR reģistra konfigurācijas datus vai iestatiet savus DDR atmiņas parametrus. Lai iegūtu sīkāku informāciju, skatiet Microsemi SmartFusion2 liela ātruma seriālo un DDR interfeisu lietotāja rokasgrāmata.

Šie dati tiek izmantoti, lai ģenerētu DDR reģistru BFM un programmaparatūras konfigurāciju files, kā aprakstīts sadaļās "Programmaparatūras lietojumprogrammas izveide un kompilēšana" 26. lpp. un "BFM Files Izmanto dizaina simulēšanai” 27. lpp. Sīkāku informāciju par DDR kontrollera konfigurācijas reģistriem skatiet Microsemi SmartFusion2 liela ātruma seriālo un DDR interfeisu lietotāja rokasgrāmata.
Bijušaisampkonfigurācijas le file sintakse ir parādīta 2-3 attēlā. Šajā izmantotie reģistru nosaukumi file ir tādi paši kā aprakstītie Microsemi SmartFusion2 liela ātruma seriālo un DDR interfeisu lietotāja rokasgrāmata

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris - File Sintakse PiemampleAttēls 2-3 • Konfigurācija File Sintakse Piemample
Sistēmas veidotāja perifērijas ierīču lapa
Lapā Perifērijas katram DDR kontrollerim tiek izveidota atsevišķa apakšsistēma (Fabric DDR apakšsistēma FDDR un MSS DDR FIC apakšsistēma MDDR). Katrai no šīm apakšsistēmām varat pievienot Fabric AMBA Master (konfigurēts kā AXI/AHBLite) kodolu, lai nodrošinātu auduma galveno piekļuvi DDR kontrolleriem. Pēc ģenerēšanas sistēmas veidotājs automātiski izveido kopnes serdeņus (atkarībā no pievienotā AMBA Master veida) un pakļauj kopnes kodola galveno BIF un atbilstošo apakšsistēmu (FDDR/MDDR) pulksteņa un atiestatīšanas tapas atbilstošām kontaktu grupām. tops. Viss, kas jums jādara, ir savienot BIF ar atbilstošajiem Fabric Master serdeņiem, kurus jūs varētu izmantot dizainā. MDDR gadījumā MSS DDR FIC apakšsistēmai nav obligāti jāpievieno Fabric AMBA Master kodols; Cortex-M3 ir noklusējuma galvenais šajā apakšsistēmā. Attēlā 2-4 parādīta System Builder perifērijas lapa.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — Builder perifērijas lapaAttēls 2-4 • Sistēmas veidotāja perifērijas lapa

Sistēmas veidotāja pulksteņa iestatījumu lapa
Lapā Clock Settings katram DDR kontrollerim jānorāda pulksteņa frekvences, kas saistītas ar katru DDR (MDDR un/vai FDDR) apakšsistēmu.
Attiecībā uz MDDR jums jānorāda:

  • MDDR_CLK — šis pulkstenis nosaka DDR kontrollera darbības frekvenci, un tam jāatbilst pulksteņa frekvencei, kādā vēlaties darboties jūsu ārējai DDR atmiņai. Šis pulkstenis ir definēts kā M3_CLK daudzkārtnis (Cortex-M3 un MSS galvenais pulkstenis, 2-5. attēls). MDDR_CLK ir jābūt mazākam par 333 MHz.
  • DDR_FIC_CLK — ja esat izvēlējies piekļūt arī MDDR no FPGA auduma, jums jānorāda DDR_FIC_CLK. Šī pulksteņa frekvence ir definēta kā MDDR_CLK attiecība, un tai jāatbilst frekvencei, kādā darbojas FPGA auduma apakšsistēma, kas piekļūst MDDR.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris - MDDR pulksteņiAttēls 2-5 • Cortex-M3 un MSS galvenais pulkstenis; MDDR pulksteņi

Attiecībā uz FDDR jums jānorāda:

  • FDDR_CLK — nosaka DDR kontrollera darbības frekvenci, un tai jāatbilst pulksteņa frekvencei, kādā vēlaties darboties jūsu ārējai DDR atmiņai. Ņemiet vērā, ka šis pulkstenis ir definēts kā M3_CLK daudzkārtnis (MSS un Cortex-M3 pulkstenis, 2-5. attēls). FDDR_CLK ir jābūt diapazonā no 20 MHz līdz 333 MHz.
  • FDDR_SUBSYSTEM_CLK — šī pulksteņa frekvence ir definēta kā FDDR_CLK attiecība, un tai jāatbilst frekvencei, kādā darbojas FPGA auduma apakšsistēma, kas piekļūst FDDR.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — auduma DDR pulksteņiAttēls 2-6 • Auduma DDR pulksteņi
SERDESIF konfigurācija
SERDESIF bloki netiek ģenerēti System Builder ģenerētajā dizainā. Tomēr visiem SERDESIF blokiem inicializācijas signāli ir pieejami System Builder kodola saskarnē, un tos var savienot ar SERDESIF kodoliem nākamajā hierarhijas līmenī, kā parādīts 2-7. attēlā.Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — perifērijas inicializācijas savienojamībaAttēls 2-7 • SERDESIF perifērijas inicializācijas savienojamība
Līdzīgi kā DDR konfigurācijas reģistros, katram SERDES blokam ir arī konfigurācijas reģistri, kas jāielādē izpildes laikā. Varat importēt šīs reģistra vērtības vai izmantot ātrgaitas seriālās saskarnes konfiguratoru (2-8. attēls), lai ievadītu PCIe vai EPCS parametrus, un reģistra vērtības tiek automātiski aprēķinātas jūsu vietā. Lai iegūtu sīkāku informāciju, skatiet SERDES konfiguratora lietotāja rokasgrāmata.Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — seriālās saskarnes konfiguratorsAttēls 2-8 • Ātrgaitas seriālās interfeisa konfigurators
Kad esat integrējis savu lietotāja loģiku ar System Builder bloku un SERDES bloku, varat ģenerēt savu augstākā līmeņa SmartDesign. Tas ģenerē visu HDL un BFM files, kas ir nepieciešami, lai īstenotu un simulētu jūsu dizainu. Pēc tam varat turpināt pārējo dizaina plūsmu.

SmartDesign izmantošana dizaina izveidei, izmantojot DDR un SERDESIF blokus

Šajā sadaļā ir aprakstīts, kā apvienot pilnīgu inicializācijas risinājumu, neizmantojot SmartFusion2 System Builder. Mērķis ir palīdzēt jums saprast, kas jums jādara, ja nevēlaties izmantot System Builder. Šajā sadaļā ir arī aprakstīts, ko sistēmas veidotāja rīks jums faktiski ģenerē. Šajā sadaļā ir aprakstīts, kā:

  • Ievadiet DDR kontrollera un SERDESIF konfigurācijas reģistru konfigurācijas datus.
  • Izveidojiet un pievienojiet auduma serdeņus, kas nepieciešami konfigurācijas datu pārsūtīšanai uz DDR kontrolleriem un SERDESIF konfigurācijas reģistriem.

DDR kontrollera konfigurācija
MSS DDR (MDDR) un Fabric DDR (FDDR) kontrolleri ir jākonfigurē dinamiski (izpildlaikā), lai tie atbilstu ārējās DDR atmiņas konfigurācijas prasībām (DDR režīms, PHY platums, sērijveida režīms, ECC utt.). MDDR/FDDR konfiguratorā ievadītie dati tiek ierakstīti DDR kontrollera konfigurācijas reģistros, izmantojot funkciju CMSIS SystemInit(). Konfiguratoram ir trīs dažādas cilnes dažādu veidu konfigurācijas datu ievadīšanai:

  • Vispārīgi dati (DDR režīms, datu platums, pulksteņa frekvence, ECC, auduma saskarne, diska stiprums)
  • Atmiņas inicializācijas dati (sēriju sērijas garums, sērijveida secība, laika režīms, latentums utt.)
  • Atmiņas laika dati

Skatiet savas ārējās DDR atmiņas specifikācijas un konfigurējiet DDR kontrolleri, lai tas atbilstu ārējās DDR atmiņas prasībām.
Lai iegūtu sīkāku informāciju par DDR konfigurāciju, skatiet SmartFusion2 MSS DDR konfigurācijas lietotāja rokasgrāmata.
SERDESIF konfigurācija
Veiciet dubultklikšķi uz SERDES bloka SmartDesign audeklā, lai atvērtu konfiguratoru SERDES konfigurēšanai (3-1. attēls). Varat importēt šīs reģistra vērtības vai izmantot SERDES konfiguratoru, lai ievadītu savus PCIe vai EPCS parametrus, un reģistra vērtības tiek automātiski aprēķinātas jūsu vietā. Lai iegūtu sīkāku informāciju, skatiet SERDES konfiguratora lietotāja rokasgrāmata.Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — ātrgaitas seriālās interfeisa konfiguratorsAttēls 3-1 • Ātrgaitas seriālās interfeisa konfigurators
FPGA dizaina inicializācijas apakšsistēmas izveide
Lai inicializētu DDR un SERDESIF blokus, FPGA audumā ir jāizveido inicializācijas apakšsistēma. FPGA auduma inicializācijas apakšsistēma pārvieto datus no Cortex-M3 uz DDR un SERDESIF konfigurācijas reģistriem, pārvalda atiestatīšanas secības, kas nepieciešamas, lai šie bloki darbotos, un signalizē, kad šie bloki ir gatavi sazināties ar pārējo jūsu dizainu. Lai izveidotu inicializācijas apakšsistēmu, jums ir:

  • Konfigurējiet FIC_2 MSS iekšienē
  • Izveidojiet un konfigurējiet CoreConfigP un CoreResetP kodolus
  • Izveidojiet mikroshēmā iebūvēto 25/50 MHz RC oscilatoru
  • Izveidojiet sistēmas atiestatīšanas (SYSRESET) makro
  • Savienojiet šos komponentus ar katras perifērijas konfigurācijas saskarnēm, pulksteņiem, atiestatīšanu un PLL bloķēšanas portiem

MSS FIC_2 APB konfigurācija
Lai konfigurētu MSS FIC_2:

  1. MSS konfiguratorā atveriet dialoglodziņu FIC_2 konfigurators (3-2. attēls).
  2. Atlasiet Inicializēt perifērijas ierīces, izmantojot Cortex-M3.
  3. Atkarībā no jūsu sistēmas atzīmējiet vienu vai abas no šīm izvēles rūtiņām:
    - MSS DDR
    – Auduma DDR un/vai SERDES bloki
  4. Noklikšķiniet uz Labi un turpiniet, lai ģenerētu MSS (jūs varat atlikt šo darbību, līdz esat pilnībā konfigurējis MSS atbilstoši savām dizaina prasībām). FIC_2 porti (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK un FIC_2_APB_M_RESET_N) tagad ir atvērti MSS saskarnē, un tos var savienot ar CoreConfigP un CoreResetP kodoliem.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — MSS FIC 2 konfiguratorsAttēls 3-2 • MSS FIC_2 konfigurators

CoreConfigP
Lai konfigurētu CoreConfigP:

  1. Instantiējiet CoreConfigP savā SmartDesign (parasti tajā, kurā tiek instantēta MSS).
    Šo kodolu var atrast Libero katalogā (sadaļā Perifērijas ierīces).
  2. Veiciet dubultklikšķi uz kodola, lai atvērtu konfiguratoru.
  3. Konfigurējiet kodolu, lai norādītu, kuras perifērijas ierīces ir jāinicializē (3-3. attēls)

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — dialoglodziņšAttēls 3-3 • CoreConfigP dialoglodziņš

CoreResetP
Lai konfigurētu CoreResetP:

  1. Instantiējiet CoreResetP savā SmartDesign (parasti tajā, kurā tiek instantēta MSS).
    Šo kodolu var atrast Libero katalogā, sadaļā Perifērijas ierīces.
  2. Veiciet dubultklikšķi uz kodola SmartDesign Canvas, lai atvērtu konfiguratoru (3-4. attēls).
  3. Konfigurējiet kodolu, lai:
    – Norādiet ārējās atiestatīšanas darbību (EXT_RESET_OUT apgalvots). Izvēlieties vienu no četrām iespējām:
    o EXT_RESET_OUT nekad netiek apgalvots
    o EXT_RESET_OUT tiek apstiprināts, ja tiek apstiprināta ieslēgšanas atiestatīšana (POWER_ON_RESET_N).
    o EXT_RESET_OUT tiek apgalvots, ja tiek apgalvots FAB_RESET_N
    o EXT_RESET_OUT tiek izmantots, ja tiek aktivizēta ieslēgšanas atiestatīšana (POWER_ON_RESET_N) vai FAB_RESET_N
    – Norādiet Device Voltage. Atlasītajai vērtībai ir jāatbilst tilptage jūs atlasījāt Libero Project Settings dialoglodziņā.
    – Atzīmējiet atbilstošās izvēles rūtiņas, lai norādītu, kuras perifērijas ierīces izmantojat savā dizainā.
    – Norādiet ārējās DDR atmiņas iestatīšanas laiku. Šī ir maksimālā vērtība visām jūsu lietojumprogrammā izmantotajām DDR atmiņām (MDDR un FDDR). Lai konfigurētu šo parametru, skatiet ārējās DDR atmiņas piegādātāja datu lapu. 200us ir laba noklusējuma vērtība DDR2 un DDR3 atmiņām, kas darbojas ar 200 MHz. Tas ir ļoti svarīgs parametrs, lai nodrošinātu darba simulāciju un silīcija darba sistēmu. Nepareiza nostādināšanas laika vērtība var izraisīt simulācijas kļūdas. Lai konfigurētu šo parametru, skatiet DDR atmiņas piegādātāja datu lapu.
    – Katram SERDES blokam jūsu dizainā atzīmējiet atbilstošās rūtiņas, lai norādītu, vai:
    o tiek izmantots PCIe
    o Nepieciešams PCIe karstās atiestatīšanas atbalsts
    o Nepieciešams PCIe L2/P2 atbalsts

Piezīme: Ja izmantojat 090 die (M2S090) un jūsu dizains izmanto SERDESIF, jums nav jāatzīmē neviena no šīm izvēles rūtiņām: "Izmantots PCIe", "Iekļauts PCIe HotReset atbalsts" un "Iekļauts PCIe L2/P2 atbalsts". Ja izmantojat jebkuru ierīci, kas nav 090, un izmantojat vienu vai vairākus SERDESIF blokus, attiecīgajā SERDESIF sadaļā ir jāatzīmē visas četras izvēles rūtiņas.
Piezīme: Sīkāku informāciju par opcijām, kas jums pieejamas šajā konfiguratorā, skatiet CoreResetP rokasgrāmatā.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — CoreResetPConfiguratorAttēls 3-4 • CoreResetPConfigurator

25/50MHz oscilatora instantiācija
CoreConfigP un CoreResetP pulksteni nodrošina mikroshēmā iebūvētais 25/50 MHz RC oscilators. Jums ir jāizveido 25/50 MHz oscilators un jāpievieno tas šiem serdeņiem.

  1. Instantiējiet mikroshēmu oscilatoru kodolu savā SmartDesign (parasti tajā, kurā tiek instantiēta MSS). Šo kodolu var atrast Libero katalogā sadaļā Pulkstenis un pārvaldība.
  2. Konfigurējiet šo kodolu tā, lai RC oscilators vadītu FPGA audumu, kā parādīts 3-5. attēlā.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — oscilatoru konfiguratorsAttēls 3-5 • Mikroshēmu oscilatoru konfigurators

Sistēmas atiestatīšanas (SYSRESET) instantiācija
SYSRESET makro nodrošina ierīces līmeņa atiestatīšanas funkcionalitāti jūsu dizainam. POWER_ON_RESET_N izejas signāls tiek aktivizēts/atcelts ikreiz, kad tiek ieslēgta mikroshēma vai tiek aktivizēts/atcelts ārējais kontakts DEVRST_N (attēls 3-6).
Instantiējiet SYSRESET makro savā SmartDesign (parasti tajā, kurā tiek instantēta MSS). Šo makro var atrast Libero katalogā sadaļā Makro bibliotēka. Šī makro konfigurācija nav nepieciešama.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — SYSRESET makroAttēls 3-6 • SYSRESET makro

Vispārējā savienojamība
Kad savā dizainā esat izveidojis un konfigurējis MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP un CoreResetP kodolus, tie ir jāsavieno, lai izveidotu perifērijas inicializācijas apakšsistēmu. Lai vienkāršotu savienojamības aprakstu šajā dokumentā, tas ir sadalīts APB3 saderīgā konfigurācijas datu ceļa savienojumā, kas saistīts ar CoreConfigP un CoreResetP saistītajiem savienojumiem.
Konfigurācijas datu ceļa savienojamība
Attēlā 3-7 parādīts, kā savienot CoreConfigP ar MSS FIC_2 signāliem un perifērijas ierīču APB3 saderīgām konfigurācijas saskarnēm.
Tabula 3-1 • Konfigurācijas datu ceļš Ports/BIF savienojumi

NO
Ostas/autobusa interfeiss
(BIF)/ Komponents
UZ
Ostas/kopnes interfeiss (BIF)/komponents
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 APBmmmaster/ CoreConfigP FIC 2 APB MASTER/ MSS

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — apakšsistēmas savienojamībaAttēls 3-7 • FIC_2 APB3 apakšsistēmas savienojamība

Pulksteņi un savienojumu atiestatīšana
Attēlā 3-8 parādīts, kā CoreResetP savienot ar ārējiem atiestatīšanas avotiem un perifērijas ierīču kodola atiestatīšanas signāliem. Tas arī parāda, kā savienot CoreResetP ar perifērijas ierīču pulksteņa sinhronizācijas statusa signāliem (PLL bloķēšanas signāliem). Turklāt tas parāda, kā CoreConfigP un CoreResetP ir savienoti.

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris — apakšsistēmas savienojamība 2Attēls 3-8 • Core SF2Reset apakšsistēmas savienojamība

Programmaparatūras lietojumprogrammas izveide un kompilēšana

Eksportējot programmaparatūru no LiberoSoC (dizaina plūsmas logs > eksportēt programmaparatūru > eksportēt programmaparatūru), Libero ģenerē tālāk norādīto. files sadaļā /firmware/drivers_config/ sys_config mape:

  • sys_config.c – Satur datu struktūras, kurās ir perifērijas reģistru vērtības.
  • sys_config.h – Satur #define priekšrakstus, kas norāda, kuras perifērijas ierīces tiek izmantotas dizainā un kuras ir jāinicializē.
  • sys_config_mddr_define.h – Satur MDDR kontrollera konfigurācijas datus, kas ievadīti dialoglodziņā Reģistru konfigurācija.
  • sys_config_fddr_define.h – Satur FDDR kontrollera konfigurācijas datus, kas ievadīti dialoglodziņā Reģistru konfigurācija.
  • sys_config_mss_clocks.h – Šis file satur MSS pulksteņa frekvences, kā noteikts MSS CCC konfiguratorā. Šīs frekvences izmanto CMSIS kods, lai nodrošinātu pareizu pulksteņa informāciju daudziem MSS draiveriem, kuriem ir jābūt piekļuvei to perifērā pulksteņa (PCLK) frekvencei (piemēram, MSS UART bodu ātruma dalītāji ir bodu ātruma un PCLK frekvences funkcija. ).
  • sys_config_SERDESIF_ .c - Satur SERDESIF_ reģistrēt konfigurācijas datus, kas sniegti SERDESIF_ laikā bloku konfigurācija dizaina izveidē.
  • sys_config_SERDESIF_ .h – Satur #define priekšrakstus, kas norāda reģistru konfigurācijas pāru skaitu un joslas numuru, kas jāaptaujā PMA_READY (tikai PCIe režīmā).

Šie files ir nepieciešami, lai CMSIS kods varētu pareizi apkopot un saturēt informāciju par jūsu pašreizējo dizainu, tostarp perifērijas konfigurācijas datus un pulksteņa konfigurācijas informāciju MSS.
Nerediģējiet šos files manuāli; tie tiek izveidoti attiecīgajos komponentu/perifēro ierīču direktorijos katru reizi, kad tiek ģenerēti SmartDesign komponenti, kas satur attiecīgās perifērijas ierīces. Ja kādas perifērijas konfigurācijas datos tiek veiktas izmaiņas, programmaparatūras projekti ir atkārtoti jāeksportē, lai atjauninātu programmaparatūru. files (skatiet sarakstu iepriekš) tiek eksportēti uz / firmware/drivers_config/sys_config mape.
Kad eksportējat programmaparatūru, Libero SoC izveido programmaparatūras projektus: bibliotēku, kurā ir jūsu dizaina konfigurācija files un draiveri ir apkopoti.
Ja atzīmējat opciju Izveidot projektu izvēles rūtiņa, kad eksportējat programmaparatūru, tiek izveidots programmatūras SoftConsole/IAR/Keil projekts, kas satur lietojumprogrammas projektu, kurā var rediģēt main.c un lietotāja C/H files. Atveriet SoftConSole/IAR/Keil projektu, lai pareizi apkopotu CMSIS kodu un pareizi konfigurētu programmaparatūras lietojumprogrammu, lai tā atbilstu jūsu aparatūras dizainam.

BFM Files Izmanto dizaina simulēšanai

Kad ģenerējat SmartDesign komponentus, kas satur ar jūsu dizainu saistītās perifērijas ierīces, simulācija files, kas atbilst attiecīgajām perifērijas ierīcēm, tiek ģenerēti /simulācijas direktorijs:

  • test.bfm – Augstākā līmeņa BFM file kas pirmo reizi tiek izpildīts jebkuras simulācijas laikā, kas izmanto SmartFusion2 MSS Cortex-M3 procesoru. Tas izpilda peripheral_init.bfm un user.bfm šādā secībā.
  • MDDR_init.bfm - Ja jūsu dizains izmanto MDDR, Libero to ģenerē file; tajā ir BFM rakstīšanas komandas, kas simulē ievadīto MSS DDR konfigurācijas reģistra datu ierakstīšanu (izmantojot dialoglodziņu Rediģēt reģistrus vai MSS_MDDR GUI) MSS DDR kontrollera reģistros.
  • FDDR_init.bfm - Ja jūsu dizains izmanto FDDR, Libero to ģenerē file; tajā ir BFM rakstīšanas komandas, kas simulē Fabric DDR konfigurācijas reģistra datu ierakstīšanu, ko ievadījāt (izmantojot dialoglodziņu Rediģēt reģistrus vai FDDR GUI) Fabric DDR kontrollera reģistros.
  • SERDESIF_ _init.bfm – Ja jūsu dizains izmanto vienu vai vairākus SERDESIF blokus, Libero to ģenerē file katram no SERDESIF_ izmantotie bloki; tajā ir BFM rakstīšanas komandas, kas simulē ievadīto SERDESIF konfigurācijas reģistra datu ierakstīšanu (izmantojot dialoglodziņu Rediģēt reģistrus vai SERDESIF_ GUI) uz SERDESIF_ reģistros. Ja SERDESIF bloks ir konfigurēts kā PCIe, šis file ir arī daži #define paziņojumi, kas kontrolē 2 reģistra konfigurācijas fāžu izpildi ideālā kārtībā.
  • lietotājs.bfm - Satur lietotāja komandas. Šīs komandas tiek izpildītas pēc peripheral_init.bfm pabeigšanas. Rediģēt šo file lai ievadītu BFM komandas.
  • SERDESIF_ _user.bfm - Satur lietotāja komandas. Rediģēt šo file lai ievadītu BFM komandas. Izmantojiet šo, ja esat konfigurējis SERDESIF_ bloks BFM PCIe simulācijas režīmā un kā AXI/AHBLite galvenais. Ja esat konfigurējis SERDESIF_ bloķēt RTL simulācijas režīmā, jums tas nebūs vajadzīgs file.

Kad jūs izsaukt simulāciju katru reizi, šādas divas simulācijas files tiek izveidoti no jauna uz /simulācijas direktorijs ar atjauninātu saturu:

  • apakšsistēma.bfm – Satur #define priekšrakstus katrai jūsu dizainā izmantotajai perifērijas ierīcei, kas norāda konkrēto perifērijas_init.bfm sadaļu, kas jāizpilda atbilstoši katrai perifērijas ierīcei.
  • operipheral_init.bfm – Ietver BFM procedūru, kas atdarina funkciju CMSIS:: SystemInit(), kas tiek palaists Cortex-M3 pirms main() procedūras ievadīšanas. Tā kopē konfigurācijas datus jebkurai perifērijas ierīcei, kas izmantota projektēšanā, pareizajos perifērijas konfigurācijas reģistros un pēc tam gaida, līdz visas perifērijas ierīces būs gatavas, pirms apgalvo, ka varat izmantot šīs perifērijas ierīces. Tas izpilda MDDR_init.bfm un FDDR_init.bfm.

Izmantojot šos radītos files, jūsu dizainā esošie DDR kontrolleri tiek konfigurēti automātiski, simulējot to, kas notiktu SmartFusion2 ierīcē. Jūs varat rediģēt user.bfm file lai pievienotu visas komandas, kas nepieciešamas, lai modelētu jūsu dizainu (Cortex-M3 ir galvenais). Šīs komandas tiek izpildītas pēc perifērijas ierīču inicializācijas. Nerediģēt test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files un SERDESIF_ _init.bfm files.

Produktu atbalsts

Microsemi SoC Products Group nodrošina savus produktus ar dažādiem atbalsta pakalpojumiem, tostarp klientu apkalpošanu, klientu tehniskā atbalsta centru, a webvietne, elektroniskais pasts un tirdzniecības biroji visā pasaulē.
Šajā pielikumā ir informācija par sazināšanos ar Microsemi SoC Products Group un šo atbalsta pakalpojumu izmantošanu.
Klientu apkalpošana
Sazinieties ar klientu apkalpošanas dienestu, lai saņemtu netehnisku produktu atbalstu, piemēram, produktu cenas, produktu jauninājumus, atjauninājumu informāciju, pasūtījuma statusu un autorizāciju.
No Ziemeļamerikas zvaniet 800.262.1060
No pārējās pasaules zvaniet 650.318.4460
Fakss no jebkuras vietas pasaulē, 408.643.6913
Klientu tehniskā atbalsta centrs
Microsemi SoC Products Group klientu tehniskā atbalsta centrā strādā augsti kvalificēti inženieri, kas var palīdzēt atbildēt uz jūsu aparatūras, programmatūras un dizaina jautājumiem par Microsemi SoC produktiem. Klientu tehniskā atbalsta centrs pavada daudz laika, veidojot lietojumprogrammas piezīmes, atbildes uz izplatītākajiem projektēšanas cikla jautājumiem, zināmo problēmu dokumentāciju un dažādus FAQ. Tāpēc, pirms sazināties ar mums, lūdzu, apmeklējiet mūsu tiešsaistes resursus. Ļoti iespējams, ka mēs jau esam atbildējuši uz jūsu jautājumiem.
Tehniskais atbalsts
Apmeklējiet klientu atbalsta dienestu webvietne (www.microsemi.com/soc/support/search/default.aspx), lai iegūtu plašāku informāciju un atbalstu. Daudzas atbildes ir pieejamas meklēšanas lapā web resurss ietver diagrammas, ilustrācijas un saites uz citiem resursiem vietnē webvietne.
Webvietne
Jūs varat pārlūkot dažādu tehnisko un netehnisko informāciju SoC mājaslapā, vietnē www.microsemi.com/soc.
Sazinieties ar klientu tehniskā atbalsta centru
Tehniskā atbalsta centrā strādā augsti kvalificēti inženieri. Ar Tehniskā atbalsta centru var sazināties pa e-pastu vai izmantojot Microsemi SoC produktu grupu webvietne.
E-pasts
Jūs varat nosūtīt savus tehniskos jautājumus uz mūsu e-pasta adresi un saņemt atbildes pa e-pastu, faksu vai tālruni. Turklāt, ja jums ir problēmas ar dizainu, varat nosūtīt savu dizainu pa e-pastu files saņemt palīdzību.
Mēs nepārtraukti uzraugām e-pasta kontu visas dienas garumā. Nosūtot mums pieprasījumu, lūdzu, norādiet pilnu vārdu, uzvārdu, uzņēmuma nosaukumu un kontaktinformāciju, lai jūsu pieprasījums tiktu apstrādāts efektīvi.
Tehniskā atbalsta e-pasta adrese ir soc_tech@microsemi.com.
Mani gadījumi
Microsemi SoC Products Group klienti var iesniegt un izsekot tehniskos gadījumus tiešsaistē, apmeklējot vietni Mani gadījumi.
Ārpus ASV
Klienti, kuriem nepieciešama palīdzība ārpus ASV laika zonām, var sazināties ar tehnisko atbalstu pa e-pastu (soc_tech@microsemi.com) vai sazinieties ar vietējo tirdzniecības biroju. Tirdzniecības biroju sarakstus var atrast www.microsemi.com/soc/company/contact/default.aspx.
ITAR tehniskais atbalsts
Lai saņemtu tehnisko atbalstu RH un RT FPGA, ko regulē Starptautiskie ieroču satiksmes noteikumi (ITAR), sazinieties ar mums, izmantojot soc_tech_itar@microsemi.com. Vai arī sadaļā Mani gadījumi ITAR nolaižamajā sarakstā atlasiet Jā. Lai iegūtu pilnu sarakstu ar ITAR regulētajām Microsemi FPGA, apmeklējiet ITAR web lapā.
Microsemi Corporation (NASDAQ: MSCC) piedāvā visaptverošu pusvadītāju risinājumu portfeli: aviācija, aizsardzība un drošība; uzņēmums un sakari; kā arī rūpnieciskās un alternatīvās enerģijas tirgi. Produkti ietver augstas veiktspējas, augstas uzticamības analogās un RF ierīces, jauktas signāla un RF integrālās shēmas, pielāgojamas SoC, FPGA un pilnīgas apakšsistēmas. Microsemi galvenā mītne atrodas Aliso Viejo, Kalifornijā. Uzziniet vairāk vietnē www.microsemi.com.
© 2014 Microsemi Corporation. Visas tiesības aizsargātas. Microsemi un Microsemi logotips ir Microsemi Corporation preču zīmes. Visas pārējās preču zīmes un pakalpojumu zīmes ir to attiecīgo īpašnieku īpašums.

5-02-00384-1/08.14Microsemi logotipsMicrosemi korporatīvā mītne
One Enterprise, Aliso Viejo CA 92656 ASV
ASV iekšienē: +1 949-380-6100
Pārdošana: +1 949-380-6136
Fakss: +1 949-215-4996

Dokumenti / Resursi

Microsemi SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris [pdfLietotāja rokasgrāmata
SmartFusion2 DDR kontrolieris un sērijas ātrgaitas kontrolieris, SmartFusion2 DDR, kontrolieris un sērijas ātrgaitas kontrolieris, ātrgaitas kontrolieris

Atsauces

Atstājiet komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *