26
ESE Back End 2.0 D. Gajski, S. Abdi (with contributions from H. Cho, D. Shin, A. Gerstlauer) Center for Embedded Computer Systems University of California, Irvine http://www.cecs.uci.edu

ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

ESE Back End 2.0

D. Gajski, S. Abdi(with contributions from H. Cho, D. Shin, A. Gerstlauer)

Center for Embedded Computer SystemsUniversity of California, Irvine

http://www.cecs.uci.edu

Page 2: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 2

Technology advantages

• No basic change in design methodology required• ES methodology follows present manual design process

• Productivity gain of more than 1000X demonstrated• Designers do not write models

• Simple change management: 1-day change• No rework for new design decisions

• High error-reduction: Automation + verification• Error-prone tasks are automated

• Simplified globally-distributed design• Fast exchange of design decisions and easy impact estimates

• Benefit through derivatives designs• No need for complete redesign

• Better market penetration through customization• Shorter Time-to-Market through automation

Page 3: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 3

DecisionUser

Interface (DUI)

ValidationUser

Interface (VUI)

TIMED

Create

Map

Compile

Replace

Select

Partition

Compiler

Debugger

Stimulate

Verify

ES Environment

Application Tools : Compilers/Debuggers Commercial Tools : FPGA, ASIC

CYCLE ACCURATE

Verify

Simulate

Check

Compile

ESE Front – End

System Capture + Platform Development

SW Development + HW Development

ESE Back – End

Timed TLM

C + RTL

Page 4: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 4

Input: Transaction Level Model (TLM)

CPU Bus

B1 B2

OS

B4

CPU Mem

IP

B3

HW

HAL

IP Bus

B6

B5

Application (C code)

TLM is generated automatically from ESE Front-End for given

Spec/Platform

Bridge

Page 5: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 5

TLM Features

• Universal Bus Channel (UBC)• Bus is modeled as universal channel with send/recv, read/write functions• Well defined functions for routing, synchronization, arbitration and transfer

• SW modeling• Application SW is modeled as processes in C• A RTOS model or real RTOS is used for dynamic scheduling of processes• Communication with peripherals, memory or other IP is done using UBC

• HW modeling• Application HW is modeled as processes written in C• Communication with processor, memory or other IP is done using UBC

• Memory modeling• Memory is modeled as array in C• Controller is modeled by function in UBC

Page 6: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 6

Cycle-Accurate Software Synthesis

CPU Bus

CPU

HW IP

IP Bus

Compile

RTOS Synthesis

HALRTOS

EXEB1 B2

OSHAL

B5

Bridge

Program

Page 7: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 7

SW Synthesis Issues

• Compiler selection• The designer specifies which compiler is used for the SW

• Library selection• Libraries are selected for SW support such as file systems, string

manipulation etc. • Prototype debugging requires selection of additional libraries

• RTOS selection and targeting• Designer selects an RTOS for the processor • RTOS model is replaced by real RTOS and SW is re-targeted

• Program and data memory• Address range for SW program memory is assigned• Address range for data memory used by program is assigned• For large programs or data, off-chip memory may be allocated

Page 8: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 8

Cycle-Accurate Hardware Synthesis

CPU Bus

CPU Mem

Behavior in CHW (RTL)

Cycle-accurateSynthesis

IP Bus

IP (RTL)

B3B6

Bridge

Page 9: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 9

HW Synthesis Issues

• IP insertion• C model of HW is replaced with pre-designed RTL IP, if available

• RTL synthesis tool selection• RTL synthesis tool must be selected for custom HW design

• SystemC code generation• C/SystemC code for input to RTL synthesis tool is generated

• Synthesis directives• RTL architecture and clock cycle time is selected• UBC calls are treated as single cycle operations, to be later expanded

during interface synthesis

• HDL generation• RTL synthesis result in cycle accurate synthesizable Verilog code

Page 10: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 10

Cycle-Accurate Interface SynthesisCPU Mem

Bridge

CustomHW

Interface Synthesis

IP

Arbiter

IC

Page 11: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 11

Interface Synthesis Issues

• Synchronization• UBC has unique flag for each pair of communicating processes• Flag access is implemented as polling, CPU interrupt or interrupt controller

• Arbitration• Selected from library or synthesized to RTL based on policy

• Bridge• Selected from library or synthesized using universal bridge generator

• Addressing• All communicating processes are assigned unique bus addresses

• SW communication synthesis• UBC functions are replaced by RTOS functions and assembly instructions

• HW communication synthesis• DMA controller in RTL is created for each custom HW component• Send/Recv operations are replaced by DMA transfer states

Page 12: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 12

Pin/Cycle-Accurate ModelC

PU Mem

Bridge

HW IP

Arbiter

HALRTOS

EXE

PCAM is downloaded automatically for fast prototyping with FPGAs

ICProgram

Page 13: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 13

MP3 Player Prototyping with ESE Back-end

• TLM Input• TLM is generated by ESE front-end for MP3 application and platform

• Interface synthesis• Polling or interrupt mechanism is selected for synchronization• Arbiter is selected for busses with multiple masters• Bridge between CPU bus and peripheral bus is created by Bridge Generator

• SW synthesis• Compiler/RTOS for SW is selected and addresses are generated for memories

• HW synthesis• RTL is generated for custom HW cores by NISC compiler or C RTL tools

• Export to FPGA design tools• Files are generated for creating complete project for FPGA tools

• FPGA download and test• FPGA design tools create bit-stream for programming the board• MP3 player prototype runs directly on FPGA board

Page 14: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 14

MP3 Decoder Application

• Functional block diagram (major blocks only)

• Application features• 12K lines of C code• IMDCT and DCT are compute intensive

– Candidates for HW implementation• Left channel and right channel are data independent

– Concurrent execution possible

Page 15: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 15

MP3 Player TLM (SW+4HW)

• MP3 encoder mapped to SW (MicroBlaze), DCT and IMDCT to HW• Mem1 (on OPB bus) for program, Mem2 (on LMB bus) for data• Custom HWs on DoubleHdshk (DH) bus, with bridge to OPB

OPB Bus

MP3OS

Mic

robl

aze

CPU

RightDCT

HW2Mem1

HAL

DH Bus

Bridge

LeftDCT

HW1

LMB Bus

Mem2

RightIMDCT

HW4

LeftIMDCT

HW3

Page 16: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 16

Interface Synthesis

• Interrupt signals and connections are selected• Arbiter is selected and request / grant pins are connected• RTL code for Bridge is generated using BridgeGen

Page 17: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 17

SW synthesis

• Compiler, RTOS and libraries are selected for SW• Default addresses for all addressable memory/bus is generated by ESE

Page 18: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 18

HW synthesis

• RTL code for HW components is generated using C RTL tools

Page 19: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 19

Export to FPGA Design Tools

• Platform and SW specification files are created for FPGA design tools• C code for Microblaze and Verilog for HWs and Bridge is exported

Page 20: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 20

Benefit: FPGA Prototype in 1 Week

• Bit stream from FPGA design environment is downloaded to board• Implemented prototype is tested with MP3 music files

Page 21: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 21

Design Quality: Manual

• Area• % of FPGA slices and BRAMS

• Performance• Time to decode 1 frame of MP3 data

0102030405060708090

100

SW+0 SW+1 SW+2 SW+4

Design Points

% c

hip

utili

zatio

n

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

seco

nds %Slices

%BRAMsExec. time

Page 22: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 22

Design Quality: ESE

• Area• ESE designs use fewer FPGA slices and more BRAMs than manual HW

• Performance• ESE designs execute at same speed as manual designs

0102030405060708090

100

SW+0 SW+1 SW+2 SW+4

Design Points

% c

hip

utili

zatio

n

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

seco

nds %Slices

%BRAMsExec. time

Page 23: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 23

0

10

20

30

40

50

60

70

Spec. TLM RTL Board

models

pers

on-d

ays SW+0

SW+1SW+2SW+4

Development Time: ESE vs. Manual

• ESE drastically cuts RTL and Board development time• Manual development includes months of RTL coding• Models can be developed at Spec level with ESE• TLM, RTL and Board models are generated automatically by ESE

ESE

Manual

Page 24: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 24

Validation Time: ESE vs. Traditional

• ESE cuts validation time from hours to seconds• No need to verify RTL models for every design change• Designers can perform high speed validation with TLM and board

0

1

23

4

5

6

78

9

10

Spec. TLM RTL Boardmodels

seco

nds

SW+0SW+1SW+2SW+4

ESE

X

hour

s 18.06 hrs17.71 hrs17.56 hrs15.93 hrs

Traditional

Page 25: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 25

ESE Back-end Advantages

• HW synthesis in ESE removes the need to code and debug large RTL HDL models

• Transducer and interface synthesis allows flexibility to includeheterogeneous IP in the design

• SW driver synthesis removes the need for SW developers to understand HW details

• SW and HW application can be easily upgraded at TL and validated on board

• C and graphical input of TL model allows even non-experts to develop and test HW/SW systems with ESE

Page 26: ESE Back End 2 - CECS• Bridge between CPU bus and peripheral bus is created by Bridge Generator • SW synthesis • Compiler/RTOS for SW is selected and addresses are generated

Copyright ©2006, CECSESE Back-End 26

Acknowledgments

• We would like to acknowledge the previous R&D teams who contributed many concepts and methods used in ESE 2.0• SpecCharts/SpecSyn (’92): F. Vahid, S. Narayan,

J. Gong, S. Bakshi• SpecC/SCE (’00) team: R. Doemer, J. Zhu,

A. Gerstlauer, J. Peng, D. Shin, L. Cai, H. Yu

• We also want to thank P. Chandraiah for MP3 reference code