LatticeMico32 es un núcleo suave de microprocesador de 32 bits de Lattice Semiconductor optimizado para arreglos de puertas programables en campo (FPGA). Utiliza una arquitectura de Harvard , lo que significa que los buses de instrucciones y datos están separados. La lógica de arbitraje de bus puede utilizarse para combinar los dos buses, si se desea.
Diseñador | Semiconductor de celosía |
---|---|
Bits | 32 bits |
Introducido | 2006 |
Diseño | RISC |
Tipo | Registrarse-Registrarse |
Codificación | 32 bits fijo |
Derivación | Comparar y bifurcar |
Endianidad | Grande |
Extensiones | Usuario definido |
Abierto | Sí, y libre de regalías |
Registros | |
Propósito general | 32 |
LatticeMico32 tiene una licencia de núcleo gratuita (IP). Esto significa que el Mico32 no está restringido a los FPGA Lattice y puede usarse legalmente en cualquier arquitectura de host ( FPGA , ASIC o emulación de software (por ejemplo, QEMU )). Es posible incrustar un núcleo LatticeMico32 en FPGA Xilinx y Altera , además de las partes Lattice para las que se desarrolló LatticeMico32. AMD PowerTune utiliza LatticeMico32. [1]
Tanto el núcleo de la CPU como la cadena de herramientas de desarrollo están disponibles en forma de 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 (R0 generalmente se establece en cero por convención, sin embargo, R0 es un registro estándar y se le pueden asignar otros valores si así se desea).
- Hasta 32 interrupciones externas
- Conjunto de instrucciones configurables que incluyen instrucciones definidas por el usuario
- Cachés configurables opcionales (asignados directamente o asociativos de conjuntos bidireccionales, con una variedad de tamaños y disposiciones de caché)
- Memorias canalizadas opcionales
- Interfaces de memoria Dual Wishbone (un bus de instrucciones de solo lectura, un bus de datos / periféricos de lectura-escritura)
- E / S mapeadas en memoria
- Tubería de 6 etapas
Cadena de herramientas
- GCC - compilador C / C ++. Se ha agregado soporte para LatticeMico32 a GCC 4.5.0, pero hay parches disponibles para agregar soporte LatticeMico32 a GCC 4.4.0.
- Binutils - Ensamblador, enlazador y utilidades binarias; Binutils ha admitido LatticeMico32 desde la versión 2.19.
- GDB : depurador
- Eclipse - IDE
- Newlib - biblioteca C
- µCos-II , µITRON , RTEMS : sistemas operativos en tiempo real
- μClinux - O / S
Ver también
Referencias
- ^ "Análisis de firmware AMD x86 SMU" . 2014-12-27.
enlaces externos
- Sitio web LatticeMico32 de Lattice
- Puerto uCLinux al Milkymist SoC (que usa LatticeMico32)
- Portabilidad de ERIKA Enterprise (OSEK / VDX API) para LatticeMico32
- Emulador LatticeMico32 en JavaScript (cf. jslinux de Fabrice Bellard )