Введение

Микропроцессор, предназначенный для встраивания в другие компьютерные системы.

Мягкий микропроцессор (также называемый микропроцессорным ядром или программным процессором) – это ядро микропроцессора, которое может быть полностью реализовано с помощью логического синтеза. Его можно реализовать на различных полупроводниковых устройствах, содержащих программируемую логику (например, FPGA, CPLD), включая как высокопроизводительные, так и стандартные варианты. Большинство систем, использующих мягкий процессор, используют только один. Однако некоторые разработчики размещают на FPGA столько мягких ядер, сколько позволяет размер. В таких многоядерных системах редко используемые ресурсы могут совместно использоваться всеми ядрами в кластере. Хотя многие размещают на FPGA ровно один мягкий микропроцессор, достаточно большая FPGA может вместить два или более мягких микропроцессора, что приводит к созданию многоядерного процессора. Количество мягких процессоров на одной FPGA ограничено только размером самой FPGA. Некоторые разработчики размещали на одной FPGA десятки или даже сотни мягких микропроцессоров. Это один из способов реализации массового параллелизма в вычислениях, который также может быть применен в вычислениях в памяти. Мягкий микропроцессор и его периферийные устройства, реализованные в FPGA, менее подвержены устареванию, чем дискретный процессор.

Сравнение основных

Процессор Разработчик Открытый исходный код Поддержка шины Заметки Проект Начало Описание языка на основе архитектуры команд ARM Amber Conor Santifort Wishbone ARMv2a 3-ступенчатый или 5-ступенчатый конвейер Страница проекта на Opencores Verilog Cortex M1 ARM 70–200 МГц, 32-битный RISC Verilog на основе архитектуры команд AVR Navré Sébastien Bourdeauducq Direct SRAM Atmel AVR совместимый 8-битный RISC Страница проекта на Opencores Verilog pAVR Doru Cuturela Atmel AVR совместимый 8-битный RISC Страница проекта на Opencores VHDL softavrcore Andras Pal Стандартные шины AVR (I/O, подключенные к ядру, синхронная SRAM, синхронная ПЗУ) Atmel AVR совместимый 8-битный RISC (до AVR5), периферия и функции SoC включены Verilog на основе архитектуры команд MicroBlaze AEMB Shawn Tan Wishbone MicroBlaze EDK 3.2 совместимый AEMB Verilog MicroBlaze Xilinx PLB, OPB, FSL, LMB, AXI4 Xilinx MicroBlaze OpenFire Virginia Tech CCM Lab OPB, FSL Бинарно совместим с MicroBlaze Verilog SecretBlaze LIRMM, University of Montpellier / CNRS Wishbone MicroBlaze ISA, VHDL SecretBlaze VHDL на основе архитектуры команд MCS 51 MCL51 MicroCore Labs Ультрамалый микропоследовательный 8051-й процессор 312 LUT Artix 7. Четырёхъядерная версия 8051 – 1227 LUT. MCL51 Core TSK51/52 Altium Wishbone / Intel 8051 8-битный Intel 8051 совместимый, альтернатива с меньшим количеством тактов Embedded Design on Altium Wiki на основе архитектуры команд MIPS BERI University of Cambridge MIPS Страница проекта Bluespec Dossmatik René Doss Конвейерная шина MIPS I конвейерные ступени Dossmatik VHDL TSK3000A Altium Wishbone 32-битный R3000-подобный RISC, модифицированная Гарвардская архитектура CPU Embedded Design on Altium Wiki на основе архитектуры команд PicoBlaze PacoBlaze Pablo Bleyer Совместим с процессорами PicoBlaze PacoBlaze Verilog PicoBlaze Xilinx Xilinx PicoBlaze VHDL, Verilog на основе архитектуры команд RISC V f32c University of Zagreb AXI, SDRAM, SRAM 32-битный, RISC V / подмножества MIPS ISA (перенастраиваемые), инструментарий GCC f32c VHDL NEORV32 Stephan Nolting Wishbone b4, AXI4 rv32[i/e][m][a][c][b][u][Zfinx][Zicsr][Zifencei], соответствует RISC V, доступен CPU и SoC, высоко настраиваемый, инструментарий GCC GitHub OpenCores VHDL VexRiscvSpinalHDL ✔ 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 ✔ Многоядерный SPARC V9 OpenPiton Verilog OpenSPARC T1 Sun 64-битный OpenSPARC.net Verilog Tacus/PIPE5 TemLib Конвейерная шина SPARC V8 TEMLIB VHDL на основе архитектуры команд x86 CPU86 HT Lab 8088 совместимый CPU на VHDL cpu86 VHDL MCL86 MicroCore Labs Предоставлен 8088 BIU. Другие легко создать. 8088/8086 с тактовой точностью, реализованный с помощью микропоследователя. Менее 2% использования Kintex 7. MCL86 Core s80x86 Jamie Iles Пользовательский 80186 совместимый core GPLv3 s80x86 SystemVerilog Zet Zeus Gómez Marmolejo Wishbone x86 PC клон Zet Verilog ao486 Aleksander Osman Avalon i486 SX совместимый core ao486 Verilog на основе архитектуры команд PowerPC/Power PowerPC 405S IBM CoreConnect 32-битный PowerPC v.2.03 Book E IBM Verilog PowerPC 440S IBM CoreConnect 32-битный PowerPC v.2.03 Book E IBM Verilog PowerPC 470S IBM CoreConnect 32-битный PowerPC v.2.05 Book E IBM Verilog Microwatt IBM/OpenPOWER Wishbone 64-битный PowerISA 3.0 proof of concept Microwatt @ Github VHDL Chiselwatt IBM/OpenPOWER Wishbone 64-битный PowerISA 3.0 Chiselwatt @ Github Chisel Libre SOC Libre SoC.org Wishbone 64-битный PowerISA 3.0. Реализация CPU/GPU/VPU и пользовательские векторные инструкции Libre SoC.org python/nMigen A2I IBM/OpenPOWER Пользовательский PBus 64-битный PowerPC 2.6 Book E. Ядро в порядке A2I @ Github VHDL A2O IBM/OpenPOWER Пользовательский PBus 64-битный PowerPC 2.7 Book E. Ядро вне порядка A2O @ Github Verilog Другие архитектуры ARC ARC International, Synopsys 16/32/64-битный ISA RISC DesignWare ARC Verilog ERIC5 Entner Electronics 9-битный RISC, очень маленький размер, C программируемый ERIC5 VHDL H2 CPU Richard James Howe Пользовательский 16-битный стек-автомат, предназначенный для непосредственного выполнения Forth, малый H2 CPU VHDL Instant SoC FPGA Cores Пользовательский 32-битный RISC V M Extension, SoC, определенный C++ Instant SoC VHDL JOP Martin Schoeberl SimpCon / Wishbone (расширение) Ориентированный на стек, поддержка жесткого реального времени, непосредственное выполнение байт-кода Java Jop VHDL LatticeMico8 Lattice Wishbone LatticeMico8 Verilog LatticeMico32 Lattice Wishbone LatticeMico32 Verilog LXP32 Alex Kuznetsov Wishbone 32-битный, 3-ступенчатый конвейер, регистровая память на основе Block RAM lxp32 VHDL MCL65 MicroCore Labs Ультрамалый микропоследовательный 6502-й процессор 252 LUT Spartan 7. Точный по тактам. MCL65 Core MRISC32 A1 Marcus Geelnard Wishbone, B4/конвейерный 32-битный RISC/векторный CPU, реализующий MRISC32 ISA MRISC32 VHDL NEO430 Stephan Nolting 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. Verilog SpartanMC TU Darmstadt / TU Dresden ✔ Пользовательский (поддержка AXI в разработке) 18-битный ISA (поддержка GNU Binutils / GCC в разработке) SpartanMC Verilog SYNPIC12 Miguel Angel Ajo Pelayo PIC12F совместимый, программа синтезируется в логических элементах nbee.es VHDL xr16 Jan Gray XSOC абстрактная шина 16-битный RISC CPU и SoC, представленный в журнале Circuit Cellar Magazine #116 118 XSOC/xr16 Схема YASEP Yann Guidon Direct SRAM 16 или 32 бита, RTL на VHDL & asm на JS, подмножество микроконтроллеров: готово yasep.org (требуется Firefox) VHDL ZipCPU Gisselquist Technology Wishbone, B4/конвейерный 32-битный CPU, предназначенный для минимального использования ресурсов FPGA zipcpu.com Verilog ZPU Zylin AS Wishbone На базе стека CPU, конфигурируемый 16/32-битный шинопровод данных, поддержка eCos Zylin CPU VHDLRISC5 Niklaus Wirth Пользовательский Запуск полной графической системы Oberon, включая редактор и компилятор. Программное обеспечение может быть разработано и запущено на одной FPGA плате. www.projectoberon.com/Verilog