|This article relies too much on references to primary sources. (November 2012)|
LEON is a 32-bit CPU microprocessor core, based on the SPARC-V8 RISC architecture and instruction set. It was originally designed by the European Space Research and Technology Centre (ESTEC), part of the European Space Agency (ESA), and after that by Gaisler Research. It is described in synthesizable VHDL. LEON has a dual license model: An LGPL/GPL FLOSS license that can be used without licensing fee, or a proprietary license that can be purchased for integration in a proprietary product. The core is configurable through VHDL generics, and is used in system-on-a-chip (SOC) designs both in research and commercial settings.
The LEON project was started by the European Space Agency (ESA) in late 1997 to study and develop a high-performance processor to be used in European space projects. The objectives for the project were to provide an open, portable and non-proprietary processor design, capable to meet future requirements for performance, software compatibility and low system cost. Another objective was to be able to manufacture in a Single event upset (SEU) sensitive semiconductor process. To maintain correct operation in the presence of SEUs, extensive error detection and error handling functions were needed. The goals have been to detect and tolerate one error in any register without software intervention, and to suppress effects from Single Event Transient (SET) errors in combinational logic.
The LEON family includes the first LEON1 VHSIC Hardware Description Language (VHDL) design that was used in the LEONExpress test chip developed in 0.25 μm technology to prove the fault-tolerance concept. The second LEON2 VHDL design was used in the processor device AT697 from Atmel (F) and various system-on-chip devices. These two LEON implementations were developed by ESA. Gaisler Research, now Aeroflex Gaisler, developed the third LEON3 design and has announced the availability of the fourth generation LEON, the LEON4 processor.
LEON processor models and distributions
A LEON processor can be implemented in programmable logic such as an FPGA or manufactured into an ASIC. This section and the subsequent subsections focus on the LEON processors as soft IP cores and summarise the main features of each processor version and the infrastructure with which the processor is packaged, referred to as a LEON distribution.
All processors in the LEON series are based on the SPARC-V8 RISC architecture. LEON2(-FT) has a five-stage pipeline while later versions have a seven-stage pipeline. LEON2 and LEON2-FT are distributed as a system-on-chip design that can be modified using a graphical configuration tool. While the LEON2(-FT) design can be extended and re-used in other designs, its structure does not emphasise re-using parts of the design as building blocks or enable designers to easily incorporate new IP cores in the design.
The standard LEON2(-FT) distribution includes the following support cores:
- Interrupt controller
- Debug support unit with trace buffer
- Two 24-bit timers
- Two UARTs
- 16-bit I/O port
- Memory controller.
The LEON3, LEON3FT and LEON4 cores are typically used together with the GRLIB IP Library. While the LEON2 distributions contain one design that can be used on several target technologies, GRLIB contains several template designs, both for FPGA development boards and for ASIC targets that can be modified using a graphical configuration tool similar to the one in the LEON2 distribution. The LEON/GRLIB package contains a larger number of cores compared to the LEON2 distributions and also include a plug and play extension to the on-chip AMBA bus. IP cores available in GRLIB include:
- 32-bit SDRAM controller
- 32-bit PCI bridge with DMA
- 10/100/1000 Mbit Ethernet MAC
- 8/16/32-bit PROM and SRAM controller
- 16/32/64-bit DDR/DDR2 controllers
- USB 2.0 host and device controllers
- CAN controller
- TAP controller
- SPI, I2C, ATA controllers
- UART with FIFO
- Modular timer unit
- Interrupt controller
- General purpose I/O port
FPGA Design Flow
The term LEON2/LEON2-FT often refer to the LEON2 system-on-chip design, which is the LEON2 processor core together with the standard set of peripherals available in the LEON2(-FT) distribution. Later processors in the LEON series are used in a wide range of designs and are therefore not as tightly coupled with a standard set of peripherals. With LEON3 and LEON4 the name typically refers to only the processor core, while LEON/GRLIB is used to refer to the complete system-on-chip design.
LEON2 processor core
LEON2 has the following characteristics:
- The GNU LGPL allows a high degree of freedom of intervention on the freely-available source code.
- Configurability is a key feature of the project, and is achieved through the usage of VHDL generics.
- It offers all basic functions of a pipelined in-order processor.
- It is a fairly-sized VHDL project (about 90 files, for the complete LEON2 distribution, including peripheral IP cores)
LEON2-FT processor core
The LEON2-FT processor is the single event upset fault tolerant (FT) version of the LEON2 processor. Flip-flops are protected by triple modular redundancy and all internal and external memories are protected by EDAC or parity bits. Special licence restrictions apply to this IP (distributed by the European Space Agency). Among other satellites, the processor was used in ESA's Intermediate eXperimental Vehicle (IXV) in 2015.
LEON3 processor core
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 use for any purpose without licensing fee. LEON3 is also available under a proprietary license, allowing it to be used in proprietary applications.
There are several differences between the two LEON2 processor models and the LEON3. LEON3 includes SMP support and a seven-stage pipeline, while LEON2 does not support SMP and has a five-stage pipeline.
LEON3-FT processor core
The LEON3FT is a fault-tolerant version of the standard LEON3 SPARC V8 Processor. It has been designed for operation in the harsh space environment, and includes functionality to detect and correct single event upset (SEU) errors in all on-chip RAM memories. The LEON3FT processor support most of the functionality in the standard LEON3 processor, and adds the following features:
- Register file SEU error-correction of up to 4 errors per 32-bit word
- Cache memory error-correction of up to 4 errors per tag or 32-bit word
- Autonomous and software transparent error handling
- No timing impact due to error detection or correction
The following features of the standard LEON3 processor are not supported by LEON3FT
- Local scratchpad RAM (neither for instruction nor for data)
- Cache locking
- LRR (least recently replaced) cache replacement algorithm
The LEON3FT core is distributed together with a special FT version of the GRLIP IP library. Only netlist distribution is possible.
A FPGA implementation called LEON3FT-RTAX is proposed for critical space applications.
LEON4 processor core
In January 2010, the fourth version of the LEON processor was released. This release has the following new features:
- Static branch prediction added to pipeline
- Optional level-2 cache
- 64-bit or 128-bit path to AMBA AHB interface
- Higher performance possible (claimed by manufacturer: 1.7 DMIPS/MHz as opposed to 1.4 DMIPS/MHz of LEON3)
Real-time OS support
The Real-time operating systems that support the LEON core are currently RTLinux, PikeOS, eCos, RTEMS, Nucleus, ThreadX, OpenComRTOS, VxWorks (as per a port by Gaisler Research), LynxOS (also per a port by Gaisler Research), POK (a free ARINC653 implementation released under the BSD licence) and ORK+, an open-source real-time kernel for high-integrity real-time applications with the Ravenscar Profile.
- "European Space Agency launches free Sparc-like core", Peter Clarke, EE Times, 03/06/2000
- Free Sparc processor developer goes Commercial, Peter Clarke, Silicon Strategies, EEtimes, 02/24/2005
- D&R Industry Articles, Successful Use of an Open Source Processor in a Commercial ASIC
- "Next Generation Multipurpose Microprocessor", J. Andersson, J. Gaisler, R. Weigand, DAta Systems In Aerospace 2010 (DASIA2010), 2010 
- Gaisler Research, Press release of the LEON4 processor
- European Space Agency, LEON2FT
- Aeroflex Gaisler, SOC Library
- Gaisler Research, now Aeroflex Gaisler, GRLIB User's Manual
- Buttelmann, A nice LEON3 simulation guide
- ESA Microelectronics, system-on-chip development
- Gaisler Research, LEON3 processor characteristics
- European Space Agency IP Cores Library LEON-2 FT page
- LEON: the space chip that Europe built, Spacedaily.com, 9 January 2013
- Gaisler Research, LEON3FT-RTAX Fault-tolerant Processor
- SPARC: Open Source at DMOZ
- Gaisler Research
- LEON3 tutorial
- GNU/Linux on the SPARC architecture with original port on LEON