Aeroflex Gaisler AB
spacer spacer
spacer
Leon3 Processor

Introduction

The LEON3 is a synthesisable VHDL model of a 32-bit processor compliant with the SPARC V8 architecture. The model is highly configurable, and particularly suitable for system-on-a-chip (SOC) designs. The full source code is available under the GNU GPL license, allowing free and unlimited use for research and education. LEON3 is also available under a low-cost commercial license, allowing it to be used in any commercial application to a fraction of the cost of comparable IP cores. The LEON3 processor has the following features:

  • SPARC V8 instruction set with V8e extensions
  • Advanced 7-stage pipeline
  • Hardware multiply, divide and MAC units
  • High-performance, fully pipelined IEEE-754 FPU
  • Separate instruction and data cache (Harvard architecture) with snooping
  • Configurable caches: 1 - 4 ways, 1 - 256 kbytes/way. Random, LRR or LRU replacement
  • Local instruction and data scratch pad RAM, 1 - 512 Kbytes
  • SPARC Reference MMU (SRMMU) with configurable TLB
  • AMBA-2.0 AHB bus interface
  • Advanced on-chip debug support with instruction and data trace buffer
  • Symmetric Multi-processor support (SMP)
  • Power-down mode and clock gating
  • Robust and fully synchronous single-edge clock design
  • Up to 125 MHz in FPGA and 400 MHz on 0.13 um ASIC technologies
  • Fault-tolerant and SEU-proof version available for space applications
  • Extensively configurable
  • Large range of software tools: compilers, kernels, simulators and debug monitors
  • High Performance: 1.4 DMIPS/MHz, 1.8 CoreMark/MHz (gcc -4.1.2)


The LEON3 processor is distributed as part of the GRLIB IP library, allowing simple integration into complex SOC designs. GRLIB also includes a configurable LEON3 multi-processor design, with up to 4 CPU's and a large range of on-chip peripheral blocks.

 

Configuration

The LEON3 processor is fully prametrizable through the use of VHDL generics, and does not rely on any global configuration package. It is thus possible to instantiate several processor cores in the same design with different configurations. The LEON3 template designs can be configured using a graphical tool built on tkconfig from the linux kernel. This allows new users to quickly define a suitable custom configuration. The configuration tool not only configures the processor, but also other on-chip peripherals such as memory controllers and network interfaces.

tkconfig

Synthesis

The LEON3 processor can be synthesised with common synthesis tools such as Synplify, Synopsys DC and Cadence RC. The core will reach up 125 MHz on FPGA and 400 MHz on 0.13 um ASIC technologies. The core area (pipeline, cache controllers and mul/div units) requires only 20 - 25 Kgates or 3500 LUT, depending on the configuration. The LEON3 processor can also be synthezised with Xilinx XST and Altera Quartus, either through scripts or by using the graphical interfaces of the Xilinx and Altera tools.

Distribution

LEON3 is distributed as part of the GRLIB IP library, and the library contains LEON3 templates designs for several popular FPGA prototyping boards. Pre-synthesized FPGA programming files are also provided.

SPARC Conformance

LEON3 has been certified by SPARC International as being SPARC V8 conformant. The certification was completed on May 1, 2005.

sparc-cert

Software development

Being SPARC V8 conformant, compilers and kernels for SPARC V8 can be used with LEON3 (kernels will need a LEON bsp). To simplify software development, Aeroflex Gaisler is providing BCC, a free C/C++ cross-compiler system based on gcc and the Newlib embedded C-library. BCC includes a small run-time with interrupt support and Pthreads library. For multi-threaded and/or multi-processor applications, a LEON3 port of the eCos real-time kernel is available. A LEON3 port of RTEMS 4.6.x is available in form of the RCC cross-compiler, a system that supports RTEMS for ERC32, LEON2 and LEON3. For industrial and high-rel applications, ports for NucleusVxWorks 5.4, and 6.5 are available, as well as ThreadX.

Linux support for LEON3 is provided through a special version of the SnapGear Embedded Linux distribution. SnapGear Linux is a full source package, containing kernel, libraries and application code for rapid development of embedded Linux systems. The LEON3 port of SnapGear supports both MMU and non-MMU LEON configurations, as well as the optional V8 mul/div instructions and floating-point unit (FPU). A single cross-compilation tool-chain is provided which is capable of compiling the kernel and applications for any configuration. The latest version of Snapgear now also includes multi-processor support (SMP) for multi-core LEON3 systems. 

Debugging is generally done using the gdb debugger, and a graphical front-end such as DDD or Eclipse. It is possible to perform source-level symbolic debugging, either on a simulator or using real target hardware. Aeroflex Gaisler provides TSIM, a high-performance LEON3 simulator which seamlessly can be attached to gdb and emulate a LEON3 system at more than 30 MIPS. The GRMON monitor interfaces to the LEON3 on-chip debug support unit (DSU), implementing a large range of debug functions as well as a GDB gateway. For multi-processor and/or advanced SOC designs, the GRSIM multi-core simulator is available for early software development.

Community

Aeroflex Gaisler maintains two email lists for those interested in the open-source LEON processor. The lists are hosted on Yahoo Groups, and include a searchable archive.

  • leon_sparc is a general list discussing all aspects of LEON utilization, synthesis and software development.
  • leon_announce is a read-only list announcing new LEON releases or bug fixes.

spacer

spacer
spacer spacer spacer spacer spacer spacer
Copyright 2008 Aeroflex Gaisler AB.