СмартФьюжн2
Контроллер 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 см. Руководство пользователя высокоскоростных последовательных интерфейсов и интерфейсов DDR Microsemi SmartFusion2.
Теория работы
Решение для инициализации периферийных устройств использует следующие основные компоненты:
- Функция 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.
– Мониторинг сигналов блокировки PLL (SPLL) блока SERDESIF. SPLL должен быть заблокирован, чтобы гарантировать, что интерфейс AXI/AHBLite блоков SERDESIF (режим 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 используется в вашем проекте.
- На странице Memory укажите тип DDR (DDR2/DDR3/LPDDR) и данные конфигурации для вашей внешней памяти DDR. Подробнее см. в разделе Страница памяти.
- На странице «Периферийные устройства» добавьте мастера структуры, настроенные как AHBLite/AXI, в подсистему Fabric DDR и/или подсистему MSS DDR FIC (необязательно).
- На странице Clock Settings укажите тактовые частоты для подсистем DDR.
- Заполните спецификацию дизайна и нажмите «Готово». При этом создается проект, созданный сборщиком систем, включая логику, необходимую для решения «инициализации».
- Если вы используете блоки SERDESIF, вы должны создать экземпляры блоков SERDESIF в своем проекте и соединить их порты инициализации с портами ядра, созданного System Builder.
Страница функций устройства System Builder
На странице Device Features укажите, какие контроллеры 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. Для получения подробной информации см. Руководство пользователя высокоскоростных последовательных интерфейсов и интерфейсов DDR Microsemi SmartFusion2.
Эти данные используются для создания регистра DDR BFM и конфигурации прошивки. files, как описано в разделах «Создание и компиляция приложения микропрограммы» на стр. 26 и «BFM Files Используется для имитации проекта» на стр. 27. Подробнее о регистрах конфигурации контроллера DDR см. Руководство пользователя высокоскоростных последовательных интерфейсов и интерфейсов DDR Microsemi SmartFusion2.
Бывшийampфайл конфигурации file синтаксис показан на рис. 2-3. Имена регистров, используемые в этом file такие же, как описано в Руководство пользователя высокоскоростных последовательных интерфейсов и интерфейсов DDR Microsemi SmartFusion2
Рисунок 2-3 • Конфигурация File Синтаксис Примерample
Страница периферийных устройств сборщика систем
На странице Peripherals для каждого DDR-контроллера создается отдельная подсистема (Fabric DDR Subsystem для FDDR и MSS DDR FIC Subsystem для MDDR). Вы можете добавить ядро Fabric AMBA Master (настроенное как AXI/AHBLite) в каждую из этих подсистем, чтобы обеспечить доступ Fabric Master к контроллерам DDR. После генерации System Builder автоматически создает экземпляры ядер шины (в зависимости от типа добавленного мастера AMBA) и предоставляет основной BIF ядра шины, а также контакты синхронизации и сброса соответствующих подсистем (FDDR/MDDR) в соответствующих группах контактов для вершина. Все, что вам нужно сделать, это подключить BIF к соответствующим ядрам Fabric Master, экземпляры которых вы создадите в проекте. В случае MDDR необязательно добавлять ядро Fabric AMBA Master в подсистему MSS DDR FIC; Cortex-M3 является мастером по умолчанию в этой подсистеме. На рис. 2-4 показана страница периферийных устройств сборщика систем.
Рис. 2-4 • Страница «Периферийные устройства сборщика систем»
Страница настроек часов 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 • Тактовые частоты Fabric DDR
Конфигурация СЕРДЕСИФ
Блоки 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.
Конфигурация СЕРДЕСИФ
Дважды щелкните блок 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».
- В зависимости от вашей системы установите один или оба следующих флажка:
- МСС ГДР
– 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 в своем SmartDesign (обычно тот, где создается экземпляр MSS).
Это ядро можно найти в Каталоге Либеро (в разделе Периферийные устройства). - Дважды щелкните ядро, чтобы открыть конфигуратор.
- Настройте ядро, чтобы указать, какие периферийные устройства необходимо инициализировать (рис. 3-3).
Рисунок 3-3 • Диалоговое окно CoreConfigP
CoreResetP
Чтобы настроить CoreResetP:
- Создайте экземпляр CoreResetP в вашем SmartDesign (обычно тот, где создается экземпляр MSS).
Это ядро можно найти в каталоге Libero в разделе «Периферийные устройства». - Дважды щелкните ядро внутри холста SmartDesign, чтобы открыть конфигуратор (рис. 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.
- Укажите объем устройстваtagе. Выбранное значение должно соответствовать объемуtage, который вы выбрали в диалоговом окне «Настройки проекта Libero».
– Установите соответствующие флажки, чтобы указать, какие периферийные устройства вы используете в своем проекте.
– Укажите время настройки внешней памяти DDR. Это максимальное значение для всех модулей памяти DDR, используемых в вашем приложении (MDDR и FDDR). Обратитесь к техническому описанию поставщика внешней памяти DDR, чтобы настроить этот параметр. 200 мкс — хорошее значение по умолчанию для памяти DDR2 и DDR3, работающей на частоте 200 МГц. Это очень важный параметр, гарантирующий работающую симуляцию и работающую систему на кремнии. Неправильное значение времени установления может привести к ошибкам моделирования. Обратитесь к техническому описанию поставщика памяти DDR, чтобы настроить этот параметр.
– Для каждого блока SERDES в вашем проекте установите соответствующие флажки, чтобы указать:
о PCIe используется
o Требуется поддержка горячего сброса PCIe.
o Требуется поддержка PCIe L2/P2
Примечание: Если вы используете кристалл 090 (M2S090) и ваш проект использует SERDESIF, вам не нужно устанавливать какие-либо из следующих флажков: «Используется для PCIe», «Включить поддержку горячего сброса PCIe» и «Включить поддержку PCIe L2/P2». Если вы используете какое-либо устройство, отличное от 090, и используете один или несколько блоков SERDESIF, вы должны установить все четыре флажка в соответствующем разделе SERDESIF.
Примечание: Подробнее о параметрах, доступных в этом конфигураторе, см. в Руководстве по CoreResetP.
Рисунок 3-4 • CoreResetPConfigurator
Создание экземпляра генератора 25/50 МГц
CoreConfigP и CoreResetP тактируются встроенным RC-генератором 25/50 МГц. Вы должны создать экземпляр генератора 25/50 МГц и подключить его к этим ядрам.
- Включите ядро Chip Oscillators в свой SmartDesign (обычно тот, в котором создается экземпляр MSS). Это ядро можно найти в каталоге Libero в разделе Clock & Management.
- Настройте это ядро таким образом, чтобы 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)/компонент |
||
ПРЕДУСТАНОВКА APB S N/ CoreConfigP | APB S PRESET N/SDIF<0/1/2/3> | APB S ПРЕДУСТАНОВКА N/ ФДДР |
MDDR APB S PRESE TN/MSS |
APB S PCLK/CoreConfigP | APB S PCLK/SDIF | АПБ С PCLK/FDDR | МДДР АПБ С ПОЛК/МСС |
MDDR APBmslave/CoreConfig | MDDR APB ВЕДОМЫЙ (BIF)/MSS | ||
SDIF<0/1/2/3> APBmslave/Config | ПОДЧИНЕННЫЙ APB (BIF)/SDIF<0/1/2/3> | ||
ФДРДР APBmslave | ПОДЧИНЕННЫЙ APB (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 генерирует следующее 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) (например, делители скорости передачи UART MSS являются функцией скорости передачи и частоты PCLK). ).
- sys_config_SERDESIF_ .с – Содержит SERDESIF_ зарегистрировать данные конфигурации, предоставленные во время SERDESIF_ конфигурация блоков при создании дизайна.
- sys_config_SERDESIF_ .час – Содержит операторы #define, которые определяют количество пар конфигурации регистров и номер дорожки, который необходимо опрашивать для PMA_READY (только в режиме PCIe).
Эти files необходимы для правильной компиляции кода CMSIS и содержат информацию о вашем текущем проекте, включая данные о конфигурации периферийных устройств и информацию о конфигурации часов для MSS.
Не редактируйте эти fileс вручную; они создаются в соответствующих каталогах компонентов/периферийных устройств каждый раз при создании компонентов SmartDesign, содержащих соответствующие периферийные устройства. Если в данные конфигурации какого-либо из периферийных устройств внесены какие-либо изменения, необходимо повторно экспортировать проекты прошивки, чтобы обновленная прошивка files (см. список выше) экспортируются в /firmware/drivers_config/sys_config папка.
Когда вы экспортируете прошивку, Libero SoC создает проекты прошивки: библиотеку, в которой files и драйверы скомпилированы.
Если вы отметите Создать проект если вы экспортируете прошивку, создается программный проект SoftConsole/IAR/Keil для хранения проекта приложения, в котором вы можете редактировать main.c и пользовательский C/H fileс. Откройте проект SoftConSole/IAR/Keil, чтобы правильно скомпилировать код CMSIS и правильно настроить приложение встроенного ПО в соответствии с конструкцией вашего оборудования.
БФМ Files Используется для моделирования дизайна
Когда вы создаете компоненты SmartDesign, содержащие периферийные устройства, связанные с вашим проектом, симуляция files, соответствующие соответствующим периферийным устройствам, генерируются в /каталог моделирования:
- test.bfm - BFM высшего уровня file который сначала выполняется во время любого моделирования, которое проверяет процессор SmartFusion2 MSS Cortex-M3. Он выполняет периферийные_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, которые контролируют выполнение двух фаз конфигурации регистров в идеальном порядке.
- пользователь.bfm – Содержит команды пользователя. Эти команды выполняются после того, как периферийный_инит.bfm завершится. Изменить это file для ввода команд BFM.
- SERDESIF_ _user.bfm – Содержит команды пользователя. Изменить это file для ввода команд BFM. Используйте это, если вы настроили SERDESIF_ блок в режиме моделирования BFM PCIe и в качестве мастера AXI/AHBLite. Если вы настроили SERDESIF_ блок в режиме симуляции RTL, вам это не понадобится file.
Когда вы вызываете симуляцию каждый раз, следующие две симуляции files воссоздаются для Каталог /simulation с обновленным содержимым:
- подсистема.bfm – Содержит операторы #define для каждого периферийного устройства, используемого в вашем проекте, которые указывают, какой конкретный раздел следует выполнять в файле columns_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,периферия_init.bfm, MDDR_init.bfm, FDDR_init.bfm files и SERDESIF_ _init.bfm files.
Поддержка продукта
Группа продуктов Microsemi SoC поддерживает свои продукты различными службами поддержки, включая службу поддержки клиентов, центр технической поддержки клиентов, 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.
Техническая поддержка ИТАР
Для получения технической поддержки по FPGA RH и RT, которые регулируются Международными правилами торговли оружием (ITAR), свяжитесь с нами через soc_tech_itar@microsemi.com. Либо в разделе «Мои дела» выберите «Да» в раскрывающемся списке ITAR. Полный список ПЛИС Microsemi, регулируемых ITAR, см. на веб-сайте ITAR. web страница.
Корпорация Microsemi (NASDAQ: MSCC) предлагает комплексный портфель полупроводниковых решений для: аэрокосмическая промышленность, оборона и безопасность; предпринимательство и связь; и промышленные и альтернативные энергетические рынки. Продукты включают в себя высокопроизводительные и надежные аналоговые и радиочастотные устройства, смешанные сигнальные и радиочастотные интегральные схемы, настраиваемые SoC, FPGA и полные подсистемы. Штаб-квартира Microsemi находится в Алисо-Вьехо, Калифорния. Узнайте больше на www.microsemi.com.
© 2014 Корпорация Microsemi. Все права защищены. Microsemi и логотип Microsemi являются товарными знаками корпорации Microsemi. Все другие товарные знаки и знаки обслуживания являются собственностью их соответствующих владельцев.
5-02-00384-1/08.14Штаб-квартира корпорации Microsemi
One Enterprise, Алисо Вьехо, Калифорния, 92656, США
В пределах США: +1 949-380-6100
Продажи: +1 949-380-6136
Факс: +1 949-215-4996
Документы/Ресурсы
![]() |
Контроллер Microsemi SmartFusion2 DDR и последовательный высокоскоростной контроллер [pdf] Руководство пользователя Контроллер SmartFusion2 DDR и последовательный высокоскоростной контроллер, SmartFusion2 DDR, контроллер и последовательный высокоскоростной контроллер, высокоскоростной контроллер |