В современном мире существует огромное множество микропроцессоров, микроЭВМ, ПЛИСов и другой электроники. Однако для разработок чаще используются процессоры с жесткой логикой, но использование программных процессоров открывает новые возможности. В последнее время часто цифровая аппаратура разрабатывается как «система на кристалле» (СнК), в которой наряду с цифровой аппаратной логикой используются программные процессоры, что экономически выгодно и процесс проектирования становится проще.
Программный процессор - это микропроцессорное ядро, которое может быть полностью создано с использованием только логического синтеза. Он реализуется с использованием различных полупроводниковых устройств, содержащих программируемую логику (ПЛИС - например, FPGA, CPLD).
Большинство систем используют единственный программный процессор. Одним из распространенных программных процессоров - это два IP ядра от фирмы Xilinx: MicroBlase и PicoBlase.
MicroBlaze - имеет универсальные средства связи с периферией, обеспечивающие возможность применять его в разнообразных встроенных приложениях. Основная шина ввода-вывода CoreConnect PLB - обычная шина с возможностью работы в режимах master и slave. Большинство IP-блоков как от Xilinx, так и от сторонних производителей подключаются напрямую к PLB (или через мост между шинами PLB и OPB). Для доступа к внутренней памяти ПЛИС (BRAM), MicroBlaze использует специальную шину LMB, что снижает нагрузку на другие шины.
Для конфигурирования доступны различные параметры MicroBlaze: могут быть отдельно специфицированы размер кэш, длина конвейера (3 или 5-уровневый), встроенная периферия, блок управления памятью, шинные интерфейсы и так далее (всего более 70 параметров). Кроме того, ключевые команды процессора, которые редко используются, но при этом их дорого воспроизводить «в железе», могут быть выборочно добавлены или удалены (то есть блоки умножения и деления для операций с плавающей точкой и другие математические функции). Этот набор настроек дает разработчику возможность четче определить грань между аппаратной и программной частью в проекте.
Операционная система с упрощенной защитой и виртуальной памятью, например μClinux или FreeRTOS может работать без блока управления памятью на MicroBlaze. С блоком управления памятью возможна работа операционных систем, требующих аппаратной поддержки страничной организации памяти и защиты (таких как ядро Linux), хотя производительность MicroBlaze значительно ниже, чем у таких аппаратных микропроцессорных ядер, встроенных в FPGA, как PowerPC-405 в Virtex-4.
PicoBlaze - общее название серии свободно распространяемых процессорных ядер, созданных фиромой Xilinx для своих ПЛИС (FPGA и CPLD). В основе PicoBlaze лежит архитектура 8-битного RISC-процессора; скорость работы на ПЛИС семейства Virtex4 может достигать 100 MIPS. Процессор имеет 8-битные порты данных и адреса, обеспечивающие доступ к разнообразной периферии.
Один из открытых процессорных ядер, который получил широкое распространение, это LEON, который позволяет синтезировать VHDL модель, имеет 32-разрядный процессор совместимый с архитектурой SPARC V8 . Модель легко конфигурируется и особенно подходит для СнК конструкции.
Не менее известный чем LEON это OpenRISC, который первый установил набор спецификаций для семейства 32- и 64-разрядных RISC /DSP процессоров. Его открытая и модульная архитектура позволяет расширить спектр использования кристалла. Разработанный с акцентом на производительность, простоту, низкую потребляемую мощность, масштабируемость и универсальность реализации. Может работать с частотой до 100 МГц.
Исходя из данных видно, что производители предоставляют право выбора на использование коммерческих или Open Source программ для своих изделий. Коммерческие варианты программных процессорных ядер часто распространяются с программным обеспечением фирмы производителя конкретной ПЛИС.