Лого на микросемиSmartFusion2
DDR контролер и сериски контролер со голема брзина
Методологија на иницијализација
Упатство за употреба

Вовед

Кога креирате дизајн со помош на уред SmartFusion2, ако користите еден од двата DDR контролери (FDDR или MDDR) или некој од блоковите на сериски контролер со голема брзина (SERDESIF), мора да ги иницијализирате конфигурациските регистри на овие блокови при извршување пред да можат да се користат. За прampле, за контролерот DDR, мора да го поставите режимот DDR (DDR3/DDR2/LPDDR), ширината на PHY, режимот на рафал и ECC.
Слично на тоа, за блокот SERDESIF што се користи како крајна точка PCIe, мора да го поставите PCIE BAR на прозорецот AXI (или AHB).
Овој документ ги опишува чекорите неопходни за создавање Libero дизајн кој автоматски ги иницијализира DDR контролерот и блоковите SERDESIF при вклучувањето. Исто така, опишува како да се генерира кодот на фирмверот од Libero SOC што се користи во текот на вградениот дизајн.
Прво е даден детален опис на теоријата на операции.
Следниот дел опишува како да креирате таков дизајн со користење на Libero SoC System Builder, моќна алатка за дизајн што, меѓу другите карактеристики, го создава решението за „иницијализација“ за вас доколку користите блокови DDR или SERDESIF во вашиот дизајн.
Следниот дел опишува како да се состави целосно решение за „иницијализација“ без користење на SmartFusion2 System Builder. Ова помага да се објасни што треба да се направи ако не сакате да го користите System Builder, а исто така опишува што всушност генерира алатката System Builder за вас. Овој дел се однесува на:

  • Создавање на конфигурациски податоци за DDR контролер и конфигурациски регистри SERDESIF
  • Создавање на логиката FPGA потребна за пренос на конфигурациските податоци на различните ASIC конфигурациски регистри

Конечно го опишуваме генерираното fileповрзани со:

  • Создавање решение за „иницијализирање“ на фирмверот.
  • Симулација на дизајнот за решението за „иницијализација“ на DDR.

За детали за DDR контролерот и регистрите за конфигурација SERDESIF, погледнете во Упатство за корисникот на Microsemi SmartFusion2 Сериски и DDR интерфејси со голема брзина.

Теорија на операција

Решението за периферна иницијализација ги користи следните главни компоненти:

  • Функцијата CMSIS SystemInit(), која работи на Cortex-M3 и го оркестрира процесот на иницијализација.
  • Мекото IP-јадро CoreConfigP, кое ги иницијализира конфигурациските регистри на периферните уреди.
  • Мекото IP-јадро CoreResetP, кое управува со низата за ресетирање на блоковите MSS, DDR и SERDESIF.

Процесот на периферна иницијализација работи на следниов начин:

  1. По ресетирање, Cortex-M3 ја извршува функцијата CMSIS SystemInit(). Оваа функција автоматски се извршува пред да се изврши функцијата main() на апликацијата.
    Излезниот сигнал CoreResetP MSS_HPMS_READY е наведен на почетокот на процесот на иницијализација, што покажува дека MSS и сите периферни уреди (освен MDDR) се подготвени за комуникација.
  2. Функцијата SystemInit() запишува податоци за конфигурација на DDR контролерите и конфигурациските регистри SERDESIF преку магистралата MSS FIC_2 APB3. Овој интерфејс е поврзан со мекото јадро CoreConfigP инстанцирано во ткаенината FPGA.
  3. Откако ќе се конфигурираат сите регистри, функцијата SystemInit() запишува во контролните регистри CoreConfigP за да укаже на завршување на фазата на конфигурација на регистерот; потоа се наметнуваат излезните сигнали CoreConfigP CONFIG1_DONE и CONIG2_DONE.
    Постојат две фази на конфигурација на регистерот (CONFIG1 и CONFIG2) во зависност од периферните уреди што се користат во дизајнот.
  4. Ако се користи еден или двата од MDDR/FDDR, а ниту еден од блоковите SERDESIF не се користи во дизајнот, постои само една фаза на конфигурација на регистарот. И излезните сигнали CoreConfigP CONFIG1_DONE и CONIG2_DONE се наметнуваат еден по друг без никакво чекање/одложување.
    Ако еден или повеќе блокови SERDESIF во не-PCIe режим се користат во дизајнот, постои само една фаза на конфигурација на регистарот. CONFIG1_DONE и CONIG2_DONE се наметнуваат еден по друг без никакво чекање/одложување.
    Ако еден или повеќе блокови SERDESIF во PCIe режим се користат во дизајнот, постојат две фази на конфигурација на регистарот. CONFIG1_DONE се потврдува откако ќе заврши првата фаза од конфигурацијата на регистарот. Во оваа фаза се конфигурирани системот SERDESIF и регистрите за ленти. Ако SERDESIF е конфигуриран во режим без PCIE, сигналот CONFIG2_DONE исто така се поставува веднаш.
  5. Потоа следи втората фаза од конфигурацијата на регистарот (ако SERDESIF е конфигуриран во режим PCIE). Следниве се различните настани што се случуваат во втората фаза:
    – CoreResetP ги деасертира PHY_RESET_N и CORE_RESET_N сигналите што одговараат на секој од користените блокови SERDESIF. Исто така, дава излезен сигнал SDIF_RELEASED откако сите блокови SERDESIF ќе се ресетираат. Овој сигнал SDIF_RELEASED се користи за да му укаже на CoreConfigP дека јадрото SERDESIF е надвор од ресетирање и е подготвено за втората фаза од конфигурацијата на регистарот.
    – Откако ќе се прикаже сигналот SDIF_RELEASED, функцијата SystemInit() започнува со избирање за потврдување на PMA_READY на соодветната лента SERDESIF. Откако ќе се наведе PMA_READY, вториот сет на SERDESIF регистри (PCIE регистри) се конфигурираат/запишуваат од функцијата SystemInit().
  6. Откако ќе се конфигурираат сите регистри на PCIE, функцијата SystemInit() запишува во контролните регистри CoreConfigP за да укаже на завршување на втората фаза од конфигурацијата на регистерот; потоа се наметнува излезниот сигнал CoreConfigP CONIG2_DONE.
  7. Освен горенаведените тврдења/де-потврдувања на сигналот, CoreResetP исто така управува со иницијализацијата на различните блокови со извршување на следните функции:
    – Отстранување на ресетирање на јадрото FDDR
    – Отстранувањето на SERDESIF ги блокира ресетирањето на PHY и CORE
    – Следење на сигналот за заклучување FDDR PLL (FPLL). FPLL мора да е заклучен за да гарантира дека податочниот интерфејс FDDR AXI/AHBLite и ткаенината FPGA можат правилно да комуницираат.
    – Следење на сигналите за заклучување на блокот SERDESIF PLL (SPLL). SPLL мора да е заклучен за да гарантира дека интерфејсот на SERDESIF блокови AXI/AHBLite (режим PCIe) или интерфејсот XAUI може правилно да комуницира со ткаенината FPGA.
    – Се чека надворешните DDR-мемории да се смират и да бидат подготвени за пристап од DDR контролерите.
  8. Кога сите периферни уреди ќе ја завршат својата иницијализација, CoreResetP го потврдува сигналот INIT_DONE; потоа се наметнува внатрешниот регистар CoreConfigP INIT_DONE.
    Ако се користи еден или двата од MDDR/FDDR, и се достигне времето на иницијализација на DDR, се наметнува излезниот сигнал CoreResetP DDR_READY. Потврдувањето на овој сигнал DDR_READY може да се следи како индикација дека DDR (MDDR/FDDR) е подготвен за комуникација.
    Ако се користат еден или повеќе блокови SERDESIF, а втората фаза од конфигурацијата на регистарот е успешно завршена, се наметнува излезниот сигнал CoreResetP SDIF_READY. Потврдувањето на овој сигнал SDIF_READY може да се следи како индикација дека сите блокови SERDESIF се подготвени за комуникација.
  9. Функцијата SystemInit(), која чекаше да се потврди INIT_DONE, се комплетира и функцијата main() на апликацијата се извршува. Во тоа време, сите користени DDR контролери и блокови SERDESIF се иницијализирани, а апликацијата на фирмверот и логиката на ткаенината FPGA можат сигурно да комуницираат со нив.

Методологијата опишана во овој документ се потпира на Cortex-M3 кој го извршува процесот на иницијализација како дел од кодот за иницијализација на системот извршен пред главната() функцијата на апликацијата.
Видете ги графиконите на текови на Слика 1-1, Слика 1-2 и слика 1-3 за чекорите за иницијализација на FDDR/MDDR, SEREDES (не-PCIe режим) и SERDES (режим PCIe).
Слика 1-4 го прикажува временскиот дијаграм за периферна иницијализација.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - временски дијаграм 1 Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - временски дијаграм 2

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - временски дијаграм 3Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - временски дијаграм 4Слика 1-3 • Графикон на тек на иницијализација на SERDESIF (PCIe).
Постапката за иницијализација опишана во овој документ бара да го извршите Cortex-M3 за време на процесот на иницијализација, дури и ако не планирате да извршите никаков код на Cortex-M3. Мора да креирате основна апликација за фирмвер што не прави ништо (едноставна јамка, на прample) и вчитајте го извршното во вградената неиспарлива меморија (eNVM), така што DDR контролерите и блоковите SERDESIF се иницијализираат кога Cortex-M3 ќе се подигне.

Користење на System Builder за создавање дизајн со користење на блокови DDR и SERDESIF

SmartFusion2 System Builder е моќна алатка за дизајн што ви помага да ги доловите барањата на ниво на системот и да произведе дизајн кој ги имплементира тие барања. Многу важна функција на System Builder е автоматското креирање на подсистемот за периферна иницијализација. „Користење на SmartDesign за создавање дизајн со користење на блокови DDR и SERDESIF“ на страница 17 детално опишува како да се создаде такво решение без System Builder.
Ако користите System Builder, мора да ги извршите следните задачи за да креирате дизајн што ги иницијализира вашите DDR контролери и блокови SERDESIF при вклучувањето:

  1. На страницата со карактеристики на уредот (слика 2-1), наведете кои DDR контролери се користат и колку блокови SERDESIF се користат во вашиот дизајн.
  2. На страницата Меморија, наведете го типот на DDR (DDR2/DDR3/LPDDR) и податоците за конфигурацијата за вашите надворешни DDR-мемории. Погледнете го делот Мемориска страница за детали.
  3. На страницата за периферни уреди, додајте мастери за ткаенина конфигурирани како AHBLite/AXI на потсистемот Fabric DDR и/или MSS DDR FIC потсистемот (опционално).
  4. На страницата Поставки на часовникот, наведете ги фреквенциите на часовникот за подсистемите DDR.
  5. Пополнете ја вашата спецификација за дизајн и кликнете Finish. Ова го генерира креираниот дизајн на System Builder, вклучувајќи ја логиката неопходна за решението за „иницијализација“.
  6. Ако користите SERDESIF блокови, мора да ги инстанцирате блоковите SERDESIF во вашиот дизајн и да ги поврзете нивните порти за иницијализација со оние од јадрото генерирано од System Builder.

Страница со карактеристики на уред за градење систем
На страницата со карактеристики на уредот, наведете кои DDR контролери (MDDR и/или FDDR) се користат и колку блокови SERDESIF се користат во вашиот дизајн (Слика 2-1).

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - страница со карактеристики на уредотСлика 2-1 • Страна со карактеристики на уред за градење систем

Мемориска страница за Builder на системот
За да користите MSS DDR (MDDR) или Fabric DDR (FDDR), изберете го типот на меморија од паѓачката листа (Слика 2-2).

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - надворешна меморијаСлика 2-2 • Надворешна меморија MSS

Мора да:

  1. Изберете го типот DDR (DDR2, DDR3 или LPDDR).
  2. Дефинирајте го времето на смирување на DDR меморијата. Консултирајте ги вашите надворешни спецификации за DDR меморија за да го поставите точното време за поставување на меморијата. DDR-меморијата може да не успее да се иницијализира правилно ако времето на смирување на меморијата не е правилно поставено.
  3. Или увезете ги конфигурациските податоци на регистарот DDR или поставете ги вашите параметри на меморијата DDR. За детали, погледнете на Упатство за корисникот на Microsemi SmartFusion2 Сериски и DDR интерфејси со голема брзина.

Овие податоци се користат за генерирање на DDR регистарот BFM и конфигурацијата на фирмверот fileкако што е опишано во „Креирање и составување на апликацијата за фирмвер“ на страница 26 и „BFM Files Се користи за симулирање на дизајнот“ на страница 27. За детали за конфигурациските регистри на контролерот DDR, погледнете во Упатство за корисникот на Microsemi SmartFusion2 Сериски и DDR интерфејси со голема брзина.
Поранешенampод конфигурацијата file синтаксата е прикажана на слика 2-3. Имињата на регистерот што се користат во ова file се исти како оние опишани во Упатство за корисникот на Microsemi SmartFusion2 Сериски и DDR интерфејси со голема брзина

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - File Синтакса ПрampleСлика 2-3 • Конфигурација File Синтакса Прample
Страница за периферни уреди за градење систем
На страницата Периферни уреди, за секој DDR контролер се креира посебен потсистем (Fabric DDR Subsystem for FDDR и MSS DDR FIC Subsystem for MDDR). Можете да додадете јадро Fabric AMBA Master (конфигурирано како AXI/AHBLite) на секој од овие потсистеми за да овозможите пристап до контролорите за DDR на мастерот на ткаенината. По генерирањето, System Builder автоматски ги инстанцира магистралните јадра (во зависност од типот на додадениот AMBA Master) и го изложува главниот BIF на јадрото на магистралата и часовникот и пиновите за ресетирање на соодветните потсистеми (FDDR/MDDR) под соодветните иглички групи, до врвот. Сè што треба да направите е да ги поврзете BIF-овите со соодветните Fabric Master јадра што би ги имплементирале во дизајнот. Во случај на MDDR, опционално е да се додаде јадро Fabric AMBA Master на потсистемот MSS DDR FIC; Cortex-M3 е стандарден господар на овој потсистем. Слика 2-4 ја прикажува страницата за периферни уреди за градење на системот.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - страница за Builder PeripheralsСлика 2-4 • Страница за периферни уреди за градење систем

Страница за поставки на часовникот на системот Builder
На страницата Поставки на часовникот, за секој DDR контролер, мора да ги наведете часовните фреквенции поврзани со секој подсистем DDR (MDDR и/или FDDR).
За MDDR, мора да наведете:

  • MDDR_CLK – Овој часовник ја одредува работната фреквенција на DDR контролерот и треба да одговара на фреквенцијата на часовникот на која сакате да работи вашата надворешна DDR меморија. Овој часовник е дефиниран како множител на M3_CLK (Главен часовник Cortex-M3 и MSS, Слика 2-5). MDDR_CLK мора да биде помал од 333 MHz.
  • DDR_FIC_CLK – Ако сте одбрале да пристапите до MDDR и од FPGA ткаенината, треба да го наведете DDR_FIC_CLK. Оваа фреквенција на часовникот е дефинирана како сооднос на MDDR_CLK и треба да одговара на фреквенцијата на која работи подсистемот FPGA ткаенина што пристапува до MDDR.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - MDDR часовнициСлика 2-5 • Главен часовник Cortex-M3 и MSS; MDDR часовници

За FDDR, мора да наведете:

  • FDDR_CLK – Ја одредува работната фреквенција на DDR контролерот и треба да одговара на фреквенцијата на часовникот на која сакате да работи вашата надворешна DDR меморија. Забележете дека овој часовник е дефиниран како множител на M3_CLK (часовник MSS и Cortex-M3, Слика 2-5). FDDR_CLK мора да биде во рамките на 20 MHz и 333 MHz.
  • FDDR_SUBSYSTEM_CLK – Оваа фреквенција на часовникот е дефинирана како сооднос на FDDR_CLK и треба да одговара на фреквенцијата на која работи подсистемот FPGA ткаенина што пристапува до FDDR.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - Fabric DDR ClocksСлика 2-6 • ДДР часовници од ткаенина
Конфигурација на SERDESIF
Блоковите SERDESIF не се инстанцирани во дизајнот генериран од System Builder. Сепак, за сите блокови SERDESIF, сигналите за иницијализација се достапни на интерфејсот на јадрото на System Builder и може да се поврзат со јадрата SERDESIF на следното ниво на хиерархија, како што е прикажано на Слика 2-7.Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - поврзување со периферна иницијализацијаСлика 2-7 • Поврзување за периферна иницијализација на SERDESIF
Слично на регистрите за конфигурација DDR, секој блок SERDES има и конфигурациски регистри кои мора да се вчитаат при извршување. Можете или да ги увезете овие вредности на регистерот или да го користите Конфигураторот за сериски интерфејс со голема брзина (Слика 2-8) за да ги внесете вашите параметри PCIe или EPCS и вредностите на регистарот автоматски се пресметуваат за вас. За детали, погледнете на Упатство за корисникот за конфигуратор SERDES.Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - конфигуратор на сериски интерфејсСлика 2-8 • Конфигуратор на сериски интерфејс со голема брзина
Откако ќе ја интегрирате вашата корисничка логика со блокот System Builder и блокот SERDES, можете да го генерирате вашиот SmartDesign од највисоко ниво. Ова ги генерира сите HDL и BFM fileкои се неопходни за имплементација и симулација на вашиот дизајн. Потоа можете да продолжите со остатокот од Протокот на дизајнирање.

Користење на SmartDesign за создавање дизајн со користење на блокови DDR и SERDESIF

Овој дел опишува како да се состави целосно решение за „иницијализација“ без користење на SmartFusion2 System Builder. Целта е да ви помогне да разберете што мора да направите ако не сакате да го користите System Builder. Овој дел исто така опишува што всушност генерира алатката System Builder за вас. Овој дел опишува како да:

  • Внесете ги конфигурациските податоци за DDR контролерот и регистрите за конфигурација SERDESIF.
  • Инстанцирајте и поврзете ги Fabric Cores потребни за пренос на конфигурациските податоци на DDR контролерите и конфигурациските регистри SERDESIF.

Конфигурација на DDR контролер
Контролерите MSS DDR (MDDR) и Fabric DDR (FDDR) мора да се конфигурираат динамично (за време на извршување) за да одговараат на барањата за конфигурација на надворешната DDR меморија (DDR режим, PHY ширина, режим на рафал, ECC итн.). Податоците внесени во конфигураторот MDDR/FDDR се запишуваат во регистрите за конфигурација на контролорот DDR преку функцијата CMSIS SystemInit(). Конфигураторот има три различни јазичиња за внесување различни типови податоци за конфигурација:

  • Општи податоци (режим DDR, ширина на податоци, фреквенција на часовник, ECC, интерфејс на ткаенина, јачина на погонот)
  • Податоци за иницијализација на меморијата (должина на рафал, редослед на рафал, режим на време, латентност, итн.)
  • Податоци за тајмингот на меморијата

Погледнете ги спецификациите на вашата надворешна DDR меморија и конфигурирајте го DDR контролерот да одговара на барањата на вашата надворешна DDR меморија.
За детали за конфигурацијата на DDR, погледнете во Упатство за корисникот за конфигурација на SmartFusion2 MSS DDR.
Конфигурација на SERDESIF
Кликнете двапати на блокот SERDES во платното SmartDesign за да го отворите Конфигураторот за конфигурирање на SERDES (Слика 3-1). Можете или да ги увезете овие вредности на регистерот или да го користите конфигураторот SERDES за да ги внесете вашите параметри PCIe или EPCS и вредностите на регистарот автоматски се пресметуваат за вас. За детали, погледнете на Упатство за корисникот за конфигуратор SERDES.Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - Конфигуратор за сериски интерфејс со голема брзинаСлика 3-1 • Конфигуратор на сериски интерфејс со голема брзина
Креирање на подсистем за иницијализација на дизајн на FPGA
За да ги иницијализирате блоковите DDR и SERDESIF, мора да креирате потсистем за иницијализација во ткаенината FPGA. Потсистемот за иницијализација на ткаенината FPGA ги преместува податоците од Cortex-M3 во регистрите за конфигурација DDR и SERDESIF, управува со секвенците за ресетирање потребни за овие блокови да бидат оперативни и сигнализира кога овие блокови се подготвени да комуницираат со остатокот од вашиот дизајн. За да креирате потсистем за иницијализација, мора:

  • Конфигурирајте го FIC_2 во MSS
  • Инстанцирајте ги и конфигурирајте ги јадрата CoreConfigP и CoreResetP
  • Инстанцирајте го RC осцилаторот од 25/50 MHz на чипот
  • Инстантирајте го макрото за ресетирање на системот (SYSRESET).
  • Поврзете ги овие компоненти со конфигурациските интерфејси на секој периферен уред, часовниците, ресетирањето и портите за заклучување PLL

MSS FIC_2 APB конфигурација
За да го конфигурирате MSS FIC_2:

  1. Отворете го полето за дијалог FIC_2 конфигуратор од конфигураторот MSS (Слика 3-2).
  2. Изберете Иницијализирај периферни уреди користејќи Cortex-M3.
  3. Во зависност од вашиот систем, проверете едно или двете од следниве полиња за избор:
    – MSS DDR
    – Ткаенина DDR и/или SERDES блокови
  4. Кликнете OK и продолжете со генерирање на MSS (може да го одложите ова дејство додека целосно не го конфигурирате MSS на вашите барања за дизајн). Пристаништата FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK и FIC_2_APB_M_RESET_N) сега се изложени на интерфејсот MSS и може да се поврзат со јадрата CoreConfigP и CoreResetP.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - MSS FIC 2 конфигураторСлика 3-2 • Конфигуратор MSS FIC_2

CoreConfigP
За да го конфигурирате CoreConfigP:

  1. Инстантирајте го CoreConfigP во вашиот SmartDesign (обично оној каде што е инстанциран MSS).
    Ова јадро може да се најде во каталогот Libero (под периферни уреди).
  2. Кликнете двапати на јадрото за да го отворите конфигураторот.
  3. Конфигурирајте го јадрото за да одредите кои периферни уреди треба да се иницијализираат (Слика 3-3)

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - дијалог-кутијаСлика 3-3 • поле за дијалог CoreConfigP

CoreResetP
За да го конфигурирате CoreResetP:

  1. Инстантирајте го CoreResetP во вашиот SmartDesign (обично оној каде што е инстанциран MSS).
    Ова јадро може да се најде во каталогот Libero, под Периферни уреди.
  2. Кликнете двапати на јадрото во SmartDesign Canvas за да го отворите Конфигураторот (Слика 3-4).
  3. Конфигурирајте го јадрото на:
    – Наведете го однесувањето на надворешното ресетирање (наведено EXT_RESET_OUT). Изберете една од четирите опции:
    o EXT_RESET_OUT никогаш не е наведен
    o EXT_RESET_OUT се наметнува ако е наведено ресетирање на напојувањето (POWER_ON_RESET_N)
    o EXT_RESET_OUT е наведен ако е наведен FAB_RESET_N
    o EXT_RESET_OUT е наведен ако е наведено ресетирање на напојувањето (POWER_ON_RESET_N) или FAB_RESET_N
    – Наведете го Device Voltagд. Избраната вредност треба да одговара на voltage избравте во полето за дијалог Libero Project Settings.
    – Проверете ги соодветните полиња за да означите кои периферни уреди ги користите во вашиот дизајн.
    – Наведете го времето за поставување на надворешната DDR меморија. Ова е максималната вредност за сите DDR мемории што се користат во вашата апликација (MDDR и FDDR). За да го конфигурирате овој параметар, погледнете го листот со податоци на продавачот на надворешната DDR меморија. 200us е добра стандардна вредност за DDR2 и DDR3 мемориите кои работат на 200MHz. Ова е многу важен параметар за да се гарантира работна симулација и работен систем на силикон. Неточна вредност за времето на таложење може да резултира со грешки во симулацијата. За да го конфигурирате овој параметар, погледнете го листот со податоци за продавачот на меморијата DDR.
    – За секој блок SERDES во вашиот дизајн, проверете ги соодветните полиња за да покажете дали:
    o се користи PCIe
    o Потребна е поддршка за PCIe Hot Reset
    o Потребна е поддршка за PCIe L2/P2

Забелешка: Ако користите 090 die (M2S090) и вашиот дизајн користи SERDESIF, не мора да штиклирате ниту едно од следниве полиња: „Се користи за PCIe“, „Вклучи поддршка за PCIe HotReset“ и „Вклучи поддршка за PCIe L2/P2“. Ако користите некој уред кој не е 090 и користите еден или повеќе блокови SERDESIF, мора да ги проверите сите четири полиња за избор во соодветниот дел SERDESIF.
Забелешка: За детали за опциите што ви се достапни во овој конфигуратор, погледнете го прирачникот CoreResetP.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - CoreResetPConfiguratorСлика 3-4 • CoreResetPConfigurator

25/50MHz осцилаторна инстанција
CoreConfigP и CoreResetP се тактираат од RC осцилаторот на чипот од 25/50 MHz. Мора да инстанцирате осцилатор од 25/50 MHz и да го поврзете со овие јадра.

  1. Инстанцирајте го јадрото на осцилаторите на чипови во вашиот SmartDesign (обично оној каде што е инстанциран MSS). Ова јадро може да се најде во каталогот Libero под Часовник и управување.
  2. Конфигурирајте го ова јадро така што RC осцилаторот ја движи FPGA ткаенината, како што е прикажано на Слика 3-5.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - конфигуратор на осцилаториСлика 3-5 • Конфигуратор на осцилатори на чипови

Ресетирање на системот (SYSRESET) Инстанција
Макрото SYSRESET обезбедува функционалност за ресетирање на ниво на уред на вашиот дизајн. Излезниот сигнал POWER_ON_RESET_N се наметнува/де-потврдува секогаш кога чипот се напојува или надворешниот пин DEVRST_N се наметнува/де-потврдува (Слика 3-6).
Инстанцирајте го макрото SYSRESET во вашиот SmartDesign (обично оној каде што е инстанциран MSS). Ова макро може да се најде во каталогот Libero под Макро библиотека. Не е потребна конфигурација на ова макро.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - SYSRESET макроСлика 3-6 • Макро SYSRESET

Целокупно поврзување
Откако ќе ги инстанцирате и конфигурирате MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP и CoreResetP јадрата во вашиот дизајн, треба да ги поврзете за да го формирате потсистемот за периферна иницијализација. За да се поедностави описот на поврзувањето во овој документ, тој е поделен на конфигурациската патека за поврзување со податоци што е во согласност со APB3 поврзана со врските поврзани со CoreConfigP и CoreResetP.
Поврзување на патеката за податоци за конфигурација
Слика 3-7 покажува како да се поврзе CoreConfigP со сигналите MSS FIC_2 и конфигурациските интерфејси кои се во согласност со APB3 на периферните уреди.
Табела 3-1 • Конфигурациска патека на податоци Порта/BIF врски

ОД
Интерфејс за пристаниште/автобус
(BIF)/ Компонента
ДО
Пристаниште/автобус интерфејс (BIF)/компонента
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

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - поврзување со подсистемСлика 3-7 • Поврзување на подсистемот FIC_2 APB3

Часовници и ресетира поврзување
Слика 3-8 покажува како да го поврзете CoreResetP со надворешните извори за ресетирање и сигналите за ресетирање на јадрото на периферните уреди. Исто така, покажува како да го поврзете CoreResetP со статусните сигнали за синхронизација на часовникот на периферните уреди (сигнали за заклучување PLL). Покрај тоа, покажува како се поврзани CoreConfigP и CoreResetP.

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина - Поврзување на под-систем 2Слика 3-8 • Поврзување на потсистемот на Core SF2Reset

Креирање и компајлирање на апликација за фирмвер

Кога го извезувате фирмверот од LiberoSoC (Прозорец за проток на дизајн > Извези фирмвер > извези фирмвер), Libero го генерира следново fileи во /firmware/drivers_config/ sys_config папка:

  • sys_config.c – Ги содржи структурите на податоци кои ги чуваат вредностите за периферните регистри.
  • sys_config.h – Ги содржи изјавите #define кои одредуваат кои периферни уреди се користат во дизајнот и треба да се иницијализираат.
  • sys_config_mddr_define.h – Ги содржи податоците за конфигурација на контролорот MDDR внесени во полето за дијалог Конфигурација на регистри.
  • sys_config_fddr_define.h – Ги содржи податоците за конфигурација на контролорот FDDR внесени во полето за дијалог Конфигурација на регистри.
  • sys_config_mss_clocks.h – Ова file ги содржи фреквенциите на часовникот MSS како што е дефинирано во конфигураторот MSS CCC. Овие фреквенции се користат од страна на кодот CMSIS за да се обезбедат точни информации за часовникот на многу од драјверите на MSS кои мора да имаат пристап до нивната фреквенција на периферниот часовник (PCLK) (на пр., делителите на брзината на бауд на MSS UART се функција на брзината на бауд и фреквенцијата на PCLK).
  • sys_config_SERDESIF_ .в – Содржи SERDESIF_ регистрирајте ги податоците за конфигурација обезбедени за време на SERDESIF_ блок конфигурација во креирањето на дизајнот.
  • sys_config_SERDESIF_ .ч – Ги содржи изјавите #define кои го одредуваат бројот на парови за конфигурација на регистарот и бројот на лентата што треба да се анкетира за PMA_READY (само во режим PCIe).

Овие files се потребни за правилно да се компајлира кодот CMSIS и да содржи информации во врска со вашиот моментален дизајн, вклучувајќи податоци за периферната конфигурација и информации за конфигурацијата на часовникот за MSS.
Не ги уредувајте овие files рачно; тие се креираат во соодветните директориуми на компоненти/периферни секогаш кога ќе се генерираат компонентите на SmartDesign што ги содржат соодветните периферни уреди. Ако се направат какви било промени во податоците за конфигурација на која било од периферните уреди, треба повторно да ги извезете проектите на фирмверот, така што ажурираниот фирмвер files (видете ја листата погоре) се извезуваат во / папка firmware/drivers_config/sys_config.
Кога го извезувате фирмверот, Libero SoC создава проекти на фирмверот: библиотека каде што е конфигурирана вашата конфигурација на дизајнот files и драјверите се составени.
Ако го проверите Креирај проект полето за избор кога го извезувате фирмверот, се создава софтверски проект SoftConsole/IAR/Keil за да се задржи проектот на апликацијата каде што можете да ги уредувате main.c и корисникот C/H fileс. Отворете го проектот SoftConSole/IAR/Keil за правилно да го компајлирате CMSIS кодот и правилно да ја конфигурирате апликацијата на фирмверот за да одговара на вашиот хардверски дизајн.

BFM Files Се користи за симулирање на дизајнот

Кога ги генерирате компонентите на SmartDesign кои ги содржат периферните уреди поврзани со вашиот дизајн, симулацијата files што одговараат на соодветните периферни уреди се генерираат во /директориум за симулација:

  • тест.bfm – BFM од највисоко ниво file што прво се извршува за време на која било симулација што го вежба процесорот SmartFusion2 MSS Cortex-M3. Ги извршува peripheral_init.bfm и user.bfm, по тој редослед.
  • MDDR_init.bfm – Ако вашиот дизајн користи MDDR, Libero го генерира ова file; содржи наредби за пишување BFM кои симулираат запишување на податоците од конфигурацискиот регистар на MSS DDR што сте ги внеле (со користење на дијалог прозорецот Уреди регистри или во MSS_MDDR GUI) во регистрите на контролорот MSS DDR.
  • FDDR_init.bfm – Ако вашиот дизајн користи FDDR, Libero го генерира ова file; содржи команди за пишување BFM кои симулираат запишување на податоците од конфигурацискиот регистар на Fabric DDR што сте ги внеле (со користење на дијалог прозорецот Уреди регистри или во GUI на FDDR) во регистрите на Fabric DDR контролер.
  • SERDESIF_ _init.bfm – Ако вашиот дизајн користи еден или повеќе блокови SERDESIF, Libero го генерира ова file за секоја од SERDESIF_ употребени блокови; содржи наредби за пишување BFM кои симулираат запишување на податоците од конфигурацискиот регистар SERDESIF што сте ги внеле (користејќи го полето за дијалог Уреди регистри или во SERDESIF_ GUI) во SERDESIF_ регистри. Ако блокот SERDESIF е конфигуриран како PCIe, ова file има и некои #define изјави кои го контролираат извршувањето на 2-те фази на конфигурација на регистерот во совршен ред.
  • корисник.bfm – Ги содржи корисничките команди. Овие наредби се извршуваат откако ќе заврши peripheral_init.bfm. Уреди го ова file за да ги внесете вашите BFM команди.
  • SERDESIF_ _user.bfm – Ги содржи корисничките команди. Уреди го ова file за да ги внесете вашите BFM команди. Користете го ова ако сте конфигурирале SERDESIF_ блок во режим на симулација на BFM PCIe и како господар на AXI/AHBLite. Ако сте конфигурирале SERDESIF_ блокирај во режим на симулација RTL, ова нема да ти треба file.

Кога ќе се повикате на симулација секој пат, следните две симулации files се повторно создадени на /директориум за симулација со ажурирана содржина:

  • потсистем.bfm – Ги содржи изјавите #define за секоја периферна опрема што се користи во вашиот дизајн, кои го одредуваат конкретниот дел од периферниот_init.bfm што треба да се изврши што одговара на секој периферен уред.
  • operipheral_init.bfm – Ја содржи процедурата BFM која ја емулира функцијата CMSIS:: SystemInit() што се извршува на Cortex-M3 пред да влезете во процедурата main(). Ги копира податоците за конфигурацијата за која било периферна опрема што се користи во дизајнот во правилните регистри за периферна конфигурација и потоа чека сите периферни уреди да бидат подготвени пред да потврди дека можете да ги користите овие периферни уреди. Ги извршува MDDR_init.bfm и FDDR_init.bfm.

Користење на овие генерирани files, DDR контролерите во вашиот дизајн се конфигурираат автоматски, симулирајќи што би се случило на уредот SmartFusion2. Можете да го уредите user.bfm file да додадете какви било команди потребни за симулирање на вашиот дизајн (Cortex-M3 е главен). Овие команди се извршуваат откако ќе се иницијализираат периферните уреди. Не уредувајте ги test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm fileи SERDESIF_ _init.bfm files.

Поддршка за производи

Microsemi SoC Products Group ги поддржува своите производи со различни услуги за поддршка, вклучително и услуги за клиенти, Центар за техничка поддршка за клиенти, а webсајт, електронска пошта и канцеларии за продажба низ целиот свет.
Овој додаток содржи информации за контактирање на Microsemi SoC Products Group и користење на овие услуги за поддршка.
Услуга за клиенти
Контактирајте со службата за корисници за нетехничка поддршка на производот, како што се цените на производите, надградбите на производите, информациите за ажурирање, статусот на нарачката и овластувањето.
Од Северна Америка, јавете се 800.262.1060
Јавете се од остатокот од светот 650.318.4460
Факс, од каде било во светот, 408.643.6913
Центар за техничка поддршка на клиентите
Microsemi SoC Products Group го екипира својот Центар за техничка поддршка за клиенти со висококвалификувани инженери кои можат да помогнат во одговорот на вашите прашања за хардвер, софтвер и дизајн за производите на Microsemi SoC. Центарот за техничка поддршка на клиентите троши многу време за креирање белешки за апликации, одговори на заеднички прашања од циклусот на дизајнирање, документација за познати проблеми и разни ЧПП. Затоа, пред да не контактирате, посетете ги нашите онлајн ресурси. Многу е веројатно дека веќе сме одговориле на вашите прашања.
Техничка поддршка
Посетете ја поддршката за корисници webсајт (www.microsemi.com/soc/support/search/default.aspx) за повеќе информации и поддршка. Многу одговори се достапни на пребарувачот web ресурси вклучуваат дијаграми, илустрации и врски до други ресурси на webсајт.
Webсајт
Можете да прелистувате различни технички и нетехнички информации на почетната страница на SoC, на www.microsemi.com/soc.
Контактирајте го Центарот за техничка поддршка на клиентите
Високо квалификувани инженери работат во Центарот за техничка поддршка. Центарот за техничка поддршка може да се контактира преку е-пошта или преку групата производи на Microsemi SoC webсајт.
Е-пошта
Можете да ги пренесете вашите технички прашања на нашата е-пошта и да добивате одговори по е-пошта, факс или телефон. Исто така, ако имате проблеми со дизајнот, можете да испратите е-пошта за вашиот дизајн fileда добие помош.
Постојано ја следиме сметката за е-пошта во текот на денот. Кога ни го испраќате вашето барање, не заборавајте да го вклучите вашето полно име, име на компанија и информации за контакт за ефикасна обработка на вашето барање.
Адресата за е-пошта за техничка поддршка е soc_tech@microsemi.com.
Мои случаи
Клиентите на Microsemi SoC Products Group можат да поднесуваат и следат технички случаи преку Интернет со одење до Мои случаи.
Надвор од САД
Клиентите на кои им е потребна помош надвор од временските зони на САД може да контактираат со техничка поддршка преку е-пошта (soc_tech@microsemi.com) или контактирајте со локалната продажна канцеларија. Описите на канцелариите за продажба може да се најдат на www.microsemi.com/soc/company/contact/default.aspx.
Техничка поддршка на ИТАР
За техничка поддршка на RH и RT FPGA кои се регулирани со меѓународните регулативи за сообраќај на оружје (ITAR), контактирајте со нас преку soc_tech_itar@microsemi.com. Алтернативно, во Мои случаи, изберете Да во паѓачката листа ИТАР. За целосен список на Microsemi FPGA регулирани со ИТАР, посетете го ITAR web страница.
Microsemi Corporation (NASDAQ: MSCC) нуди сеопфатно портфолио на полупроводнички решенија за: воздушната, одбраната и безбедноста; претпријатие и комуникации; и индустриски и алтернативни пазари на енергија. Производите вклучуваат аналогни и RF уреди со високи перформанси, висока доверливост, интегрирани кола со мешан сигнал и RF, приспособливи SoC, FPGA и целосни потсистеми. Microsemi е со седиште во Aliso Viejo, Калифорнија. Дознајте повеќе на www.microsemi.com.
© 2014 Microsemi Corporation. Сите права се задржани. Microsemi и логото на Microsemi се заштитни знаци на Microsemi Corporation. Сите други заштитни знаци и услужни марки се сопственост на нивните соодветни сопственици.

5-02-00384-1/08.14Лого на микросемиСедиштето на корпоративното „Микросеми“.
One Enterprise, Aliso Viejo CA 92656 USA
Во рамките на САД: +1 949-380-6100
Продажба: +1 949-380-6136
Факс: +1 949-215-4996

Документи / ресурси

Microsemi SmartFusion2 DDR контролер и сериски контролер со голема брзина [pdf] Упатство за корисникот
SmartFusion2 DDR контролер и сериски контролер со голема брзина, SmartFusion2 DDR, контролер и сериски контролер со голема брзина, контролер со голема брзина

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *