LatticeMico32 es un núcleo blando de microprocesador RISC ( computadora de conjunto de instrucciones reducido ) de 32 bits de Lattice Semiconductor, optimizado para matrices de puertas programables en campo (FPGA). Utiliza una arquitectura Harvard , por lo que los buses de instrucciones y datos están separados. Si se desea, se puede utilizar lógica de arbitraje de bus para combinar ambos buses.
LatticeMico32 se licencia bajo una licencia de núcleo (IP) libre. Esto significa que Mico32 no está restringido a las FPGA de Lattice y puede usarse legalmente en cualquier arquitectura host (FPGA, circuito integrado de aplicación específica (ASIC) o emulación de software como QEMU ). Es posible integrar un núcleo LatticeMico32 en FPGA de Xilinx y Altera , además de en los componentes de Lattice Semiconductor para los que se desarrolló LatticeMico32. AMD PowerTune utiliza LatticeMico32. [ 1 ]
El núcleo de la CPU y el conjunto de herramientas de desarrollo están disponibles como código fuente, lo que permite a terceros implementar cambios en la arquitectura del procesador.
Características
- Arquitectura de carga/almacenamiento RISC
- Ruta de datos de 32 bits
- Instrucciones de tamaño fijo de 32 bits (todas las instrucciones son de 32 bits, incluidas las instrucciones de salto, llamada y bifurcación).
- 32 registros de propósito general (por convención, R0 suele estar configurado a cero; sin embargo, R0 es un registro estándar y se le pueden asignar otros valores si se desea).
- Hasta 32 interrupciones externas
- Conjunto de instrucciones configurable, incluidas las instrucciones definidas por el usuario.
- Cachés configurables opcionales (de mapeo directo o asociativas de dos vías, con una variedad de tamaños y disposiciones).
- Memorias en paralelo opcionales
- Interfaces de memoria Dual Wishbone (un bus de instrucciones de solo lectura, un bus de datos/periféricos de lectura y escritura)
- E/S mapeada en memoria
- Tubería de 6 etapas
Cadena de herramientas
- GNU Compiler Collection (GCC) – Compilador de C/C++; se agregó compatibilidad con LatticeMico32 en GCC 4.5.0, hay parches disponibles para la compatibilidad en GCC 4.4.0.
- Binutils : utilidades para ensamblador, enlazador y binario; compatible con LatticeMico32 desde la versión 2.19.
- Depurador GNU (GDB) – Depurador
- Eclipse – Entorno de desarrollo integrado (IDE)
- Newlib – Biblioteca C
- μCos-II , μITRON , RTEMS : sistemas operativos en tiempo real (RTOS)
- μClinux – sistema operativo
Véase también
- Milkymist : sistema en un chip (SoC) basado en LatticeMico32 .
Referencias
- ↑ "Análisis del firmware SMU de AMD x86" . 27/12/2014.
Enlaces externos
- Sitio web oficial
- linux-milkymist en GitHub , puerto de uCLinux para Milkymist SoC, que utiliza LatticeMico32.
- jslm32 en GitHub , emulador de LatticeMico32 en JavaScript, cf. jslinux de Fabrice Bellard.
- Portación de ERIKA Enterprise (OSEK/VDX API) para LatticeMico32
- microprocesadores blandos