Разработка приложений
для СнК SmartFusion2
с использованием
средств разработки
Libero SoC и SoftConsole
Р
ешить проблемы безопасности в мире Состав аппаратурных блоков, входящих того, чтобы не платить роялти за такие элемен-
«Интернета вещей» можно, предоста- в СнК SmartFusion2 и ПЛИС Igloo2, изобра- ты архитектуры, как процессор ARM Cortex-M3,
вив пользователю надежную систему жен на рис. 3. контроллер CAN-интерфейса и т. п., поскольку
защиты от несанкционированного вторжения При рассмотрении рис. 3 может показаться, известно, что довольно большое количество
не только в его данные, но и в само устрой- что Igloo2 является некоторой усеченной вер- микросхем будет иметь спрос и без указан-
ство. Подобная система защиты должна быть сией SmartFusion2. Так и есть на самом деле. ных блоков архитектуры. По выходе с кон-
реализована на уровне кристалла микросхе- Кристаллы SmartFusion2 и Igloo2 производятся вейера соответствующие чипы SmartFusion2
мы. Первыми и пока единственными семей- в едином техпроцессе. Затем на финишной ста- и Igloo2 имеют совместимость pin-to-pin, что
ствами микросхем, имеющих указанные сред- дии у некоторого количества кристаллов лазе- позволяет мигрировать с одного семейства
ства защиты на уровне, достаточном для осу- ром отсекается часть блоков. Делается это для на другое без переразводки печатной платы.
ществления концепции «Интернета вещей»,
являются системы на кристалле SmartFusion2
и ПЛИС Igloo2 корпорации Microsemi.
Данная статья открывает цикл материалов,
посвященных особенностям проектирова-
ния для систем на кристалле SmartFusion2.
Б о л е е п од р о б н о а р х и т е к т у р а С н К Создание проекта
SmartFusion2 и ПЛИС Igloo2 описана
в статье [1]. В качестве первого задания для СнК Smart-
В рамках данного цикла статей СнК Fusion2 возьмем ставший классическим пример
SmartFusion2 представляет наибольший ин- программы, выполняющей отправку сообще-
терес как чип с полным набором перифе- ния “Hello, world!” по интерфейсу UART микро-
рийных блоков. Компания Microsemi пред- контроллерной подсистемы и мигание светоди-
ставляет целую линейку отладочных плат одом, которое реализуем в FPGA-матрице.
на основе SmartFusion2 [2]. Для отработки Запускаем среду разработки Libero SoC 11.6.,
описываемых примеров проектирования по- кликнув на ярлычок на рабочем столе или Рис. 5. Создание проекта
дойдет любая из существующих. на аналогичный в меню «Пуск» (рис. 4).
Рис. 3. Сравнение аппаратных возможностей SmartFusion2 и Igloo2 Рис. 6. Выбор места расположения проекта
Рис. 12. Настройка интерфейса MMUART_0 Рис. 13. Отключение блока архитектуры, не используемого в проекте
Создаем проект (рис. 5). LedUART и его место расположения на диске. с которой будем работать. Нажимаем Next
В главном меню LiberoSoC выбираем ко- Нажимаем кнопку Next (рис. 6). (рис. 7).
манду Project/New Project, запускаем мастер В появившемся окне Device selection ука- В следующем окне выбираем настройки
создания нового проекта. В появившемся зываем нужные параметры, в выпадающих стандарта ввода/вывода по умолчанию, на-
окне указываем название нашего проекта списках выбираем PartNumber микросхемы, пряжение питания PLL и задержку старта
микросхемы после сигнала Reset. Нажимаем
кнопку Next (рис. 8).
В следующем появившемся окне отмечаем
мастер, который будем использовать для на-
стройки микроконтроллерной подсистемы.
Нажимаем кнопку Next (рис. 9).
В следующих появляющихся окнах ничего
не меняем, просто нажимаем Next до появле-
ния окна следующего содержания (рис. 10).
Сгенерированный мастером компонент
LedUART_MSS_0 отражает состояние на-
строек микроконтроллерной подсистемы
по умолчанию (рис. 11).
Нам нужно изменить эти настройки в со-
ответствии с задачами, решаемыми нашим
приложением. Приложение отправляет со-
общение “Hello world!”, используя аппарат-
ный интерфейс UART микроконтроллерной
подсистемы. Для выполнения этой операции
понадобится один контроллер интерфей-
са UART. Настроим его, дважды щелкнув
на блоке MMUART_0. В появившемся окне
выберем настройки, показанные на рис. 12.
Мигание светодиодом реализуем сред-
Рис. 11. Исходные настройки микроконтроллерной подсистемы ствами матрицы ПЛИС, микроконтроллер-
ная подсистема в этом участвовать не бу-
Рис. 16. Настройки микроконтроллерной подсистемы проекта Рис. 17. Обновление компонента
Рис. 20. Настройка генератора сигнала тактирования Рис. 23. VHDL-описание 23‑разрядного счетчика мигания светодиода
счетчика, выполнив команду File>New>HDL ния. Тест HDL-описания на языке VHDL при- кой название компонента на рабочее поле
(рис. 21). веден на рис. 23. проекта, аналогично тому, как мы это делали
В появившемся окне выберем язык HDL- Одновременно с созданием файла HDL- с компонентами из стандартного каталога.
описания (VHDL или Verilog) и введем имя описания во вкладке Design Hierarchy появи- Результат представлен на рис. 24.
создаваемого компонента (рис. 22). лось название созданного нами компонен- Для того чтобы соединить нужные контак-
После этого среда создаст текстовый файл, та — таким образом, мы получили возмож- ты, необходимо при нажатой кнопке клавиату-
в котором нужно ввести HDL-описание наше- ность использовать созданный компонент ры Ctrl выделить мышкой контакты, которые
го счетчика на выбранном нами языке описа- в нашей системе. Для этого переносим мыш- собираемся соединить, затем нажать правую
Рис. 24. Использование созданного компонента в проекте Рис. 25. Соединение «контактов» компонентов
кнопку мыши, в появившемся меню выбрать Переходим во вкладку DesignFlow и выпол- Подключаем программатор к устройству
пункт Connect, как показано на рис. 25. няем команду Place and Route>IO Constraints с СнК, подаем на плату питание, запускаем
Выход счетчика у нас имеет разрядность (рис. 28). команду Program Design/Run PROGRAM
[22:0], для зажигания светодиода будем исполь- Назначаем номера контактов внешним со- Action. В результате выполнения данной ко-
зовать только самый старший разряд, который единениям проекта. Сохраняем внесенные манды будет синтезирован файл конфигура-
нужно вычленить из группы. Для этого на- изменения и закрываем I/O Editor (рис. 29). ционной последовательности, который будет
жимаем на контакте Q [22:0] правой кнопкой В рамках данного примера ввиду простоты загружен в кристалл. Об окончании процесса
мыши и выбираем пункт Edit Slice. В появив- FPGA-части проекта мы опускаем моделиро- можно судить по зажиганию зеленого све-
шемся окне нажимаем кнопку Add Slice Entry вание дизайна в Modelsim. Разумеется, при тодиода на программаторе и миганию вы-
(зеленый знак «плюс») и заполняем таблицу разработке реальных проектов пропускать ис- бранного светодиода на плате отладочного
по образцу, представленному на рис. 26. следования поведенческой модели не следует. набора.
Выводим нужные сигналы на верхний уро-
вень для дальнейшего подключения контак-
тов СнК, последовательно нажимаем на кон-
такты Q [22] компонента MyCounter_0,
MMUART_0_FABRIC компонента LedUART_
MSS_0, в выпадающем меню выбираем
пункт Promote to Top Level (рис. 27).
Неиспользуемые выходы компонентов сле-
дует пометить выбором пункта Mark Unused
в меню, выпадающем при нажатии правой
кнопки мыши на соответствующем контакте. Рис. 26. Выделение сигнала
Выполняем команды меню Save и Generate из шины Рис. 29. Назначение номеров контактов внешним соединениям проекта
Component.
Рис. 34. Листинг программы демонстрационного примера Рис. 35. Отладка приложения в пошаговом режиме
Литература