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
Сторінка пам'яті побудовника системи
Щоб використовувати 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.
Колишнійampконфігурації file синтаксис показаний на малюнку 2-3. Імена реєстрів, які використовуються в цьому file такі ж, як описано в Посібник користувача високошвидкісних послідовних інтерфейсів Microsemi SmartFusion2 та DDR
Рисунок 2-3 • Конфігурація File Синтаксис Прample
Сторінка периферійних пристроїв System Builder
На сторінці Peripherals для кожного контролера DDR створюється окрема підсистема (підсистема Fabric DDR для FDDR і підсистема MSS DDR FIC для MDDR). Ви можете додати ядро Fabric AMBA Master (налаштоване як AXI/AHBLite) до кожної з цих підсистем, щоб надати доступ master fabric до контролерів DDR. Після генерації System Builder автоматично створює екземпляри шинних ядер (залежно від типу доданого AMBA Master) і надає головний BIF ядра шини та контакти синхронізації та скидання відповідних підсистем (FDDR/MDDR) у відповідних групах контактів для зверху. Усе, що вам потрібно зробити, це під’єднати BIF до відповідних ядер 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 МГц.
- 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 МГц і 333 МГц.
- 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.Малюнок 2-8 • Конфігуратор високошвидкісного послідовного інтерфейсу
Після того як ви об’єднали свою логіку користувача з блоком System Builder і блоком SERDES, ви можете створити свій SmartDesign верхнього рівня. Це генерує всі HDL і BFM fileякі необхідні для впровадження та моделювання вашого проекту. Потім ви можете продовжити решту процесу проектування.
Використання SmartDesign для створення дизайну за допомогою блоків DDR і SERDESIF
У цьому розділі описано, як зібрати повне рішення «ініціалізації» без використання SmartFusion2 System Builder. Мета полягає в тому, щоб допомогти вам зрозуміти, що ви повинні робити, якщо ви не бажаєте використовувати System Builder. У цьому розділі також описано, що насправді генерує інструмент System Builder. У цьому розділі описано, як:
- Введіть дані конфігурації для контролера DDR і регістрів конфігурації SERDESIF.
- Створіть екземпляр і підключіть ядра Fabric, необхідні для передачі даних конфігурації до контролерів DDR і регістрів конфігурації SERDESIF.
Конфігурація контролера DDR
Контролери MSS DDR (MDDR) і Fabric DDR (FDDR) мають бути налаштовані динамічно (під час виконання) відповідно до вимог конфігурації зовнішньої пам’яті DDR (режим DDR, ширина PHY, пакетний режим, ECC тощо). Дані, введені в конфігуратор MDDR/FDDR, записуються в регістри конфігурації контролера DDR за допомогою функції CMSIS SystemInit(). Конфігуратор має три різні вкладки для введення різних типів конфігураційних даних:
- Загальні дані (режим DDR, ширина даних, тактова частота, ECC, інтерфейс Fabric, потужність диска)
- Дані ініціалізації пам’яті (довжина пакету, порядок пакетів, режим синхронізації, затримка тощо)
- Дані часу пам'яті
Зверніться до специфікацій зовнішньої пам’яті DDR і налаштуйте контролер DDR відповідно до вимог зовнішньої пам’яті DDR.
Докладніше про конфігурацію DDR див Посібник користувача з налаштування SmartFusion2 MSS DDR.
Конфігурація SERDESIF
Двічі клацніть блок SERDES на полотні SmartDesign, щоб відкрити конфігуратор для налаштування SERDES (Малюнок 3-1). Ви можете імпортувати ці значення реєстру або скористатися конфігуратором SERDES, щоб ввести параметри PCIe або EPCS, і значення реєстру буде автоматично обчислено для вас. Для отримання додаткової інформації зверніться до Посібник користувача конфігуратора SERDES.Малюнок 3-1 • Конфігуратор високошвидкісного послідовного інтерфейсу
Створення підсистеми ініціалізації дизайну FPGA
Щоб ініціалізувати блоки DDR і SERDESIF, необхідно створити підсистему ініціалізації в структурі FPGA. Підсистема ініціалізації структури FPGA переміщує дані з Cortex-M3 до регістрів конфігурації DDR і SERDESIF, керує послідовністю скидання, необхідною для того, щоб ці блоки були в робочому стані, і сигналізує, коли ці блоки готові спілкуватися з рештою вашої конструкції. Для створення підсистеми ініціалізації необхідно:
- Налаштуйте FIC_2 всередині MSS
- Створіть екземпляр і налаштуйте ядра CoreConfigP і CoreResetP
- Створіть вбудований RC-генератор 25/50 МГц
- Створення екземпляра макросу скидання системи (SYSRESET).
- Підключіть ці компоненти до інтерфейсів конфігурації кожного периферійного пристрою, годинника, скидання та портів блокування PLL
Конфігурація MSS FIC_2 APB
Щоб налаштувати MSS FIC_2:
- Відкрийте діалогове вікно конфігуратора FIC_2 з конфігуратора MSS (Малюнок 3-2).
- Виберіть Ініціалізувати периферійні пристрої за допомогою Cortex-M3.
- Залежно від вашої системи встановіть один або обидва прапорці:
– MSS DDR
– Fabric DDR та/або блоки SERDES - Клацніть «ОК» і перейдіть до створення 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, що працює на частоті 200 МГц. Це дуже важливий параметр, щоб гарантувати робочу симуляцію та робочу систему на кремнії. Неправильне значення для часу встановлення може призвести до помилок моделювання. Зверніться до таблиці даних постачальника пам’яті 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/50 МГц
CoreConfigP і CoreResetP синхронізуються вбудованим RC-генератором 25/50 МГц. Ви повинні створити екземпляр осцилятора 25/50 МГц і підключити його до цих ядер.
- Створіть екземпляр ядра чип-осциляторів у вашому 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 • Підключення підсистеми Core SF2Reset
Створення та компіляція програми мікропрограми
Коли ви експортуєте мікропрограму з LiberoSoC (вікно Design Flow > Експорт мікропрограми > Експорт мікропрограми), 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, як визначено в конфігураторі CCC MSS. Ці частоти використовуються кодом 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 fileс. Відкрийте проект 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) у регістри контролера MSS DDR.
- FDDR_init.bfm – Якщо ваш дизайн використовує FDDR, Libero генерує це file; він містить команди запису BFM, які імітують запис даних регістра конфігурації Fabric DDR, які ви ввели (за допомогою діалогового вікна редагування регістрів або в графічному інтерфейсі FDDR) у регістри контролера Fabric DDR.
- 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 webсайт.
Електронна пошта
Ви можете надіслати свої технічні запитання на нашу електронну адресу та отримати відповіді електронною поштою, факсом або телефоном. Крім того, якщо у вас є проблеми з дизайном, ви можете надіслати свій дизайн електронною поштою files отримати допомогу.
Ми постійно контролюємо обліковий запис електронної пошти протягом дня. Надсилаючи нам запит, обов’язково вкажіть своє повне ім’я, назву компанії та контактну інформацію для ефективної обробки вашого запиту.
Електронна адреса технічної підтримки 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. Щоб отримати повний список FPGA Microsemi, регульованих ITAR, відвідайте ITAR web сторінки.
Microsemi Corporation (NASDAQ: MSCC) пропонує широкий асортимент напівпровідникових рішень для: аерокосмічна сфера, оборона та безпека; підприємства та зв'язку; ринки промислової та альтернативної енергії. Продукти включають високоефективні, високонадійні аналогові та радіочастотні пристрої, інтегральні схеми зі змішаними сигналами та радіочастотами, настроювані SoC, FPGA та повні підсистеми. Штаб-квартира Microsemi розташована в Алісо-В’єхо, штат Каліфорнія. Дізнайтеся більше за адресою 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, контролер і послідовний високошвидкісний контролер, високошвидкісний контролер |