FPGA Design Using the LEON3 Fault Tolerant Processor Core

advertisement
FPGA Design Using the
LEON3 Fault Tolerant Processor Core
Jiri Gaisler and Sandi Habinc
Gaisler
1
MAPLD 2005/1027
Outline








Introduction
Fault tolerant LEON3 processor
Design environment
Design flow
Results
Validation
Projects and availability
Lessons learned
Gaisler
2
MAPLD 2005/1027
Introduction
 High density FPGA devices are now large enough
to support SOC design for space application
 This allows completely new applications to be
implemented in FPGAs, which have previously
been limited to ASICs
 One problem however remains the same:
How to implement fault tolerant processor
based SOC designs?
Gaisler
3
MAPLD 2005/1027
Common design issues
 Processor availability issues:
• Component obsolescence, export licenses etc.
 Space application issues:
• SEU protection or hardening
 System integration issues:
• Harmonisation of interfaces (on-chip buses)
• Mapping of technology specific cells (RAM)
 Software environment issues:
• Operating system support
Gaisler
4
MAPLD 2005/1027
LEON3 SPARC V8 Processor
 Advanced 32-bit processor IP core implementing
the SPARC V8 standard instruction set
 7-stage pipline, hardware mul/div
 Separate instruction and data multi-set caches
 Multi-processor support (up to 16 processors)
 On-chip debug support unit for:
• Non-intrusive hardware debugging
• Instruction trace buffer
• On-chip bus trace buffer
Gaisler
5
MAPLD 2005/1027
LEON3 SPARC V8 Processor (cont.)
3-Port Register File
IEEE-754 FPU
Trace Buffer
7-stages
Integer pipeline
Debug Support
Debug Support Unit
HW Mul/Div
Interrupt Port
Interrupt Controller
Local I-RAM
I-Cache D-Cache Local D-RAM
Co-Processor
AHB Master I/F
AMB AHB Master (32 bit)
Gaisler
6
MAPLD 2005/1027
LEON3 Fault Tolerant Processor
 SEU tolerance by design for space applications
 All on-chip memory protected against SEUs:
• 136x32 bit register file: 4-bit parity and
duplication
• Cache RAMs use 4-bit parity and forced cache
miss on error
• No timing penalty
• Instruction re-scheduling on error
 Flip-flops assumed to be protected by technology
specific cells (or by TMR)
Gaisler
7
MAPLD 2005/1027
LEON3 design environment
 LEON3 is part of a complete design environment:
• Floating Point Unit, Mul/Div
• Timers, Interrupt Controller,
• Memory controllers (SRAM, SDRAM)
• SpaceWire, CAN, Ethernet, PS2, UART,
PCI, MIL-STD-1553B
• CCSDS Telemetry/Telecommand
 AMBA on-chip bus with new Plug and Play support
 Support for many tools and prototyping boards
 Support for portability between technologies
Gaisler
8
MAPLD 2005/1027
Typical design flow
 Download LEON3 source code from the web
 Modify design example by adding design blocks
 Simulate using one of many simulators
(several simulators supported, one free)
 Synthesize using one of many tools
(several tools supported, some free)
 Place and route FPGA using vendor specific tools
(several FPGA vendors supported, some free)
 Target design to one of many development boards
(several boards supported)
Gaisler
9
MAPLD 2005/1027
Fault Tolerant design flow
 Modify LEON3 design example by adding
additional design blocks
 Synthesize and place and route design (e.g. free
Xilinx XST web-pack or Altera Quartus web-pack)
 Validate the design on your prototype board
 This complete initial flow is based on the non-FT
version of LEON3
Gaisler
10
MAPLD 2005/1027
Fault Tolerant design flow (cont.)
 Synthesize design, using e.g. Synplify, targeting
Actel RTAX-S
 Place and route design using Actel Designer,
including the LEON3-FT EDIF netlist
 Validate the design on your enginering or flight
board
 The only thing changed is the LEON3-FT core
Gaisler
11
MAPLD 2005/1027
RTAX2000S development
 The GR-CPCI-AX prototyping board was
developed for AX2000 and RTAX2000S devices
 Initial example design successfully validated:
• LEON3
• PCI master/target
• Memory Controller
• Interrupt Controller
Gaisler
12
MAPLD 2005/1027
RTAX2000S results – LEON3
 LEON3-FT, 8 + 8 kbyte cache
• 7,500 cells (24%) + 40 of 64 RAM blocks,
(or 22,000 ASIC gates + RAM)
 LEON3-FT, 8 + 8 kbyte cache + DSU3
• 8,500 cells (27%) + 40 of 64 RAM blocks,
(or 27,000 ASIC gates + RAM)
Gaisler
13
MAPLD 2005/1027
RTAX2000S Results – Memory
 SRAM controller: FTSRCTRL
• 600 cells (2%), (or 2,000 ASIC gates)
 SDRAM controller: FTSDCTRL
• 900 cells (3%), (or 3,000 ASIC gates)
 On-chip memory: FTAHBRAM (2 Kbyte EDAC)
• 300 cells (1%) + 5 of 64 RAM blocks,
(or 2,000 ASIC gates + RAM)
Gaisler
14
MAPLD 2005/1027
RTAX2000S results – Others
 GRFPU-Lite-FT including LEON3 controller:
• 7,100 cells (23%) + 4 of 64 RAM blocks
 SpaceWire-FT link:
• 2,800 (9%) + 5 of 64 RAM blocks
Gaisler
15
MAPLD 2005/1027
RTAX2000S results – Example designs
App 1:
App 2:
App 3:
LEON3-FT
LEON3-FT
DSU
LEON3-FT
App 4:
LEON3-FT
DSU
GRFPU-Lite-FT
IRQ/UART IRQ/UART
IRQ/UART IRQ/UART
FT-SRAM
FT-SRAM
FT-SRAM
FT-SDRAM
SPW-FT
SPW-FT
35% cells
38% cells
45% cells
75% cells
40 of 64 RAM 40 of 64 RAM 45 of 64 RAM 49 of 64 RAM
25 MHz
25 MHz
25 MHz
25 MHz
Gaisler
16
MAPLD 2005/1027
Validation





LEON3 has passed SPARC V8 validation
AX2000 based design running since 2005Q2
RTAX2000S based design planned for 2005Q3
Software induced SEU testing on-going
Radiation testing planned for 2005Q3:
• Heavy Ion
• Californium
• Louvain-la-Neuve
• Proton
Gaisler
17
MAPLD 2005/1027
Projects
 LEON3-FT processor being evaluated in the frame
of the European spacecraft Bepi-Colombo
• To be used in 5-10 different instruments as
primary controller
• Includes SpaceWire interface and Floating
Point Unit
 LEON3-FT processor is on the road map for the
European Space Agency, replacing the LEON2
processor
Gaisler
18
MAPLD 2005/1027
LEON3 Availablity




Freely available in source code under GNU GPL
Valuable tool for academic research
Improves test-coverage due to large user-base
Allows early prototyping and try-before-buy
 Commercial licensing possible without restrictions
 The fault-tolerant version of the cores are not
initially released in open-source, but the long-term
strategy is to release all cores under GPL
Gaisler
19
MAPLD 2005/1027
Lessons learned
 Fault tolerance implementation differs between
ASIC and FPGA:
• The critical timing paths for ASIC and FPGA
differs, forcing different FT implementations
• FPGAs have fixed on-chip resources that can
be used for FT implemenation without
additional area penalty
 Mixed GPL and commercial licensing model
necessary to allow both academic and commercial
use
Gaisler
20
MAPLD 2005/1027
Conclusions
 LEON3 Fault Tolerant SPARC processor core is
ready for FPGA /ASIC integration, including:
• SEU protection
• Design environment with several cores
• Development board for RTAX and AX
 RTAX2000S with LEON3-FT leaves ample space
for customer specific logic and memory:
• Cells: 25% to 65% (up to 60k ASIC gates)
• RAM: 24% to 37% (up to 100k bits)
Gaisler
21
MAPLD 2005/1027
Download