Использование бесплатных программных ядер Cortex-M в ПЛИС от Xilinx

Компания Xilinx и Arm объявили о сотрудничестве. Теперь разработчики, проектирующие прошивки для ПЛИС (FPGA), могут бесплатно использовать в своих проектах программные IP-ядра Cortex-M1 и Cortex-M3.
3707
В избранное

Компания Xilinx и Arm объявили о сотрудничестве. Теперь разработчики, проектирующие прошивки для ПЛИС (FPGA), могут бесплатно использовать в своих проектах программные IP-ядра Cortex-M1 и Cortex-M3.

Как известно, бесплатный сыр бывает только в мышеловке. Тем не менее, партнерство между Xilinx и Arm действительно позволяет проектировщикам ПЛИС бесплатно использовать программные IP-ядра Cortex-M1 и Cortex-M3 в своих ПЛИС-проектах (рис. 1). Благодаря развитию программы Arm DesignStart и инструменту разработки Vivado FPGA от Xilinx, разработчик смогут получить доступ к этим ядрам без каких-либо лицензионных отчислений на стадии проектирования.

Xilinx и ARM объединили усилия, чтобы обеспечить разработчикам доступ к программным IP-ядрам Cortex-M1 и Cortex-M3 при работе с ПЛИС от Xilinx

Рис. 1. Xilinx и ARM объединили усилия, чтобы обеспечить разработчикам доступ к программным IP-ядрам Cortex-M1 и Cortex-M3 при работе с ПЛИС от Xilinx

В настоящий момент речь идет о бесплатном использовании программных ядер только на этапе проектирования. То есть, если компания-разработчик использует ПЛИС в качестве опытного прототипа для отладки и последующего выпуска ASIC, то лицензионные отчисления потребуется платить уже после выполнения разработки перед началом производства ASIC. Таким образом, наличие готовых программных процессорных ядер позволяет значительно сократить затраты именно на этапе проектирования.

В то же время доступ к программным IP-ядрам Cortex-M1 и Cortex-M3 должен значительно повысить интерес к ПЛИС от Xilinx, так как их можно будет бесплатно использовать в своих собственных проектах и разработках. Также предполагается возможность одновременного использования нескольких процессорных ядер в одной ПЛИС. Конечно, для этого потребуется ПЛИС большего размера для размещения всех необходимых периферийных блоков.

При работе с семействами ПЛИС Spartan и Artix программные ядра Cortex-M1 и Cortex-M3 в большинстве случаев будут использоваться для реализации функций управления или настройки логики остальной части FPGA.

В семействах SoC Zync уже присутствуют аппаратные ядра Cortex-A и Cortex-R (рис. 2). Поэтому дополнительные программные IP-ядра Cortex-M1 и Cortex-M3 в этих SoC будут полезны в качестве сопроцессоров. Как и в случае с дискретными процессорами, микроконтроллеры Cortex-M1 и Cortex-M3 смогут взять на себя функции управления и некоторые вычисления, чтобы разгрузить более производительные процессорные ядра.

Cortex-M часто выступают в качестве сопроцессоров для более производительных аппаратных ядер, встроенных в SoC семейства Zync от Xilinx

Рис. 2. Cortex-M часто выступают в качестве сопроцессоров для более производительных аппаратных ядер, встроенных в SoC семейства Zync от Xilinx. При этом Cortex-M могут обеспечить более гибкое и эффективное управление по сравнению с Cortex-A

Разработчики могут по своему усмотрению выбирать между Cortex-M1 и более мощным Cortex-M3. Для связи с процессорным ядром в Xilinx Vivado IDE предусмотрена поддержка интерфейса AXI. Для создания своего собственного микроконтроллера проектировщику будет достаточно добавить в проект ядро, интерфейс, периферийные блоки и контроллеры прерывания.

Использование процессорных ядер Cortex-M имеет множество преимуществ. Во-первых, многие разработчики имеют большой опыт работы с Cortex-M. Во-вторых, существующие программы, созданные для дискретных микроконтроллеров с Cortex-M, могут быть относительно просто портированы для работы на ПЛИС. В-третьих, возможен и обратный путь, когда ПЛИС становится универсальной отладочной платформой для написания программ и их дальнейшего портирования на дискретные микроконтроллеры. В-четвертых, ядра Cortex-M поддерживаются сторонними инструментами разработки и отладки, в том числе такими, как Keil MDK от Arm.

Предлагаемые программные ядра не имеют новейших функций безопасности, реализованных в ядрах Cortex-M3. Тем не менее, эти функции можно реализовать самостоятельно в ПЛИС.

Взаимодействие между Xilinx и Arm, очевидно, выгодно как самим компаниям, так и разработчикам. Возможным толчком к такому партнерству стало развитие открытой платформы RISC-V, поскольку некоторые проекты ядер RISC-V уже были доступны для бесплатного использования в ПЛИС. Для RISC-V существует обширная программная поддержка, а инструменты проектирования часто имеют открытый исходный код. Единственное, чего не хватает RISC-V, это совместимости с существующими аппаратными платформами, в то время как платформы с Cortex-M0 и Cortex-M3 весьма многочисленны. На данный момент доступно более 3000 платформ, использующих эти ядра (без учета множества локальных проектов).

Программные ядра от Arm станут дополнением к уже существующему собственному программному ядру MicroBlaze от Xilinx. В дальнейшем поддержка обоих семейств программных ядер сохранится. Так что пользователи, которые ранее применяли MicroBlaze, смогут и дальше оставаться на этой платформе. В то же время стоит отметить, что ядра от ARM обеспечивают большую мобильность проектов при переходе от дискретных микроконтроллеров к ПЛИС и обратно.

Конечно, для написания большинства программ используются языки высокого уровня, такие как C или C ++, но миграция даже между «идентичными» платформами может быть проблемой. Миграция между разными платформами и вовсе может стать кошмаром, особенно при работе с периферийными устройствами.

Свободный доступ к программным ядрам Cortex-M1 и Cortex-M3 вероятно улучшит ситуацию с разработкой приложений с открытым исходным кодом на ПЛИС от Xilinx, так как у разработчиков появится возможность свободно обмениваться проектами. Таким образом, открытые программные ядра значительно упрощают выполнение проектирования и отладки с последующим выпуском полноценных ASIC.

Сравнение позиций

  • ()