automated synthesis and verification of embedded systems: … · 2009-03-06 · verification...

71
WILHELM WILHELM - - SCHICKARD SCHICKARD - - INSTITUT INSTITUT Computer Engineering Computer Engineering Automated Synthesis and Verification of Embedded Systems: Wishful Thinking or Reality? Wolfgang Rosenstiel Computer Engineering Wilhelm-Schickard-Institute for Informatics University of Tuebingen Germany

Upload: others

Post on 05-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Automated Synthesis and Verification of Embedded Systems:

Wishful Thinking or Reality?

Automated Synthesis and Verification of Embedded Systems:

Wishful Thinking or Reality?

Wolfgang Rosenstiel

Computer Engineering Wilhelm-Schickard-Institute for Informatics

University of TuebingenGermany

Page 2: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

From Hardware Supply to the Final ApplicationFrom Hardware Supply to the Final Application

SemiEquipment

SemiMaterials

WaferFoundry

Software

Systemmgmt

Chip Maker

Application

ContentProtection

NetworkEquipment

System Integrator

Service Provider

ContentProvider

Delivery infrastructure

Gatewaymgmt

LegislatorRegulations

Sphere of design influenceSource: Medea

Page 3: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Embedded Software is Becoming More ValuableEmbedded Software Embedded Software isis BecomingBecoming MoreMore ValuableValuable

Contribution to revenue, %

80

60

16

25

415

2003 2015

ElectronicssoftwareElectronicshardwareMechanics

Innovation by Source, %

3020

7080

2003 2015

ElectronicssoftwareElectronicshardwareMechanics

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

Page 4: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Relatives Wachstum: Kfz, Steuergeräte, Halbleiter

Cars & light trucks 140%

ECU 300%

Per

cent

of G

row

th (2

000

= 10

0%)

Cars:ECU:S/C = 1:5:12

100%

200%

300%

400%

500%

600%

2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020

Semiconductors 580%

Source: Bosch

The Automotive Silicon DriveThe Automotive Silicon Drive

Page 5: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

100

75

50

25

100 %

85 %

23 %

02000 2010

cost inrelation to 2000

Car fabrication costin EUR

11.000

10.200

new functions

todays functions

%

Source: Mercer, a.o.

Added Value Through New Electronic FunctionsAdded Value Through New Electronic Functions

Page 6: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

The Growing Role of Chip MakersThe Growing Role of Chip Makers

The electronic part of final applications is increasingly determined and designed by semiconductor chip makersCustomer interface is shifting to the boundary between the embedded code in the semiconductor device and the application softwareBuilding intelligent systems for the future requires close collaboration between the innovation teams of chip suppliers, chip customers

EDA is the bridge between themSource: Panel Discussion, edaForum07

Page 7: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OutlineOutline

EDA challengesSystem Level DesignVerificationSynthesisConclusions

Page 8: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Design CostsDesign Costs

Source: ITRS 2008 based on data from Gary Smith

Page 9: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering8

Bayesian Networks Modelling Automotive Software

MotivationMotivation

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

Automotive ElectronicsAutomotive Electronics

Page 10: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Verification ProblemsVerification Problems

2004Pontiac recalls the Grand Prix since the software did not understand leap years. 2004 was a leap year.

2003A 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.

2002BMW 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

Page 11: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Verification ChallengesVerification Challenges

Challenge: Complexity growthExample: Diesel systems2007

Calibration parameters: 16 kPerformance: 300 MIPSMemory: 4 MByte

Software coding errors

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

Requirements Design Coding Application

Finite-state machinesTimingStack/memory overflowsConsistencies

Non-volatile memory

Page 12: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OutlineOutline

EDA challengesSystem Level DesignVerificationSynthesisExamples and Results

Page 13: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Model based design of distributed systemsplatform 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 componentsuse of virtual prototypes for the abstractmodeling of the target platform

Early analysis of the system integrationearly verification based on virtual prototypesformal and semiformal software verification

Seamless transition to the real prototypeautomatic “target code” generationautomatic high level synthesisco-simulation/emulationSystemC as intermediate representation

Virtual PrototypeVirtual Prototype

SoftwareSoftware NetworkNetwork HardwareHardware

S Y S T E M CTM

Design Flow of Distributed Embedded SystemsDesign Flow of Distributed Embedded SystemsDesign Flow of Distributed Embedded Systems

Page 14: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Design and Verification ProcessDesign and Verification Process 13

Requirements Management

Results

Specification

Verification Prozess

Analysis (Coverage, Assertions)

ImplementationVerification aims

Challenges1. Move from document

centric to model centric 2. Interfaces between

requirements, specification, verification aims, and implementation

3. Tracing of requirements and verification aims

4. Automatic generation of software, hardware and test cases (ATPG)

Page 15: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Design and Verification Process with UMLDesign and Verification Process with UML 14

Requirements Management

Results

Specification

Verification Prozess

Analysis (Coverage, Assertions)

ImplementationVerification aims

• Interfaces between specification, verification aims, and implementation

• Enable code generation• Enable test case

description• Enable linking and

tracing of design components

• Missing requirements• Missing support the

verification process

Page 16: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

UML 2UML 2 15

UML 2.xDiagram

Component Diagram

BehaviorDiagram

State Machine Diagram

Object Diagram

DeploymentDiagram

PackageDiagram

Structure Diagram

Interaction OverviewDiagram

Interaction Diagram

CommunicationDiagram

Sequence Diagram

Timing Diagram

Use-Case-Diagram

ClassDiagram

Composition Diagram

Activity Diagram

Page 17: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

System ArchitectureSystem Architecture 16

BehaviorDiagram

State Machine Diagram

Interaction OverviewDiagram

Interaction Diagram

CommunicationDiagram

Sequence Diagram

Timing Diagram

Use-Case-Diagram

Activity Diagram

Structure Diagram

UML 2.xDiagram

Component Diagram

Object Diagram

DeploymentDiagram

PackageDiagram

ClassDiagram

Composition Diagram

Page 18: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Use-Case-Diagram

System BehaviorSystem Behavior 17

Component Diagram

Object Diagram

DeploymentDiagram

PackageDiagram

Structure Diagram

Interaction OverviewDiagram

Interaction Diagram

CommunicationDiagram

Sequence Diagram

Timing Diagram

ClassDiagram

Composition Diagram

UML 2.xDiagram

BehaviorDiagram

State Machine Diagram

Activity Diagram

Page 19: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Scenario / Test caseScenario / Test case 18

Component Diagram

State Machine Diagram

Object Diagram

DeploymentDiagram

PackageDiagram

Structure Diagram

ClassDiagram

Composition Diagram

Activity Diagram

UML 2.xDiagram

BehaviorDiagram

Interaction OverviewDiagram

Interaction Diagram

CommunicationDiagram

Sequence Diagram

Timing Diagram

Use-Case-Diagram

Page 20: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

SysMLSysML 19

SysML

Component Diagram

BehaviorDiagram

State Machine Diagram

Object Diagram

DeploymentDiagram

PackageDiagram

Structure Diagram

Interaction OverviewDiagram

Interaction Diagram

CommunicationDiagram

Sequence Diagram

Timing Diagram

Use-Case-Diagram

Block DefinitionDiagram

Internal Block Diagram

Activity Diagram

Requirements-Diagram

Parametric Diagram

New diagrams in SysMLExtended/modified diagrams in SysML

Page 21: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Interface to VerificationInterface to Verification 20

Requirements Management

Results

Specification

Verification Prozess

Analysis (Coverage, Assertions)

ImplementationVerification aims

Challenge

• System analysis of UML/SysML diagrams

• Generating for verification aims (Assertions)

Page 22: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OutlineOutline

EDA challengesSystem Level DesignVerificationSynthesisConclusion

Page 23: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

System Analysis through Assertions System Analysis through Assertions 22

UM

L/S

ysM

L (H

igh

Leve

l Des

crip

tion)

System Specification (UML/SysML)

Abstracte Property

Communication System-Architecture

Sequence Diagram

Structure Diagram

Assertions

Sys

tem

-D

escr

iptio

n

Formale VerificationSimulation

Deployment Diagram

Prozess toModule

Page 24: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Assertion-based VerificationAssertion-based Verification 23

Test pattern indicate test qualityAssertions improve error localizationAssertions for functional und formal verification

Test bench (includes test patterns

example

Prozess1(P1)

Prozess2(P2)

Prozess3(P3)

Monitors for Assertions

System-ModelPSL/FLTL Property (Assertion)

SystemC-based Temporal Checker

AR

Accept Reject� �

Interfaces for test patterns

Page 25: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Software ModelingSoftware Modeling

SoftwareSoftware

Semiformal Verification

Semiformal Verification

Integers, arrays, floating pointArithmetic operations: +, - , *, /, %PointersProcedures

Formal modelStatic and control-flow operationsModel here means a FSMBoolean variables

Simulation modelDynamic aspects (e.g., dynamic allocation) Data-flow arithmetic operations (e.g., multiplication and division)

Page 26: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OutlineOutline

EDA challengesSystem Level DesignVerification

Semi-Formal Verification Flow and ResultsSynthesisConclusion

Page 27: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Embedded Software Modeling: OverviewEmbedded Software Modeling: OverviewComplex C program

CFA Generator1CFA Generator1

Control flowautomata

Formalmodel

Simulationmodel

Formal verification Simulation

Model GeneratorModel Generator

CIL1CIL1

„Simple“C program

int p;int main() {int i = 0;while( i != p){

i = i + 1;}

return(0);}

Block(i=0)

1

0

2

3

Pred (i== p)

Block (i= i + 1)

4Block (ret=0)

Pred (i != p)

Properties /Critical states

SymC C/SystemC

1) CIL: http://cil.sourceforge.net

READ F EEE_OK

Page 28: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

module main signal s3, s2, s1, i3, i2, i1, ret : boolean; input p2, p1 : boolean;

inits3 == false; s2 == false; s1 == false;define state0 := (!s3 & !s2 & !s1); state1 := (!s3 & !s2 & s1);state2 := (!s3 & s2 & !s1); state3 := (!s3 & s2 & s1);state4 := (s3 & !s2 & !s1); eqCheck := ((p2&i2)|(!p2&!i2))&((p1&i1)|(!p1&!i1));…transnext (s3) == state2; next (s2) == state1;next (s1) == state0|(state1 & !eqCheck)|state3;next (i3) == (false & state0) | (m1.c2 & state3) |

(!(state0 | state3) & i3);next (i2) == (false & state0) | (m1.s1 & state3) |

(!(state0 | state3) & i2);next (i1) == (false & state0) | (m0.s0 & state3) |

(!(state0 | state3) & i1);next (ret) == (false & state2) | (!(state2) & ret);…invaradd0.a0 == (state3 & i1); add0.b0 == (state3 & true);add1.a1 == (state3 & i2); add1.b1 == (state3 & false);…end

unsigned int p, i, pc;int main(){LL0:

p = random(); i = 0; pc = 1;

LL1:if (i!=p){

pc = 3;LL3:

i = i + 1;pc = 1;goto LL1;

}else{

pc = 2;LL2:

pc = 4;goto LL4;

}LL4:

return(0);}

Simulationmodel

Modeling SemanticsModeling Semantics

Time reference

Transition state

Block(i=0)

1

0

2

3

Pred (i== p)

Block (i= i + 1)

4Block (ret=0)

Pred (i != p)

Control flowautomata

Formalmodel

Page 29: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Temporal Checker FrameworkTemporal Checker Framework

Property specification in SystemC models

Proposition class

Property synthesis and checking

LTL with Time BoundF[2] a

Customizable actions in special states

SystemC model PSL / FLTLproperties

SystemC kernel &temporal checker library

Customizable actions:assertion messages, exceptions

AR

a

!a

a

!a !a

Reject

Accepta

Page 30: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Experimental ResultsExperimental Results

EEPROM Emulation SoftwareDerived 86 Properties from EEELib specificationPerformed 93 BLAST-runs (timeout set to 24h)

Total verification time: 532 hours (~22 days)

Results:7 trials resulted in BLAST internal error8 trials did not finish within 24h78 trials resulted in “the system is safe” message

Page 31: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Experimental Results IIExperimental Results II

• NVM-Software

< 1min.35.58s4. If a block is a double buffered block, NVMsystem should output 1 or 0 to identify the valid block.

< 1min.Error2.38sNo error

3. A request has only two state:

"NO_REQUEST" or "WRITE_REQUEST".

34 min.50 min.Internal error

< 1min.No error

2.34sNo error

1. The index of data blocks requested should be valid between 0 and the maximal number of data blocks or be assigned to FAILED if the given block is invalid.

Verif. Time

BLAST

ResultsBLAST

Verif. TimeCBMC

ResultsCBMCProperties

2. A data block is only initalized when the address of external buffer is assigned.

Internal error

Error No error

Experimental ResultsExperimental Results

Page 32: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OutlineOutline

EDA challengesSystem Level DesignVerificationSynthesisConclusions

Page 33: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

First generation of synthesis tools were not accepted…First First generationgeneration of of synthesissynthesis toolstools werewere notnot acceptedaccepted……

One wait statement per loop

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

}

At least At least oneone waitwait statementstatement betweenbetween twotwo writewrite operationsoperations thethe samesame memorymemory portport

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

wait();real_out.write(e + i);// Error: no wait real_out.write(e + i + i);

}wait();

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

wait();real_out.write(e + i);wait();real_out.write(e + i + i);

}wait();

Page 34: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

… first generation of synthesis tools were not accepted……… firstfirst generationgeneration of of synthesissynthesis toolstools werewere notnot acceptedaccepted……

if (a < b) {e = (a * c * d);wait();

}else if (a = b) {e = (b * c * d);// Error: no wait

} // Error: ELSE path not considered

if (a < b) {e = (a * c * d);wait();wait();

} else if (a = b) {e = (b * c * d);wait();

} else {wait();

}

// Initialisierungout_valid.write(true);out1.write(0);out2.write("11111111");// Error: no wait while (true) {

...//process behavior}

// Initialisierungout_valid.write(true);out1.write(0);out2.write("11111111");wait();while (true) {

...//process behavior}

Page 35: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

…first generation of synthesis tools were not accepted………firstfirst generationgeneration of of synthesissynthesis toolstools werewere notnot acceptedaccepted……

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

}

e = (a * c * d);real_out.write(e);wait(); for (int i = 0; i<4; i++) {real_out.write(e + i);wait();c = data_in.read();e = (a * c * d);

}

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

}

for (int i = 0; i<4; i++) {e = (a * c * d + i);real_out.write(e);wait(); // shift wait in front of

ifif (i == 3) break;

}

putput nn + 1 + 1 waitswaits afterafter thethe looploop condition and condition and nn + 1 + 1 waitswaits afterafter thethe end of end of thethelooploop, , ifif n n cyclescycles areare necessarynecessary to to calculatecalculate thethe looploop conditioncondition……

putput nn waitswaits betweenbetween datadata dependentdependent I/O I/O readread and I/O and I/O writeswrites ifif thethe includedincludedcalculationcalculation requiresrequires n n cyclescycles

Page 36: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

„Cycle-Fixed“ guidelines…„„CycleCycle--FixedFixed““ guidelinesguidelines……e = (a * c * d);// Error: no wait;for (int i = 0; i<4; i++) {e = (a * c * d + i);wait();

}

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

}

for (int i = 0; i<4; i++) {wait();e = (a - 2);while (i == 0) {

wait();e = (b - 2);do {

wait();e = (b - 2);if (i == 0) break;

} while (i == 0);// Error: no wait;

}// Error: no wait;real_out.write(e);

}// Error: no wait;imaginary_out.write(e);wait();

for (int i = 0; i<4; i++) {wait();e = (a - 2);while (i == 0) {

wait();e = (b - 2);do {

wait();e = (b - 2);if (i == 0) break;

} while (i == 0);wait();

}wait();real_out.write(e);

}wait();imaginary_out.write(e);wait();

Page 37: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

High Level Synthesis is getting more acceptanceand attention

Known customers: ST, Qualcomm, Alcatel. Fujitsu, Panasonic, Toshiba, Thales, Sanyo, Ericsson, Pioneer, Motorola, Micronas, NXP, Broadcom, Sony, CanonMore and more commercial tools:

Mentor Graphics CatapultC, Forte Design Systems Cynthesizer, Cadence C-to-Silicon Compiler, NEC Cyber Workbench, SynforaPICO, Bluespec BSC, ChipVision PowerOpt, Synplify DSP

More than 50 ASIC Tape-outs reported in 2007, probablymore in 2008

(Older) market analysisfrom Gary Smith:

From Verification to C++/C/SystemC SynthesisFromFrom VerificationVerification to C++/C/SystemC Synthesisto C++/C/SystemC Synthesis

Page 38: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OptimizationsBus and memory architectureDatapath micro-architecturePower-gatingMultiple clock domainsVoltage scaling for dynamic powerMulti-threshold for static powerClock gatingPipelining

VerificationAutomated generation of SystemC transactorsTransactors convert function calls to pin-level signal activity

Interface Synthesis

Mentor Graphics – CatapultCMentor Graphics Mentor Graphics –– CatapultCCatapultC

Page 39: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Mentor Graphics – CatapultC: Technology Incorp.Mentor Graphics Mentor Graphics –– CatapultCCatapultC: Technology : Technology IncorpIncorp..

Page 40: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Mentor Graphics – CatapultCMentor Graphics Mentor Graphics –– CatapultCCatapultC

Page 41: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Mentor Graphics – CatapultCMentor Graphics Mentor Graphics –– CatapultCCatapultC

Page 42: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Forte Design Systems – CynthesizerForte Design Systems Forte Design Systems –– CynthesizerCynthesizer

Page 43: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Forte Design Systems – CynthesizerForte Design Systems Forte Design Systems –– CynthesizerCynthesizer

Page 44: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Forte Design Systems – CynthesizerForte Design Systems Forte Design Systems –– CynthesizerCynthesizer

Page 45: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Forte Design Systems – CynthesizerForte Design Systems Forte Design Systems –– CynthesizerCynthesizer

Page 46: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Cadence – C-to-Silicon CompilerCadenceCadence –– CC--toto--SiliconSilicon CompilerCompiler

Copyright: Cadence Design Systems (www.cadence.com)

Page 47: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

SoC multi modules design (All-in-C)Input: SystemC, ANSI C (BDL), Legacy RTLOutput: Cycle-accurate model (C++, SystemC, SpecC, Verilog), synthesizable RTL (VHDL, Verilog)Stimulus for behavioral simulation can be used for cycle or RTL simulationHigh controllability by constraint editorAutomatic architecture explorer

Loop unrolling, pipeliningCycle accurate simulation with original untimed C codeC-RTL equivalence prover (static & dynamic)Integrated model checking by comparing the output sequences gen. by the same stimuliRTL FloorPlanner

NEC – Cyber WorkbenchNEC NEC –– Cyber WorkbenchCyber Workbench

Page 48: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

NEC – Cyber WorkbenchNEC NEC –– Cyber WorkbenchCyber Workbench

Page 49: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OutlineOutline

EDA ChallengesSystem Level DesignVerificationSynthesis

HLS ExamplesHLS and Dynamic Reconfigurability

Conclusions

Page 50: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Verification/Testbench

Verification/Testbench

Technology MappingTechnology Mapping

RTL SynthesisRTL Synthesis

High Level SynthesisHigh Level Synthesis

Synthesis FlowSynthesis Flow 49

Catapult2007b.136

Catapult2007b.136

Precision2007a.18

Precision2007a.18

ISE10.1ISE10.1

ModelSimSE 6.3f

ModelSimSE 6.3f

Library BuilderLibrary Builder

Hardware

C++ Specification

VHDL Specification

Untimed C++ vs. TLM SystemC

Untimed C++ vs. TLM SystemC

Untimed C++ vs. Cycle HDL

Untimed C++ vs. Cycle HDL

Untimed C++ vs. Cycle SystemC

Untimed C++ vs. Cycle SystemCUntimed C++ vs.

RTL HDLUntimed C++ vs.

RTL HDL

Automatic Test

BenchGeneration

Untimed C++ vs. Mapped HDL

Untimed C++ vs. Mapped HDLUntimed C++ vs.

Gate HDLUntimed C++ vs.

Gate HDLUntimed C++ vs.

RTL SystemCUntimed C++ vs.

RTL SystemC

Page 51: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Algorithm:Algorithm: 50

meanmean

stdstd

normnorm

for/forfor/for

forfor

for/forfor/for

0 – VEC_LENGTH

for/forfor/for

0 – VEC_LENGTH

0 – VEC_LENGTH

0 – N & i – VEC_LENGTH

0 – N

0 – N & 0 – N

0 – N & 0 – VEC_LENGTH

÷

√÷

Input:Vector with 256 8 bitvaluesOutput:Vector with 256 valuesand estimationcoefficients

Input:Vector with 256 8 bitvaluesOutput:Vector with 256 valuesand estimationcoefficients

Page 52: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Synthesis GoalsSynthesis Goals

64 data vectors

Latency: 20 ms

Hardware: Xilinx Virtex FPGA

Clock frequency: 75 MHz

External memory

51

Page 53: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Manual Float/Fix TransformationManual Float/Fix Transformation

ac_fixed<width, integer, sign, quant, overflow>

ac_int<width, sign>

#include<ac_fixed.h>

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

52

Page 54: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Optimization: 64 vectors in < 20 msOptimization: 64 vectors in < 20 ms 53

allVecsallVecs VecsVecs2x 32x

256x

256x

256x

256x

256x

256x

256x 256x 64x

64x

transA

transB

Page 55: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Optimization: 64 vectors in < 20 msOptimization: 64 vectors in < 20 ms 54

transA

transB

transB0to50

Page 56: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Catapult: High Level Synthesis ResultsCatapult: High Level Synthesis Results 55

0

50000

100000

150000

200000

250000

300000

350000

ionen

 (poly

B_i50

)g (

alleII

1Poly

BII2)

para

llel (P

olyBII

2)st 

(Poly

B_i0t

o50)

ralle

l (32V

ecsP

ar)Ve

csPar2

DArra

ys)

's prl. 

(noGl

obals

)sfd

_vec

 (Poly

BII1)

sf_i24

9+1‐n

ormV

)

Goal:

20ms

=

Page 57: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Catapult&ModelSim: Very Good Verification IntegrationCatapult&ModelSim: Very Good Verification Integration

SCVerify option

Starts from initial C++ specification

Single source for simulation and synthesis

GCC integrated

56

Verification/Testbench

Verification/Testbench

Catapult2007b.136

Catapult2007b.136

Precision2007a.18

Precision2007a.18

ISE10.1ISE10.1

ModelSimSE 6.3f

ModelSimSE 6.3f

Untimed C++ vs. TLM SystemC

Untimed C++ vs. TLM SystemC

Untimed C++ vs. Cycle HDL

Untimed C++ vs. Cycle HDL

Untimed C++ vs. Cycle SystemC

Untimed C++ vs. Cycle SystemCUntimed C++ vs.

RTL HDLUntimed C++ vs.

RTL HDL

Automatic Test

BenchGeneration

Untimed C++ vs. Mapped HDL

Untimed C++ vs. Mapped HDLUntimed C++ vs.

Gate HDLUntimed C++ vs.

Gate HDLUntimed C++ vs.

RTL SystemCUntimed C++ vs.

RTL SystemC

Page 58: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OutlineOutline

EDA ChallengesSystem Level DesignVerificationSynthesis

HLS ExamplesHLS and Dynamic Reconfigurability

Conclusions

Page 59: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

(statically) reconfigurable

execution execution

minutes to dayst

product lifetimet

execution

prototyping

small volume productions

reconfiguration

From Static to Dynamic ReconfigurabilityFrom Static to Dynamic Reconfigurability

Page 60: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

optimize area and performancequantify the benefits and costs

(statically) reconfigurable

t

dynamically reconfigurable

multi-context

processor-like reconfigurable(reconfiguration in each clock cycle)

From Static to Dynamic ReconfigurabilityFrom Static to Dynamic Reconfigurability

Example: NEC STP (DRP)

Page 61: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Evaluation ApproachEvaluation Approach

performance constraint• initiation interval (II)

application

application mapping

no processor-likereconfiguration utilize processor-like reconfiguration

mapping techniques for data flowmapping techniques for control flow

compare required area and delay

staticallyreconfigurable

processor-likereconfigurable

Page 62: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Techniques for Data FlowTechniques for Data Flow

multi-context pipelining

clock cycle nstate 1

clock cycle n+1state 2

clock cycle n+2state 3

II=3constraint

3# PEs

3# contexts

context 1

context 2

context 3

Page 63: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

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

1# of contexts

II=1constraint

2

# of contexts

II=2constraint

Optimization of Performance

Page 64: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

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

2

# of contexts

II=2constraint

4

# of contexts

II=4constraint

Optimization of Performance

Page 65: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

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

4

# of contexts

II=4constraint

Optimization of Performance

Page 66: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Evaluation of Performance using STP (StreamTransPose from NEC (C-based reconfigurable core)Evaluation of Performance using STP (StreamTransPose from NEC (C-based reconfigurable core)

•PE(8bit)x256•32 context plane•MULx32•2port MEMx56•1port MEMx16

•PE(8bit)x256•32 context plane•MULx32•2port MEMx56•1port MEMx16

C-based programmability and H/W level performanceC-based programmability and H/W level performance

Page 67: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer 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 CPUImplemented functions:

PMW-EX1 Nov. 2007

STP Engine embedded ASIC

PMW-EX3 July 2008

PMW-EX30 July 2008

Stream Packet Mux/DeMuxAudio EncodeIntelligent DMAVideo Codec, etc

Extended to the enhanced models by updating functions running on STP Engine

Page 68: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

NEC – Cyber WorkbenchNEC NEC –– Cyber WorkbenchCyber Workbench

Page 69: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

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 thereconfiguration overhead

Advantages of Dynamically Reconfigurable Processors

Page 70: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

OutlineOutline

EDA ChallengesSystem Level DesignVerificationSynthesisConclusions

Page 71: Automated Synthesis and Verification of Embedded Systems: … · 2009-03-06 · Verification Prozess Analysis (Coverage, Assertions) Verification aims Implementation Challenges 1

WILHELMWILHELM--SCHICKARDSCHICKARD--INSTITUTINSTITUT Computer EngineeringComputer Engineering

Automatic Verification and Synthesis has to BecomeReality!

Automatic Verification and Synthesis has to BecomeReality!Design automation to increase design productivity

Most of design effort is in employee cost (about 80%)Efforts doubles after two process generations

Include embedded softwareSoftware will get more important 50% is software costFuture systems: COTS-IP + synthesized hardware and softwareto keep flexibility, increase productivity and reduce risks

Closer links with applicationExecutable specificationsLink requirements with verificationAutomatic synthesis and verification for hardware and software

How will fabless/fablite companies differentiate?Application knowledgeEDA flow and tools