AutomatedAutomated Synthesis Synthesis andand VerificationVerification of of EmbeddedEmbedded Systems:Systems: WishfulWishful Thinking Thinking or or Reality? Reality?

Wolfgang Rosenstiel

Computer Engineering Wilhelm-Schickard-Institute for Informatics University of Tuebingen Germany

WILHELM-SCHICKARD-INSTITUT Computer Engineering FromFrom HardwareHardware SupplySupply toto thethe FinalFinal ApplicationApplication

Legislator Content Regulations Provider

Gateway Service Content mgmt Provider Protection

Delivery System System Application infrastructure Integrator mgmt

Network Chip Maker Software Equipment

Semi Wafer Equipment Foundry

Semi Materials Sphere of design influence Source: Medea

WILHELM-SCHICKARD-INSTITUT Computer Engineering EmbeddedEmbedded SoftwareSoftware isis BecomingBecoming MoreMore ValuableValuable

Innovation by Source, % Contribution to revenue, %

4 15 16

25 Electronics 70 Electronics software 80 software Electronics Electronics hardware hardware 80 Mechanics Mechanics 60

30 20

2003 2015 2003 2015

Source: 2003 McKinsey-PTW HAWK survey (Institute for Production Management at the Technical University at Darmstadt, McKinsey analysis)

WILHELM-SCHICKARD-INSTITUT Computer Engineering Relatives Wachstum: Kfz, Steuergeräte, TheThe AutomotiveAutomotive SiliconSilicon DriveDrive Halbleiter 600% Semiconductors 580%

500% Cars:ECU:S/C = 1:5:12 400%

ECU 300% 300%

200%

Percent of Growth 100%) (2000 = Cars & light trucks 140%

100% 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020

Source: Bosch

WILHELM-SCHICKARD-INSTITUT Computer Engineering AddedAdded ValueValue ThroughThrough NewNew ElectronicElectronic FunctionsFunctions

Car fabrication cost 11.000 in EUR

cost in 10.200 % relation to 2000 new functions 100 23 % 100 %

todays functions 85 % 75

50

25

0 2000 2010 Source: Mercer, a.o.

WILHELM-SCHICKARD-INSTITUT Computer Engineering TheThe GrowingGrowing RoleRole ofof ChipChip MakersMakers The electronic part of final applications is increasingly determined and designed by semiconductor chip makers Customer interface is shifting to the boundary between the embedded code in the semiconductor device and the application software Building intelligent systems for the future requires close collaboration between the innovation teams of chip suppliers, chip customers ÆEDA is the bridge between them

Source: Panel Discussion, edaForum07

WILHELM-SCHICKARD-INSTITUT Computer Engineering OutlineOutline

EDA challenges System Level Design Verification Synthesis Conclusions

WILHELM-SCHICKARD-INSTITUT Computer Engineering DesignDesign CostsCosts

Source: ITRS 2008 based on data from Gary Smith

WILHELM-SCHICKARD-INSTITUT Computer Engineering MotivationMotivationAutomotiveAutomotiveBayesian Networks ElectronicsElectronics Modelling Automotive Software Today's readmission rate for cars is ~ 70 000 000 cars per year

Average of 20 to 70 embedded systems per car

50% development effort spend on software engineering

Every 2nd car recall caused by software problems

Æ Software quality assessment plays an important role in cost reduction and customer satisfaction

8 WILHELM-SCHICKARD-INSTITUT Computer Engineering VerificationVerification ProblemsProblems

2004 Pontiac recalls the Grand Prix since the software did not understand leap years. 2004 was a leap year. 2003 A BMW 520 trapped a Thai politician when the computer crashed. The door locks, windows, A/C and more were inoperable. Windshield was smashed to get him out. 2002 BMW recalls the 745i since the fuel pump would shut off if the tank was less than 1/3 full. Source: http://www.embedded.com/columns/embeddedpulse/179100752?_requestid=42835

WILHELM-SCHICKARD-INSTITUT Computer Engineering VerificationVerification ChallengesChallenges Challenge: Complexity growth Example: Diesel systems 2007 Calibration parameters: 16 k Performance: 300 MIPS Memory: 4 MByte

Software coding errors Finite-state machines Timing Stack/memory overflows Consistencies Non-volatile memory

Source: Software Bugs seen from an Industrial Perspective. CAV07 [Kropf07]

Requirements Design Coding Application

WILHELM-SCHICKARD-INSTITUT Computer Engineering OutlineOutline

EDA challenges System Level Design Verification Synthesis Examples and Results

WILHELM-SCHICKARD-INSTITUT Computer Engineering DesignDesign FlowFlow ofof DistributedDistributed EmbeddedEmbedded SystemsSystems Model based design of distributed systems platform dependent development of the application software (UML, Matlab/Simulink, C++) early consideration of the planned target platform in the model based system design (UML) mapping of function blocks on architecture components

TM SYSTEMC use of virtual prototypes for the abstract modeling of the target platform Virtual Prototype

Software Network Hardware Early analysis of the system integration early verification based on virtual prototypes formal and semiformal software verification

Seamless transition to the real prototype automatic “target code” generation automatic high level synthesis co-simulation/emulation SystemC as intermediate representation

WILHELM-SCHICKARD-INSTITUT Computer Engineering DesignDesign andand VerificationVerification ProcessProcess 13

Challenges Requirements Management 1. Move from document centric to model centric Specification 2. Interfaces between requirements, specification, Verification aims Implementation verification aims, and implementation 3. Tracing of requirements and verification aims Verification Prozess 4. Automatic generation of Analysis (Coverage, Assertions) software, hardware and test cases (ATPG) Results

WILHELM-SCHICKARD-INSTITUT Computer Engineering DesignDesign andand VerificationVerification ProcessProcess withwith UMLUML 14

Requirements Management • Interfaces between specification, verification Specification aims, and implementation • Enable code generation Verification aims Implementation • Enable test case description • Enable linking and Verification Prozess tracing of design Analysis components (Coverage, Assertions) • Missing Æ requirements Results • Missing Æ support the verification process

WILHELM-SCHICKARD-INSTITUT Computer Engineering UMLUML 22 15

UML 2.x Diagram

Structure Behavior Diagram Diagram

Class Composition Object Activity State Machine Use-Case- Diagram Diagram Diagram Diagram Diagram Diagram

Component Package Deployment Diagram Diagram Diagram Interaction Diagram

Communication Sequence Timing Interaction Diagram Diagram Diagram Overview Diagram

WILHELM-SCHICKARD-INSTITUT Computer Engineering SystemSystem Architecture Architecture 16

UML 2.x Diagram

Structure Behavior Diagram Diagram

Class Composition Object Activity State Machine Use-Case- Diagram Diagram Diagram Diagram Diagram Diagram

Component Package Deployment Diagram Diagram Diagram Interaction Diagram

Communication Sequence Timing Interaction Diagram Diagram Diagram Overview Diagram

WILHELM-SCHICKARD-INSTITUT Computer Engineering SystemSystem BehaviorBehavior 17

UML 2.x Diagram

Structure Behavior Diagram Diagram

Class Composition Object Activity State Machine Use-Case- Diagram Diagram Diagram Diagram Diagram Diagram

Component Package Deployment Diagram Diagram Diagram Interaction Diagram

Communication Sequence Timing Interaction Diagram Diagram Diagram Overview Diagram

WILHELM-SCHICKARD-INSTITUT Computer Engineering ScenarioScenario / / TestTest casecase 18

UML 2.x Diagram

Structure Behavior Diagram Diagram

Class Composition Object Activity State Machine Use-Case- Diagram Diagram Diagram Diagram Diagram Diagram

Component Package Deployment Diagram Diagram Diagram Interaction Diagram

Communication Sequence Timing Interaction Diagram Diagram Diagram Overview Diagram

WILHELM-SCHICKARD-INSTITUT Computer Engineering SysMLSysML 19

SysML

Structure Requirements- Behavior Diagram Diagram Diagram

Block Definition Internal Block Object Activity State Machine Use-Case- Diagram Diagram Diagram Diagram Diagram Diagram

Component Package Deployment Diagram Diagram Diagram Interaction Diagram

Parametric Interaction Diagram Communication Sequence Timing Diagram Diagram Diagram Overview Diagram New diagrams in SysML Extended/modified diagrams in SysML

WILHELM-SCHICKARD-INSTITUT Computer Engineering InterfaceInterface toto VerificationVerification 20

Requirements Management

Challenge Specification

• System analysis of Verification aims Implementation UML/SysML diagrams

Verification Prozess • Generating for Analysis verification aims (Coverage, Assertions) (Assertions)

Results

WILHELM-SCHICKARD-INSTITUT Computer Engineering OutlineOutline

EDA challenges System Level Design Verification Synthesis Conclusion

WILHELM-SCHICKARD-INSTITUT Computer Engineering SystemSystem Analysis Analysis throughthrough Assertions Assertions 22

System Specification (UML/SysML)

Sequence Deployment Structure Diagram Diagram Diagram Prozess to Communication System-Architecture Module Abstracte Property UML/SysML (High Level Description)

Assertions

Simulation Formale Verification System- Description

WILHELM-SCHICKARD-INSTITUT Computer Engineering Assertion-basedAssertion-based VerificationVerification 23

Test bench PSL/FLTL System-Model (includes test patterns Property (Assertion) example AR Prozess1 Prozess2 Prozess3 (P1) (P2) (P3) SystemC-based Temporal Checker

Accept Reject Monitors for Assertions

Interfaces for test patterns

Test pattern indicate test quality Assertions improve error localization Assertions for functional und formal verification

WILHELM-SCHICKARD-INSTITUT Computer Engineering SoftwareSoftware ModelingModeling

Integers, arrays, floating point Arithmetic operations: +, - , *, /, % Software Software Pointers Procedures

Formal model Static and control-flow operations Model here means a FSM Boolean variables

SemiformalSemiformal Simulation model VerificationVerification Dynamic aspects (e.g., dynamic allocation) Data-flow arithmetic operations (e.g., multiplication and division)

WILHELM-SCHICKARD-INSTITUT Computer Engineering OutlineOutline

EDA challenges System Level Design Verification Semi-Formal Verification Flow and Results Synthesis Conclusion

WILHELM-SCHICKARD-INSTITUT Computer Engineering EmbeddedEmbedded SoftwareSoftware Modeling:Modeling: OverviewOverview

1) CIL: http://cil.sourceforge.net Complex CIL11 C program CIL

0 Pred (i== p) Block(i=0) int p; „Simple“ int main() { C program 1 int i = 0; Block (i= i + 1) while( i != p) 2 { Pred (i != p) i = i + 1; 1 Block (ret=0) } CFACFA Generator Generator1 READ Æ F EEE_OK3 return(0); 4 }

Control flow Properties / automata Critical states

Formal ModelModel Generator Generator Simulation model model SymC C/SystemC

Formal verification Simulation

WILHELM-SCHICKARD-INSTITUT Computer Engineering ModelingModeling SemanticsSemantics

Simulation module main Formal signal s3, s2, s1, i3, i2, i1, ret : boolean; model input p2, p1 : boolean; model unsigned int p, i, pc; int main() init { s3 == false; s2 == false; s1 == false; LL0: define p = random(); state0 := (!s3 & !s2 & !s1); state1 := (!s3 & !s2 & s1); Control flow i = 0; pc = 1; state2 := (!s3 & s2 & !s1); state3 := (!s3 & s2 & s1); automata LL1: state4 := (s3 & !s2 & !s1); 0 Predif (i!=p) (i== p) eqCheck := ((p2&i2)|(!p2&!i2))&((p1&i1)|(!p1&!i1)); Block(i=0) { … Transition pc = 3; trans 1 LL3: Block (i= i + 1) next (s3) == state2; next (s2) == state1; 2 state i = i + 1; next (s1) == state0|(state1 & !eqCheck)|state3; Pred (i != p) pc = 1; next (i3) == (false & state0) | (m1.c2 & state3) | Blockgoto (ret=0) LL1; (!(state0 | state3) & i3); }else 3 next (i2) == (false & state0) | (m1.s1 & state3) | 4 { (!(state0 | state3) & i2); pc = 2; next (i1) == (false & state0) | (m0.s0 & state3) | LL2: (!(state0 | state3) & i1); pc = 4; next (ret) == (false & state2) | (!(state2) & ret); goto LL4; … Time } invar LL4: reference add0.a0 == (state3 & i1); add0.b0 == (state3 & true); return(0); add1.a1 == (state3 & i2); add1.b1 == (state3 & false); } … end

WILHELM-SCHICKARD-INSTITUT Computer Engineering TemporalTemporal CheckerChecker FrameworkFramework

Property specification in PSL / FLTL SystemC models SystemC model properties Proposition class

Property synthesis and AR checking LTL with Time Bound F[2] a SystemC kernel & Reject !a temporal checker library !a !a a a Accept a Customizable actions: Customizable actions in assertion messages, exceptions special states

WILHELM-SCHICKARD-INSTITUT Computer Engineering ExperimentalExperimental ResultsResults

EEPROM Emulation Software Derived 86 Properties from EEELib specification Performed 93 BLAST-runs (timeout set to 24h) Total verification time: 532 hours (~22 days) Results: 7 trials resulted in BLAST internal error 8 trials did not finish within 24h 78 trials resulted in “the system is safe” message

WILHELM-SCHICKARD-INSTITUT Computer Engineering ExperimentalExperimentalExperimentalExperimental ResultsResults ResultsResults IIII

• NVM-Software

Results Verif. Results Verif. Properties CBMC Time BLAST Time CBMC BLAST 1. The index of data blocks requested should No 2.34s No < 1min. be valid between 0 and the maximal number error error of data blocks or be assigned to FAILED if the given block is invalid.

2. A data block is only initalized when the Internal 50 min. Internal 34 min. address of external buffer is assigned. error error

3. A request has only two state: No 2.38s Error < 1min. error "NO_REQUEST" or "WRITE_REQUEST".

4. If a block is a double buffered block, NVM 35.58s < 1min. system should output 1 or 0 to identify the Error No valid block. error

WILHELM-SCHICKARD-INSTITUT Computer Engineering OutlineOutline

EDA challenges System Level Design Verification Synthesis Conclusions

WILHELM-SCHICKARD-INSTITUT Computer Engineering FirstFirst generationgeneration ofof synthesissynthesis toolstools werewere notnot acceptedaccepted accepted………

One wait statement per loop

for (int i = 0; i<4; i++) { wait(); e = (a * c * d + i); }

At least one wait statement between two write operations the same memory port

e = (a * c * d); e = (a * c * d); for (int i = 0; i<4; i++) { for (int i = 0; i<4; i++) { wait(); wait(); real_out.write(e + i); real_out.write(e + i); // Error: no wait wait(); real_out.write(e + i + i); real_out.write(e + i + i); } } wait(); wait();

WILHELM-SCHICKARD-INSTITUT Computer Engineering ……first firstgeneration generationof of synthesissynthesistools toolswere werenot notaccepted accepted……

// Initialisierung // Initialisierung out_valid.write(true); out_valid.write(true); out1.write(0); out1.write(0); out2.write("11111111"); out2.write("11111111"); // Error: no wait wait(); while (true) { while (true) { ...//process behavior ...//process behavior } }

if (a < b) { if (a < b) { e = (a * c * d); e = (a * c * d); wait(); wait(); } wait(); else if (a = b) { } else if (a = b) { e = (b * c * d); e = (b * c * d); // Error: no wait wait(); } // Error: ELSE path not } else { considered wait(); }

WILHELM-SCHICKARD-INSTITUT Computer Engineering ……firstfirst generation generationof of synthesissynthesistools toolswere werenot notaccepted accepted……

for (int i = 0; i<4; i++) { for (int i = 0; i<4; i++) { e = (a * c * d + i); e = (a * c * d + i); real_out.write(e); real_out.write(e); // Error: no wait wait(); // shift wait in front of if (i == 3) break; if wait(); if (i == 3) break; } } put n waits between data dependent I/O read and I/O writes if the included calculation requires n cycles ie = (a * c * d); e = (a * c * d); real_out.write(e); real_out.write(e); // Error: no wait wait(); for (int i = 0; i<4; i++) { for (int i = 0; i<4; i++) { real_out.write(e + i); real_out.write(e + i); wait(); wait(); c = data_in.read(); c = data_in.read(); e = (a * c * d); e = (a * c * d); } }

put n + 1 waits after the loop condition and n + 1 waits after the end of the loop, if n cycles are necessary to calculate the loop condition…

WILHELM-SCHICKARD-INSTITUT Computer Engineering „„„Cycle-Fixed“CycleCycle--FixedFixed““ guidelinesguidelines guidelines……… e = (a * c * d); e = (a * c * d); // Error: no wait; wait(); for (int i = 0; i<4; i++) { for (int i = 0; i<4; i++) { e = (a * c * d + i); e = (a * c * d + i); wait(); wait(); } } for (int i = 0; i<4; i++) { for (int i = 0; i<4; i++) { wait(); wait(); e = (a - 2); e = (a - 2); while (i == 0) { while (i == 0) { wait(); wait(); e = (b - 2); e = (b - 2); do { do { wait(); wait(); e = (b - 2); e = (b - 2); if (i == 0) break; if (i == 0) break; } while (i == 0); } while (i == 0); // Error: no wait; wait(); } } // Error: no wait; wait(); real_out.write(e); real_out.write(e); } } // Error: no wait; wait(); imaginary_out.write(e); imaginary_out.write(e); wait(); wait();

WILHELM-SCHICKARD-INSTITUT Computer Engineering FromFrom VerificationVerification toto C++/C/SystemCC++/C/SystemC SynthesisSynthesis

High Level Synthesis is getting more acceptance and attention Known customers: ST, Qualcomm, Alcatel. Fujitsu, Panasonic, Toshiba, Thales, Sanyo, Ericsson, Pioneer, Motorola, Micronas, NXP, Broadcom, Sony, Canon More and more commercial tools: CatapultC, Cynthesizer, Cadence C-to-Silicon Compiler, NEC Cyber Workbench, Synfora PICO, Bluespec BSC, ChipVision PowerOpt, Synplify DSP More than 50 ASIC Tape-outs reported in 2007, probably more in 2008 (Older) market analysis from Gary Smith:

WILHELM-SCHICKARD-INSTITUT Computer Engineering MentorMentor GraphicsGraphics –– CatapultCCatapultC

Optimizations Bus and memory architecture Datapath micro-architecture Power-gating Multiple clock domains Voltage scaling for dynamic power Multi-threshold for static power Clock gating Pipelining Verification Automated generation of SystemC transactors Transactors convert function calls to pin-level signal activity Interface Synthesis

WILHELM-SCHICKARD-INSTITUT Computer Engineering MentorMentor GraphicsGraphics –– CatapultCCatapultC CatapultC::: TechnologyTechnology IncorpIncorpIncorp...

WILHELM-SCHICKARD-INSTITUT Computer Engineering MentorMentor GraphicsGraphics –– CatapultCCatapultC

WILHELM-SCHICKARD-INSTITUT Computer Engineering MentorMentor GraphicsGraphics –– CatapultCCatapultC

WILHELM-SCHICKARD-INSTITUT Computer Engineering ForteForte DesignDesign SystemsSystems –– CynthesizerCynthesizer

WILHELM-SCHICKARD-INSTITUT Computer Engineering ForteForte DesignDesign SystemsSystems –– CynthesizerCynthesizer

WILHELM-SCHICKARD-INSTITUT Computer Engineering ForteForte DesignDesign SystemsSystems –– CynthesizerCynthesizer

WILHELM-SCHICKARD-INSTITUT Computer Engineering ForteForte DesignDesign SystemsSystems –– CynthesizerCynthesizer

WILHELM-SCHICKARD-INSTITUT Computer Engineering CadenceCadence –– CC C-to-Silicon--toto--SiliconSilicon CompilerCompiler

Copyright: (www.cadence.com)

WILHELM-SCHICKARD-INSTITUT Computer Engineering NECNEC –– CyberCyber WorkbenchWorkbench SoC multi modules design (All-in-C) Input: SystemC, ANSI C (BDL), Legacy RTL Output: Cycle-accurate model (C++, SystemC, SpecC, ), synthesizable RTL (VHDL, Verilog) Stimulus for behavioral simulation can be used for cycle or RTL simulation High controllability by constraint editor Automatic architecture explorer Loop unrolling, pipelining Cycle accurate simulation with original untimed C code C-RTL equivalence prover (static & dynamic) Integrated model checking by comparing the output sequences gen. by the same stimuli RTL FloorPlanner

WILHELM-SCHICKARD-INSTITUT Computer Engineering NECNEC –– CyberCyber WorkbenchWorkbench

WILHELM-SCHICKARD-INSTITUT Computer Engineering OutlineOutline

EDA Challenges System Level Design Verification Synthesis HLS Examples HLS and Dynamic Reconfigurability Conclusions

WILHELM-SCHICKARD-INSTITUT Computer Engineering SynthesisSynthesis FlowFlow 49

C++ Specification

VHDL Specification Library Builder

Untimed C++ vs. Automatic Catapult TLM SystemC High Level Synthesis Catapult Test 2007b.136 Untimed C++ vs. Cycle HDL Bench Untimed C++ vs. Generation Cycle SystemC Precision RTL Synthesis Precision Untimed C++ vs. 2007a.18 RTL HDL Untimed C++ vs. Mapped HDL Untimed C++ vs. Technology Mapping ISE Gate HDL 10.1 Untimed C++ vs. RTL SystemC

ModelSim Verification/ Hardware SE 6.3f Verification/ Testbench

WILHELM-SCHICKARD-INSTITUT Computer Engineering Algorithm:Algorithm: 50 mean mean 0 – VEC_LENGTH Input:Input: ÷ VectorVector withwith 256 256 88 bitbit valuesvalues std 0 – VEC_LENGTH √ Output:Output: VectorVector withwith 256 256 valuesvalues norm andand estimationestimation 0 – VEC_LENGTH ÷ coefficientscoefficients for/for for/for 0 – N & i – VEC_LENGTH for 0 – N for/for 0 – N & 0 – N for/for for/for 0 – N & 0 – VEC_LENGTH

WILHELM-SCHICKARD-INSTITUT Computer Engineering SynthesisSynthesis GoalsGoals 51

64 data vectors Latency: 20 ms Hardware: Virtex FPGA Clock frequency: 75 MHz External memory

WILHELM-SCHICKARD-INSTITUT Computer Engineering ManualManual Float/FixFloat/Fix TransformationTransformation 52

ac_fixed ac_int #include Together with native C/C++ data types Word length optimized by simulation Simulation speed drops and memory increases In our example: float-Version: 1377K ac_fixed-Version: 19M

WILHELM-SCHICKARD-INSTITUT Computer Engineering Optimization:Optimization: 6464 vectorsvectors in in << 2020 msms 53 allVecs allVecs Vecs Vecs 256x 2x 32x 256x 256x

256x transA 256x

transB 256x

256x 256x 64x

64x

WILHELM-SCHICKARD-INSTITUT Computer Engineering Optimization:Optimization: 6464 vectorsvectors in in << 2020 msms 54

transA transB

transB0to50

WILHELM-SCHICKARD-INSTITUT Computer Engineering Catapult:Catapult: HighHigh LevelLevel SynthesisSynthesis ResultsResults 55

350000 = 300000

250000

200000

150000

100000

50000 Goal: 20ms 0

) 2 r) ) 1) ) i50) II a s _ B B to50) rray ly 0 ecsP A normV o Poly V PolyBII ‐ p 1 (PolyBII2) 2 D oGlobals) ( 1 ( II 3 2 (n c + n e ( . e e ll allel l v n WILHELM(a-SCHICKARD-rINSTITUT (PolyB_i Computerllel EngineeringsPar pr _ i249 t a ec fd _ io g pa s r V 's s sf Catapult&ModelSim:Catapult&ModelSim: VeryVery Good Good VerificationVerification Integration Integration 56

SCVerify option Starts from initial C++ Untimed C++ vs. Automatic specification Catapult TLM SystemC Catapult Test 2007b.136 Untimed C++ vs. Single source for Cycle HDL Bench simulation and Untimed C++ vs. Generation Cycle SystemC synthesis Precision Untimed C++ vs. 2007a.18 RTL HDL GCC integrated Untimed C++ vs. Mapped HDL Untimed C++ vs. ISE Gate HDL 10.1 Untimed C++ vs. RTL SystemC

ModelSim Verification/ SE 6.3f Verification/ Testbench

WILHELM-SCHICKARD-INSTITUT Computer Engineering OutlineOutline

EDA Challenges System Level Design Verification Synthesis HLS Examples HLS and Dynamic Reconfigurability Conclusions

WILHELM-SCHICKARD-INSTITUT Computer Engineering FromFrom Static Static to to DynamicDynamic Reconfigurability Reconfigurability

(statically) reconfigurable

prototyping

execution execution t minutes to days reconfiguration small volume productions

execution t product lifetime

WILHELM-SCHICKARD-INSTITUT Computer Engineering FromFrom Static Static to to DynamicDynamic Reconfigurability Reconfigurability

(statically) reconfigurable dynamically reconfigurable

multi-context

processor-like reconfigurable (reconfiguration in each clock cycle)

t

optimize area and performance Æ Example: NEC STP (DRP) quantify the benefits and costs

WILHELM-SCHICKARD-INSTITUT Computer Engineering EvaluationEvaluation ApproachApproach

performance application constraint • initiation interval (II) application mapping

no processor-like utilize processor-like reconfiguration reconfiguration

mapping techniques for data flow mapping techniques for control flow

statically processor-like reconfigurable reconfigurable

compare required area and delay

WILHELM-SCHICKARD-INSTITUT Computer Engineering TechniquesTechniques for for DataData Flow Flow

multi-context pipelining

constraint # contexts # PEs II=3 3 3

clock cycle n state 1 context 1 clock cycle n+1 state 2 context 2 clock cycle n+2 state 3 context 3

WILHELM-SCHICKARD-INSTITUT Computer Engineering Optimization of Performance

fast fourier transform (FFT) (Cooley-Tukey algorithm)

constraintconstraint II=1II=2 # of # ofcontexts contexts 21

WILHELM-SCHICKARD-INSTITUT Computer Engineering Optimization of Performance

fast fourier transform (FFT) (Cooley-Tukey algorithm)

constraint II=4II=2 # of contexts 42

WILHELM-SCHICKARD-INSTITUT Computer Engineering Optimization of Performance

fast fourier transform (FFT) (Cooley-Tukey algorithm)

constraint II=4

# of contexts 4

WILHELM-SCHICKARD-INSTITUT Computer Engineering EvaluationEvaluation ofof PerformancePerformance usingusing STP STP (Stream(Stream TransPoseTransPose from from NEC NEC (C-based(C-based reconfigurablereconfigurable core)core) C-basedC-based programmabilityprogrammability andand H/WH/W levellevel performanceperformance

••PE(8bit)x256PE(8bit)x256 ••3232 context context plane plane ••MULx32MULx32 ••2port2port MEMx56 MEMx56 ••1port1port MEMx16 MEMx16

WILHELM-SCHICKARD-INSTITUT Computer Engineering Industrial application example of STP Technology

AV/IT Media Core Processor for Professional Camcoder STP Engine is embedded as an generic accelerator of the CPU Implemented functions: Extended to the enhanced models by updating functions running on STP Engine Stream Packet Mux/DeMux Audio Encode Intelligent DMA Video Codec, etc

STP PMW-EX3 July 2008 Engine embedded ASIC

PMW-EX30 July 2008 PMW-EX1 Nov. 2007

WILHELM-SCHICKARD-INSTITUT Computer Engineering NECNEC –– CyberCyber WorkbenchWorkbench

WILHELM-SCHICKARD-INSTITUT Computer Engineering Advantages of Dynamically Reconfigurable Processors

significant reduction of area (for our example by up to 63%)

mapping techniques are applicable to a wide range of applications

redirecting communication through time domain can compensate for the reconfiguration overhead

WILHELM-SCHICKARD-INSTITUT Computer Engineering OutlineOutline

EDA Challenges System Level Design Verification Synthesis Conclusions

WILHELM-SCHICKARD-INSTITUT Computer Engineering AutomaticAutomatic VerificationVerification and and SynthesisSynthesis hashas toto BecomeBecome ÆÆ Reality!Reality! Design automation to increase design productivity Most of design effort is in employee cost (about 80%) Efforts doubles after two process generations Include embedded software Software will get more important Æ 50% is software cost Future systems: COTS-IP + synthesized hardware and software to keep flexibility, increase productivity and reduce risks Closer links with application Executable specifications Link requirements with verification Automatic synthesis and verification for hardware and software How will fabless/fablite companies differentiate? Application knowledge EDA flow and tools

WILHELM-SCHICKARD-INSTITUT Computer Engineering