A программный микропроцессор (также называемый программным микропроцессором или программным процессором ) - это ядро микропроцессора, которое может быть полностью реализовано с использованием логического синтеза. Он может быть реализован с помощью различных полупроводниковых устройств, содержащих программируемую логику (например, ASIC, FPGA, CPLD ), включая как high-end и товарные вариации.
Большинство систем, если они вообще используют программный процессор, используют только один программный процессор. Однако некоторые разработчики накладывают на ПЛИС столько программных ядер, сколько может поместиться. В этих многоядерных системах редко используемые ресурсы могут совместно использоваться всеми ядрами в кластере.
В то время как многие люди устанавливают на ПЛИС ровно один программный микропроцессор, достаточно большая ПЛИС может содержать два или более программных микропроцессора, в результате чего получается многоядерный процессор. Количество программных процессоров на одной FPGA ограничено только размером FPGA. Некоторые люди поместили десятки или сотни программных микропроцессоров на одну FPGA. Это один из способов реализации массового параллелизма в вычислениях, который также может быть применен к вычислениям в памяти.
Программный микропроцессор и окружающие его периферийные устройства, реализованные в ПЛИС, менее уязвимы к устареванию, чем дискретный процессор.
Процессор | Разработчик | Открытый исходный код | Поддержка шины | Примечания | Домашняя страница проекта | Язык описания |
---|---|---|---|---|---|---|
на основе набора инструкций ARM архитектура | ||||||
Amber | Conor Santifort | LGPLv2.1 | Wishbone | ARMv2a 3-этапный или 5-этапный конвейер | Страница проекта в Opencores | Verilog |
Cortex-M1 | ARM | № | [6] | 70–200 МГц, 32-битный RISC | [7] | Verilog |
на основе AVR архитектура набора команд | ||||||
Navré | Sébastien Bourdeauducq | Да | Direct SRAM | Atmel AVR -совместимый 8-битный RISC | Проект страница в Opencores | Verilog |
pAVR | Doru Cuturela | Да | Atmel AVR -совместимый 8-битный RISC | Страница проекта в Opencores | VHDL | |
на основе архитектуры набора команд MicroBlaze | ||||||
Shawn Tan | Да | Wishbone | Совместимость с MicroBlaze EDK 3.2 | AEMB | Verilog | |
MicroBlaze | Xilinx | Нет | PLB, OPB, FSL, LMB, AXI4 | Xilinx MicroBlaze | ||
Лаборатория CCM штата Вирджиния | Да | OPB, FSL | Двоичная, совместимая с MicroBlaze | [8] | Verilog | |
LIRMM, University of Montpellier / CNRS | Да | Wishbone | MicroBlaze ISA, VHDL | SecretBlaze | VHDL | |
на основе архитектуры набора инструкций MCS-51 | ||||||
MCL51 | Да | На основе микропроцессора с очень малой занимаемой площадью Ядро 8051 | 312 LUT Artix-7. Четырехъядерная версия 8051 - это 1227 LUT. | MCL51 Core | ||
TSK51 / 52 | Altium | без лицензионных отчислений | Wishbone / Intel 8051 | 8-bit Intel 8051 набор команд совместимая альтернатива с более низким тактовым циклом | Embedded Design на Altium Wiki | |
на основе архитектуры набора команд MIPS | ||||||
BERI | Кембриджский университет | BSD | MIPS | Страница проекта | Bluespec | |
Dossmatik | CC BY-NC 3.0, за исключением случаев, когда коммерческие заявители должны платить лицензионный сбор. | Конвейерная шина | Этапы конвейера набора инструкций MIPS I | Dossmatik | VHDL | |
TSK3000A | Altium | Royalty-free | Wishbone | 32 -bit R3000 - модифицированный RISC-стиль ЦП с гарвардской архитектурой | Встроенный дизайн на Altium Wiki | |
на основе архитектуры набора команд PicoBlaze | ||||||
Pablo Bleyer | Да | Совместимость с процессорами PicoBlaze | PacoBlaze | Verilog | ||
PicoBlaze | Xilinx | Нет | Xilinx PicoBlaze | VHDL, Verilog | ||
на основе RISC-V архитектура набора команд | ||||||
f32c | Университет Загреба | BSD | AXI, SDRAM, SRAM | 32-бит, RISC- Подмножества V / MIPS ISA (перенастраиваемые), набор инструментов GCC | f32c | VHDL |
NEORV32 | Стефан Нолтинг | BSD | Wishbone b4 | rv32 [i / e] [m] [c] + привилегированный процессор, совместимый с ISA RISC-V, настраиваемая периферия / SoC, набор инструментов GCC | GitHub OpenCores | VHDL |
VexRiscv | Спинальный ЛВП | Да | AXI4 / Avalon | 32-бит, RISC-V, до 340 МГц на Artix 7. До 1,44 DMIPS / МГц. | https://github.com/SpinalHDL/VexRiscv | VHDLVerilog (SpinalHDL) |
на основе архитектуры набора команд SPARC | ||||||
LEON2 (-FT) | ESA | Да | AMBA2 | SPARC V8 | ESA | VHDL |
LEON3 / 4 | Aeroflex Gaisler | Да | AMBA2 | SPARC V8 | Aeroflex Gaisler | VHDL |
OpenPiton | Princeton Parallel Group | Да | Manycore SPARC V9 | OpenPiton | Verilog | |
OpenSPARC T1 | Sun | Да | 64-битная | OpenSPARC.net | Verilog | |
Tacus / PIPE5 | TemLib | Да | Конвейерная шина | SPARC V8 | TEMLIB | VHDL |
на основе x86 архитектуры набора команд | ||||||
CPU86 | HT-Lab | Да | 8088-совместимый процессор в VHDL | cpu86 | VHDL | |
MCL86 | Да | Предоставляется 8088 BIU. Остальные легко создать. | Точный цикл 8088/8086 реализован с помощью микросеквенсора. Использование Кинтекс-7 менее 2%. | MCL86 Core | ||
s80x86 | Jamie Iles | GPLv3 | Custom | 80186-совместимое ядро GPLv3 | s80x86 | SystemVerilog |
Zet | Зевс Гомес Мармолехо | Да | Wishbone | клон ПК x86 | Zet | Verilog |
Александр Осман | 3-Clause BSD | Avalon | i486 SX-совместимое ядро | ao486 | Verilog | |
Другие архитектуры | ||||||
ARC | ARC International, Synopsys | Нет | 16/32-битный ISA RISC | DesignWare ARC | Verilog | |
ERIC5 | Entner Electronics | Нет | 9-битный RISC, очень маленький размер, C- программируемый | ERIC5 | VHDL | |
H2 CPU | Ричард Джеймс Хоу | MIT | Custom | 16-битная стековая машина, предназначенная для выполнения Forth непосредственно, маленький | ЦП H2 | VHDL |
Instant SoC | Ядра FPGA | Нет | Custom | 32-битное расширение RISC-V M, определяется SoC на C ++ | Instant SoC | VHDL |
JOP | Martin Schoeberl | Да | / Wishbone (расширение) | Стек-ориентированная поддержка жесткого реального времени, выполнение байт-кода Java напрямую | Jop | VHDL |
LatticeMico8 | Lattice | Да | Wishbone | LatticeMico8 | Verilog | |
LatticeMico32 | Lattice | Да | Wishbone | LatticeMico32 | Verilog | |
LXP32 | Алексей Кузнецов | MIT | Wishbone | 32-битный, трехступенчатый конвейер, регистровый файл на основе блочного ОЗУ | lxp32 | VHDL |
MCL65 | Да | Ультра-компактный микропроцессор- на базе 6502 core | 252 LUT Spartan-7. Такт точный. | MCL65 Core | ||
MRISC32-A1 | Marcus Geelnard | Да | Wishbone, B4 / конвейерный | 32-битный RISC / векторный ЦП с настраиваемым ISA | MRISC32 | VHDL |
NEO430 | Стефан Нолтинг | Да | Wishbone (Avalon, AXI4-Lite) | 16-битный MSP430 ISA -совместимость, очень маленький размер, множество периферийных устройств, широкие возможности настройки | NEO430 | VHDL |
Nios, Nios II | Altera | Нет | Avalon | Altera Nios II | Verilog | |
OpenRISC | OpenCores | Да | Wishbone | 32-бит; сделано на ASIC, Actel, Altera, Xilinx FPGA. | [9] | Verilog |
TU Darmstadt / TU Dresden | Да | Custom (Поддержка AXI в разработке) | 18-битный ISA (поддержка GNU Binutils / GCC в разработке) | SpartanMC | Verilog | |
SYNPIC12 | Miguel Angel Ajo Pelayo | MIT | Совместимость с PIC12F, программа синтезирована in gates | nbee.es | VHDL | |
Ян Грей | Нет | Абстрактная шина XSOC | 16-битный ЦП RISC и SoC, представленные в Circuit Cellar Журнал № 116-118 | XSOC / xr16 | Схема | |
Ян Гвидон | AGPLv3 | Direct SRAM | 16 или 32 бит, RTL в VHDL asm в JS, подмножество микроконтроллера: готово | yasep.org (требуется Firefox ) | VHDL | |
ZipCPU | Gisselquist Technology | GPLv3 | Wishbone, B4 / pipelined | 32-разрядный ЦП, ориентированный на минимальное использование ресурсов FPGA | zipcpu.com | Verilog |
ZPU | Zylin AS | Да | Wishbone | ЦП на базе стека, настраиваемая 16/32 битная датаапа th, eCos поддержка | Zylin CPU | VHDL |
RISC5 | Niklaus Wirth | Да | Custom | Запуск полной графической системы Oberon, включая редактор и компилятор. Программное обеспечение можно разрабатывать и запускать на одной плате FPGA. | www.projectoberon.com/ | Verilog |