SmartFusion2
DDR контролер и сериен високоскоростен контролер
Методология за инициализация
Ръководство за потребителя
Въведение
Когато създавате дизайн с помощта на устройство SmartFusion2, ако използвате един от двата DDR контролера (FDDR или MDDR) или някой от блоковете на сериен високоскоростен контролер (SERDESIF), трябва да инициализирате конфигурационните регистри на тези блокове по време на изпълнение, преди могат да се използват. Напримерample, за 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.
Процесът на периферна инициализация работи по следния начин:
- При нулиране Cortex-M3 изпълнява функцията CMSIS SystemInit(). Тази функция се изпълнява автоматично, преди да се изпълни функцията main() на приложението.
Изходният сигнал на CoreResetP MSS_HPMS_READY се заявява в началото на процеса на инициализация, което показва, че MSS и всички периферни устройства (с изключение на MDDR) са готови за комуникация. - Функцията SystemInit() записва конфигурационни данни в DDR контролерите и SERDESIF конфигурационните регистри чрез MSS FIC_2 APB3 шината. Този интерфейс е свързан към мекото ядро CoreConfigP, инстанцирано в FPGA тъканта.
- След като всички регистри са конфигурирани, функцията SystemInit() записва в контролните регистри на CoreConfigP, за да покаже завършването на фазата на конфигуриране на регистъра; след това се заявяват изходните сигнали на CoreConfigP CONFIG1_DONE и CONIG2_DONE.
Има две фази на конфигурацията на регистъра (CONFIG1 и CONFIG2) в зависимост от периферните устройства, използвани в дизайна. - Ако се използват един или и двата MDDR/FDDR и нито един от блоковете SERDESIF не се използва в дизайна, има само една фаза на конфигурация на регистъра. И двата изходни сигнала на CoreConfigP CONFIG1_DONE и CONIG2_DONE се заявяват един след друг без изчакване/закъснение.
Ако при проектирането се използват един или повече блокове SERDESIF в режим, различен от PCIe, има само една фаза на конфигурацията на регистъра. CONFIG1_DONE и CONIG2_DONE се заявяват един след друг без изчакване/закъснение.
Ако в дизайна се използват един или повече блокове SERDESIF в режим PCIe, има две фази на конфигурация на регистъра. CONFIG1_DONE се потвърждава след завършване на първата фаза от конфигурацията на регистъра. В тази фаза се конфигурират системата SERDESIF и регистрите на лентите. Ако SERDESIF е конфигуриран в режим, различен от PCIE, сигналът CONFIG2_DONE също се подава незабавно. - След това следва втората фаза на конфигурацията на регистъра (ако 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(). - След като всички PCIE регистри са конфигурирани, функцията SystemInit() записва в контролните регистри на CoreConfigP, за да покаже завършването на втората фаза на конфигурацията на регистъра; след това се заявява изходният сигнал CoreConfigP CONIG2_DONE.
- Освен горните сигнални твърдения/деактивирания, 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 контролерите. - Когато всички периферни устройства са завършили своята инициализация, CoreResetP подава сигнала INIT_DONE; след това се заявява вътрешният регистър на CoreConfigP INIT_DONE.
Ако се използват единият или и двата MDDR/FDDR и времето за инициализация на DDR е достигнато, извежда се изходен сигнал CoreResetP DDR_READY. Потвърждаването на този сигнал DDR_READY може да се наблюдава като индикация, че DDR (MDDR/FDDR) е готов за комуникация.
Ако се използват един или повече блокове SERDESIF и втората фаза на конфигурацията на регистъра е завършена успешно, изходният сигнал на CoreResetP SDIF_READY се потвърждава. Потвърждаването на този сигнал SDIF_READY може да се наблюдава като индикация, че всички блокове SERDESIF са готови за комуникация. - Функцията SystemInit(), която е чакала да бъде заявено INIT_DONE, завършва и функцията main() на приложението се изпълнява. По това време всички използвани DDR контролери и блокове SERDESIF са инициализирани и приложението на фърмуера и логиката на FPGA тъканта могат надеждно да комуникират с тях.
Методологията, описана в този документ, разчита на Cortex-M3, изпълняващ процеса на инициализация като част от кода за инициализация на системата, изпълнен преди функцията main() на приложението.
Вижте блок-схемите на Фигура 1-1, Фигура 1-2 и Фигура 1-3 за стъпките за инициализация на FDDR/MDDR, SEREDES (не-PCIe режим) и SERDES (PCIe режим).
Фигура 1-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 блокове при включване:
- На страницата Device Features (Фигура 2-1) укажете кои DDR контролери се използват и колко SERDESIF блока се използват във вашия дизайн.
- В страницата Памет посочете типа на DDR (DDR2/DDR3/LPDDR) и данните за конфигурацията за вашата външна DDR памет. Вижте раздела Страница с памет за подробности.
- В страницата „Периферни устройства“ добавете главни матрици, конфигурирани като AHBLite/AXI, към подсистемата Fabric DDR и/или подсистемата MSS DDR FIC (по избор).
- В страницата Настройки на часовника задайте тактовите честоти за DDR подсистемите.
- Попълнете вашата спецификация за дизайн и щракнете върху Готово. Това генерира дизайна, създаден от System Builder, включително логиката, необходима за решението за „инициализация“.
- Ако използвате блокове SERDESIF, трябва да инстанциирате блоковете SERDESIF във вашия дизайн и да свържете техните портове за инициализация към тези на генерираното от System Builder ядро.
Страница с характеристики на устройството на System Builder
На страницата с характеристиките на устройството посочете кои DDR контролери (MDDR и/или FDDR) се използват и колко SERDESIF блока се използват във вашия дизайн (Фигура 2-1).
Фигура 2-1 • Страница с характеристики на устройството на System Builder
Страница с памет на System Builder
За да използвате MSS DDR (MDDR) или Fabric DDR (FDDR), изберете Тип памет от падащия списък (Фигура 2-2).
Фигура 2-2 • Външна памет на MSS
Вие трябва:
- Изберете типа DDR (DDR2, DDR3 или LPDDR).
- Определете времето за установяване на DDR паметта. Консултирайте се със спецификациите на вашата външна DDR памет, за да зададете правилното време за настройка на паметта. DDR паметта може да не успее да се инициализира правилно, ако времето за установяване на паметта не е правилно зададено.
- Или импортирайте конфигурационните данни на DDR регистъра, или задайте параметрите на вашата DDR памет. За подробности вижте Microsemi SmartFusion2 Ръководство на потребителя за високоскоростен сериен и DDR интерфейс.
Тези данни се използват за генериране на DDR регистър BFM и конфигурация на фърмуера files, както е описано в „Създаване и компилиране на фърмуерното приложение“ на страница 26 и „BFM Files Използва се за симулиране на дизайна” на страница 27. За подробности относно конфигурационните регистри на DDR контролера вижте Microsemi SmartFusion2 Ръководство на потребителя за високоскоростен сериен и DDR интерфейс.
Бившample от конфигурацията file синтаксисът е показан на фигура 2-3. Имената на регистрите, използвани в това file са същите като описаните в Microsemi SmartFusion2 Ръководство на потребителя за високоскоростен сериен и DDR интерфейс
Фигура 2-3 • Конфигурация File Синтаксис Прample
Страница с периферни устройства на System Builder
В страницата Peripherals за всеки DDR контролер се създава отделна подсистема (Fabric DDR Subsystem за FDDR и MSS DDR FIC Subsystem за MDDR). Можете да добавите Fabric AMBA Master (конфигурирано като AXI/AHBLite) ядро към всяка от тези подсистеми, за да разрешите достъп на Fabric Master до DDR контролерите. При генериране, System Builder автоматично инстанцира шинни ядра (в зависимост от типа добавен AMBA Master) и излага главния BIF на автобусното ядро и щифтовете за часовник и нулиране на съответните подсистеми (FDDR/MDDR) под подходящи групи щифтове, на отгоре. Всичко, което трябва да направите, е да свържете BIFs към подходящите ядра Fabric Master, които бихте инстанцирали в дизайна. В случай на MDDR не е задължително да добавите ядро Fabric AMBA Master към подсистемата MSS DDR FIC; Cortex-M3 е главен по подразбиране в тази подсистема. Фигура 2-4 показва страницата Периферни устройства на System Builder.
Фигура 2-4 • Страница Периферни устройства на System Builder
Страница с настройки на часовника на System 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.
Фигура 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.
Фигура 2-6 • Фабрични DDR часовници
Конфигурация на SERDESIF
Блоковете SERDESIF не се инстанцират в генерирания от System Builder дизайн. Въпреки това, за всички блокове SERDESIF, сигналите за инициализация са налични в интерфейса на ядрото на System Builder и могат да бъдат свързани към ядрата SERDESIF на следващото ниво на йерархия, както е показано на Фигура 2-7.Фигура 2-7 • Свързване на периферна инициализация на SERDESIF
Подобно на регистрите за конфигурация на DDR, всеки блок SERDES също има регистри за конфигурация, които трябва да бъдат заредени по време на изпълнение. Можете или да импортирате тези стойности на регистъра, или да използвате конфигуратора за високоскоростен сериен интерфейс (Фигура 2-8), за да въведете вашите PCIe или EPCS параметри и стойностите на регистъра се изчисляват автоматично вместо вас. За подробности вижте Ръководство за потребителя на SERDES Configurator.Фигура 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 Configurator.Фигура 3-1 • Конфигуратор на високоскоростен сериен интерфейс
Създаване на подсистема за инициализация на дизайна на FPGA
За да инициализирате DDR и SERDESIF блоковете, трябва да създадете подсистемата за инициализиране в FPGA структурата. Подсистемата за инициализация на FPGA тъкан премества данни от Cortex-M3 към конфигурационните регистри на DDR и SERDESIF, управлява последователностите за нулиране, необходими, за да могат тези блокове да работят, и сигнализира, когато тези блокове са готови да комуникират с останалата част от вашия дизайн. За да създадете подсистемата за инициализация, трябва:
- Конфигурирайте FIC_2 вътре в MSS
- Създайте екземпляр и конфигурирайте ядрата CoreConfigP и CoreResetP
- Създайте инстанция на вградения в чипа 25/50MHz RC осцилатор
- Създайте екземпляр на макроса за нулиране на системата (SYSRESET).
- Свържете тези компоненти към конфигурационните интерфейси, часовници, нулиране и PLL заключващи портове на всяко периферно устройство
MSS FIC_2 APB конфигурация
За да конфигурирате MSS FIC_2:
- Отворете диалоговия прозорец на конфигуратора FIC_2 от конфигуратора на MSS (Фигура 3-2).
- Изберете Инициализиране на периферни устройства с помощта на Cortex-M3.
- В зависимост от вашата система, поставете отметка в едно или и двете от следните квадратчета:
– MSS DDR
– Fabric DDR и/или SERDES блокове - Щракнете върху OK и продължете да генерирате MSS (можете да отложите това действие, докато не конфигурирате напълно MSS според вашите изисквания за дизайн). Портовете FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK и FIC_2_APB_M_RESET_N) вече са изложени в интерфейса на MSS и могат да бъдат свързани към ядрата CoreConfigP и CoreResetP.
Фигура 3-2 • Конфигуратор на MSS FIC_2
CoreConfigP
За да конфигурирате CoreConfigP:
- Инстанцирайте CoreConfigP във вашия SmartDesign (обикновено този, където се инстанцира MSS).
Това ядро може да се намери в каталога Libero (под Периферни устройства). - Щракнете двукратно върху ядрото, за да отворите конфигуратора.
- Конфигурирайте ядрото, за да посочите кои периферни устройства трябва да бъдат инициализирани (Фигура 3-3)
Фигура 3-3 • Диалогов прозорец CoreConfigP
CoreResetP
За да конфигурирате CoreResetP:
- Инстанцирайте CoreResetP във вашия SmartDesign (обикновено този, където се инстанцира MSS).
Това ядро може да се намери в каталога Libero, под Периферни устройства. - Щракнете двукратно върху сърцевината вътре в SmartDesign Canvas, за да отворите конфигуратора (Фигура 3-4).
- Конфигурирайте ядрото за:
– Посочете поведението за външно нулиране (утвърдено 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д. Избраната стойност трябва да съответства на обtage, който сте избрали в диалоговия прозорец Настройки на проекта Libero.
– Поставете отметка в съответните квадратчета, за да посочите кои периферни устройства използвате във вашия дизайн.
– Посочете времето за настройка на външната DDR памет. Това е максималната стойност за всички DDR памети, използвани във вашето приложение (MDDR и FDDR). Обърнете се към листа с данни на доставчика на външна DDR памет, за да конфигурирате този параметър. 200us е добра стойност по подразбиране за DDR2 и DDR3 памети, работещи на 200MHz. Това е много важен параметър за гарантиране на работеща симулация и работеща система върху силиций. Неправилна стойност за времето за утаяване може да доведе до грешки в симулацията. Обърнете се към листа с данни на доставчика на DDR памет, за да конфигурирате този параметър.
– За всеки блок SERDES във вашия проект поставете отметка в съответните квадратчета, за да посочите дали:
o Използва се PCIe
o Изисква се поддръжка за PCIe Hot Reset
o Изисква се поддръжка за PCIe L2/P2
Забележка: Ако използвате матрицата 090 (M2S090) и вашият дизайн използва SERDESIF, не е необходимо да поставяте отметки в нито едно от следните квадратчета: „Използва се за PCIe“, „Включва поддръжка за PCIe HotReset“ и „Включва поддръжка за PCIe L2/P2“. Ако използвате устройство, което не е 090 и използвате един или повече блокове SERDESIF, трябва да поставите отметка във всичките четири квадратчета под съответния раздел SERDESIF.
Забележка: За подробности относно наличните опции в този конфигуратор вижте Наръчника за CoreResetP.
Фигура 3-4 • CoreResetPConfigurator
25/50MHz осцилатор
CoreConfigP и CoreResetP се тактват от вградения в чипа 25/50MHz RC осцилатор. Трябва да създадете 25/50MHz осцилатор и да го свържете към тези ядра.
- Инстанцирайте ядрото на чип осцилаторите във вашия SmartDesign (обикновено този, в който се инстанцира MSS). Това ядро може да се намери в каталога на Libero в Часовник и управление.
- Конфигурирайте това ядро така, че RC осцилаторът да управлява FPGA тъканта, както е показано на фигура 3-5.
Фигура 3-5 • Конфигуратор на чип осцилатори
Рестартиране на системата (SYSRESET).
Макросът SYSRESET предоставя функционалност за нулиране на ниво устройство към вашия дизайн. Изходният сигнал POWER_ON_RESET_N се заявява/отменя всеки път, когато чипът е включен или когато външният щифт DEVRST_N се заявява/деактивира (Фигура 3-6).
Създайте екземпляр на макроса SYSRESET във вашия SmartDesign (обикновено този, където се инстанцира MSS). Този макрос може да бъде намерен в каталога на Libero в библиотека с макроси. Не е необходима конфигурация на този макрос.
Фигура 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/Конфиг | APB SLAVE (BIF)/ SDIF<0/1/2/3> | ||
FDDR APBmslave | APB SLAVE (BIF)/ FDDR | ||
FIC 2 APBmmaster/ CoreConfigP | FIC 2 APB MASTER/ MSS |
Фигура 3-7 • Свързване на подсистема FIC_2 APB3
Часовници и нулира връзката
Фигура 3-8 показва как да свържете CoreResetP към външни източници за нулиране и сигнали за нулиране на ядрото на периферните устройства. Той също така показва как да свържете CoreResetP към сигналите за състояние на синхронизация на часовника на периферните устройства (сигнали за заключване на PLL). Освен това показва как са свързани CoreConfigP и CoreResetP.
Фигура 3-8 • Свързване на основна подсистема SF2Reset
Създаване и компилиране на фърмуерното приложение
Когато експортирате фърмуера от LiberoSoC (Прозорец на потока на проектиране > Експортиране на фърмуер > Експортиране на фърмуер), Libero генерира следното files в /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_ .c – Съдържа SERDESIF_ регистрирайте конфигурационни данни, предоставени по време на SERDESIF_ блокова конфигурация при създаване на дизайн.
- sys_config_SERDESIF_ .h – Съдържа операторите #define, които указват броя двойки конфигурация на регистъра и номера на лентата, който трябва да бъде анкетиран за PMA_READY (само в режим PCIe).
Тези fileса необходими, за да може CMSIS кодът да се компилира правилно и да съдържа информация относно текущия ви дизайн, включително данни за периферна конфигурация и информация за конфигурацията на часовника за MSS.
Не ги редактирайте files ръчно; те се създават в съответните директории на компоненти/периферни устройства всеки път, когато се генерират компонентите на SmartDesign, съдържащи съответните периферни устройства. Ако бъдат направени промени в конфигурационните данни на някое от периферните устройства, трябва да експортирате повторно проектите на фърмуера, така че актуализираният фърмуер files (вижте списъка по-горе) се експортират в / firmware/drivers_config/sys_config папка.
Когато експортирате фърмуера, Libero SoC създава проектите на фърмуера: библиотека, където вашата конфигурация на дизайна files и драйверите са компилирани.
Ако поставите отметка в Създаване на проект квадратчето за отметка, когато експортирате фърмуера, се създава софтуерен проект SoftConsole/IAR/Keil, който да съхранява проекта на приложението, където можете да редактирате main.c и потребител C/H files. Отворете проекта SoftConSole/IAR/Keil, за да компилирате правилно CMSIS кода и правилно да конфигурирате вашето фърмуерно приложение, за да съответства на вашия хардуерен дизайн.
BFM Files Използва се за симулиране на дизайна
Когато генерирате компонентите SmartDesign, съдържащи периферните устройства, свързани с вашия дизайн, симулацията files, съответстващи на съответните периферни устройства, се генерират в /симулационна директория:
- test.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, които сте въвели (използвайки диалоговия прозорец за редактиране на регистри или в FDDR GUI) в регистрите на Fabric DDR Controller.
- SERDESIF_ _init.bfm – Ако вашият дизайн използва един или повече блокове SERDESIF, Libero генерира това file за всеки от SERDESIF_ използвани блокове; той съдържа BFM команди за запис, които симулират запис на данните от конфигурационния регистър на SERDESIF, които сте въвели (с помощта на диалоговия прозорец Редактиране на регистри или в SERDESIF_ GUI) в SERDESIF_ регистри. Ако блокът SERDESIF е конфигуриран като PCIe, това file също има някои инструкции #define, които контролират изпълнението на 2 фази на конфигурация на регистъра в перфектен ред.
- user.bfm – Съдържа потребителските команди. Тези команди се изпълняват след завършване на peripheral_init.bfm. Редактирайте това file за да въведете вашите BFM команди.
- SERDESIF_ _user.bfm – Съдържа потребителските команди. Редактирайте това file за да въведете вашите BFM команди. Използвайте това, ако сте конфигурирали SERDESIF_ блок в режим на симулация на BFM PCIe и като главен AXI/AHBLite. Ако сте конфигурирали SERDESIF_ блок в режим RTL симулация, няма да имате нужда от това file.
Когато извиквате симулация всеки път, следните две симулации files се пресъздават към /симулационна директория с актуализирано съдържание:
- подсистема.bfm – Съдържа изразите #define за всяко периферно устройство, използвано във вашия дизайн, които указват конкретната секция на peripheral_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 files и 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 Products Group webсайт.
Имейл
Можете да изпращате техническите си въпроси на нашия имейл адрес и да получавате отговори обратно по имейл, факс или телефон. Освен това, ако имате проблеми с дизайна, можете да изпратите своя дизайн по имейл fileда получават помощ.
Ние непрекъснато наблюдаваме имейл акаунта през целия ден. Когато изпращате заявката си до нас, моля, не забравяйте да включите пълното си име, името на фирмата и информацията си за контакт за ефективна обработка на заявката ви.
Имейл адресът за техническа поддръжка е soc_tech@microsemi.com.
Моите случаи
Клиентите на Microsemi SoC Products Group могат да изпращат и проследяват технически случаи онлайн, като отидат на Моите случаи.
Извън САЩ
Клиенти, нуждаещи се от помощ извън часовите зони на САЩ, могат или да се свържат с техническата поддръжка по имейл (soc_tech@microsemi.com) или се свържете с местен търговски офис. Списъци с търговски офиси можете да намерите на www.microsemi.com/soc/company/contact/default.aspx.
Техническа поддръжка на ITAR
За техническа поддръжка за RH и RT FPGA, които се регулират от Правилата за международен трафик на оръжия (ITAR), свържете се с нас чрез soc_tech_itar@microsemi.com. Като алтернатива в Моите случаи изберете Да в падащия списък ITAR. За пълен списък на регулираните от ITAR 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Корпоративен щаб на Microsemi
One Enterprise, Aliso Viejo CA 92656 САЩ
В САЩ: +1 949-380-6100
Продажби: +1 949-380-6136
Факс: +1 949-215-4996
Документи / Ресурси
![]() |
Microsemi SmartFusion2 DDR контролер и сериен високоскоростен контролер [pdf] Ръководство за потребителя SmartFusion2 DDR контролер и сериен високоскоростен контролер, SmartFusion2 DDR, контролер и сериен високоскоростен контролер, високоскоростен контролер |