FPGA Design Using the LEON3 Fault Tolerant Processor Core

21
1 Gaisle r MAPLD 2005/1027 FPGA Design Using the LEON3 Fault Tolerant Processor Core Jiri Gaisler and Sandi Habinc

description

FPGA Design Using the LEON3 Fault Tolerant Processor Core. Jiri Gaisler and Sandi Habinc. Outline. Introduction Fault tolerant LEON3 processor Design environment Design flow Results Validation Projects and availability Lessons learned. Introduction. - PowerPoint PPT Presentation

Transcript of FPGA Design Using the LEON3 Fault Tolerant Processor Core

Page 1: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

1Gaisler MAPLD 2005/1027

FPGA Design Using the LEON3 Fault Tolerant Processor Core

Jiri Gaisler and Sandi Habinc

Page 2: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

2Gaisler MAPLD 2005/1027

Outline

Introduction Fault tolerant LEON3 processor Design environment Design flow Results Validation Projects and availability Lessons learned

Page 3: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

3Gaisler 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?

Page 4: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

4Gaisler 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

Page 5: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

5Gaisler 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

Page 6: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

6Gaisler MAPLD 2005/1027

LEON3 SPARC V8 Processor (cont.)

7-stagesInteger pipeline

3-Port Register File

Debug Support Unit

Interrupt Controller

AMB AHB Master (32 bit)

Trace Buffer

Debug Support

Interrupt Port

IEEE-754 FPU

Co-Processor

HW Mul/Div

Local I-RAM I-Cache Local D-RAMD-Cache

AHB Master I/F

Page 7: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

7Gaisler 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)

Page 8: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

8Gaisler 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

Page 9: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

9Gaisler 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)

Page 10: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

10Gaisler 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

Page 11: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

11Gaisler 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

Page 12: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

12Gaisler 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

Page 13: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

13Gaisler 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)

Page 14: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

14Gaisler 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)

Page 15: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

15Gaisler 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

Page 16: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

16Gaisler MAPLD 2005/1027

RTAX2000S results – Example designs

App 1: App 2: App 3: App 4:LEON3-FT LEON3-FT LEON3-FT LEON3-FT

DSU 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

Page 17: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

17Gaisler 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

Page 18: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

18Gaisler 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

Page 19: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

19Gaisler 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

Page 20: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

20Gaisler 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

Page 21: FPGA Design Using the  LEON3 Fault Tolerant Processor Core

21Gaisler 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)