Emulation on Your Desktop

27
The Verification Problem Emulation Case Studies Summary Emulation On Your Desktop Nirajnayan Sharma Head, Engineering and Marketing - India Bluespec, Inc. [email protected] March 12, 2010 Nirajnayan Sharma Emulation On Your Desktop

Transcript of Emulation on Your Desktop

Page 1: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

Emulation On Your Desktop

Nirajnayan Sharma

Head, Engineering and Marketing - IndiaBluespec, Inc.

[email protected]

March 12, 2010

Nirajnayan Sharma Emulation On Your Desktop

Page 2: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

Outline

1 The Verification Problem

2 EmulationFirst Generation EmulationNext Generation Emulation

3 Case StudiesAXI SwitchCMU ProtoFLEX

4 Summary

Nirajnayan Sharma Emulation On Your Desktop

Page 3: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

Outline

1 The Verification Problem

2 EmulationFirst Generation EmulationNext Generation Emulation

3 Case StudiesAXI SwitchCMU ProtoFLEX

4 Summary

Nirajnayan Sharma Emulation On Your Desktop

Page 4: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

Simulation – The Fundamental Verification Bottleneck

Simulations are great for DOA and initial testingSimulators allow the highest visibility into the hardwareSimulations remain the best method for the debug-fix-verifycycle

However . . .Speed quickly becomes a limiting factor in the verification ofcomplex systems

System simulations which can last days1 sec of D1 H.264 encode => 15 hoursLinux boot initialization => 140 hours . . .

Nirajnayan Sharma Emulation On Your Desktop

Page 5: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Outline

1 The Verification Problem

2 EmulationFirst Generation EmulationNext Generation Emulation

3 Case StudiesAXI SwitchCMU ProtoFLEX

4 Summary

Nirajnayan Sharma Emulation On Your Desktop

Page 6: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

From Simulation To Emulation!"#$%&'()*+,-./&$,"0

1-./&$,"0

2&'3%&'(

4'&3,$,"0&/*5.'(*+,-

674*-"8(3*$"*

1-./&$"'

674*9*5('#"'-&0:(;

:',$,:&/*4<*-"8(3*$"*

1-./&$"'

!"#$%#&'&((')*+,-.&

!"#$#!"#$%#&'&(

(')*+,-.&

/-++#"0,,1-%-23#+$%2-#

+,$.414+'#5%51*+$+#$+#56752-%,#

,0#89!

+5((3.5*=>>>?*@*=>A>>>?

89!

Nirajnayan Sharma Emulation On Your Desktop

Page 7: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

First Generation Emulation

Emulation when used effectively can be a game-changer, butexisting systems are . . .

Expensive – difficult to justify except at the highest-endComplexity – co-emulation link API requires bit-level datapacking and timing synchronization!"#$%&'&(")*+*,(-./'&"#

012(31

4)51#

61%&7#"8#(1&'#9

7#"&"3"/%

61%&*

:1)3;

<7=>*:"?*+*@-./'&"#7;9%(3'/

A()$

61%&*B1)3;

01%(C)

D"+1-./'&(")*/()$*

Nirajnayan Sharma Emulation On Your Desktop

Page 8: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

First Generation Emulation . . .

Emulation when used effectively can be a game-changer, butexisting systems are . . .

Difficult to remove bottlenecks between testbench andDUT resulting in unrealized performance

Complex test-benches from simulation will not port intoemulation

!"#$%&'&(")*+*,(-./'&"#

012(31

4)51#

61%&7#"8#(1&'#9

7#"&"3"/%

61%&*

:1)3;

<7=>*:"?*+*@-./'&"#7;9%(3'/

A()$

61%&*B1)3;

01%(C)

D"+1-./'&(")*/()$*

Nirajnayan Sharma Emulation On Your Desktop

Page 9: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

First Generation Emulation . . .

Emulation when used effectively can be a game-changer, butexisting systems are . . .

Limited to later in the development cycle when RTL hasreached a critical point in verification

Only functional after a lot of verification (includingarchitectural and spec) have already been completed

!"#$%&'&(")*+*,(-./'&"#

012(31

4)51#

61%&7#"8#(1&'#9

7#"&"3"/%

61%&*

:1)3;

<7=>*:"?*+*@-./'&"#7;9%(3'/

A()$

61%&*B1)3;

01%(C)

D"+1-./'&(")*/()$*

Nirajnayan Sharma Emulation On Your Desktop

Page 10: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation

!"#$%"

&'(")

*"+,*"+,-."'%/

01',/"+$2345"-*"+,-

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>[email protected])(-:-A;<53,7)

63%,7) 63%,7)

63%,7)&0.&0.

>BCDA>BCDA

A,/")'",A,/")'",

EEEEEE

>/1+$%35>/1+$%35

F$'9F$'9

0BADGC>)7,7%75

H

I@F

0BADGC>)7,7%75

H

I@F

Hardware Abstraction Layer – decouples userapplication from physical layer

Proprietary or standard (USB, Ethernet, PCI-E, . . . ), serialor parallel physical linkWork with high-level data structuresLow-level link data and timing details hidden

Nirajnayan Sharma Emulation On Your Desktop

Page 11: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation . . .

!"#$%"

&'(")

*"+,*"+,-."'%/

01',/"+$2345"-*"+,-

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>[email protected])(-:-A;<53,7)

63%,7) 63%,7)

63%,7)&0.&0.

>BCDA>BCDA

A,/")'",A,/")'",

EEEEEE

>/1+$%35>/1+$%35

F$'9F$'9

0BADGC>)7,7%75

H

I@F

0BADGC>)7,7%75

H

I@F

SCE-MIStandardized API and communication protocol to take fulladvantage of emulation performanceBoth on hardware and software sidesEnsures simulation and emulation componentinter-operability

Nirajnayan Sharma Emulation On Your Desktop

Page 12: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation . . .

!"#$%"

&'(")

*"+,*"+,-."'%/

01',/"+$2345"-*"+,-

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>[email protected])(-:-A;<53,7)

63%,7) 63%,7)

63%,7)&0.&0.

>BCDA>BCDA

A,/")'",A,/")'",

EEEEEE

>/1+$%35>/1+$%35

F$'9F$'9

0BADGC>)7,7%75

H

I@F

0BADGC>)7,7%75

H

I@F

Transactors – Virtual termination of external designinterfaces

Help eliminate link bottlenecks by converting from timedbit-level to untimed transaction-level

Nirajnayan Sharma Emulation On Your Desktop

Page 13: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation . . .

!"#$%"

&'(")

*"+,*"+,-."'%/

01',/"+$2345"-*"+,-

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>[email protected])(-:-A;<53,7)

63%,7) 63%,7)

63%,7)&0.&0.

>BCDA>BCDA

A,/")'",A,/")'",

EEEEEE

>/1+$%35>/1+$%35

F$'9F$'9

0BADGC>)7,7%75

H

I@F

0BADGC>)7,7%75

H

I@F

Synthesizable testbenchHelps eliminate bottlenecks in the simulator andco-emulation linkAllow debug instrumentation to be placed around the DUTwithout affecting performance

Nirajnayan Sharma Emulation On Your Desktop

Page 14: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation . . .

!"#$%"

&'(")

*"+,*"+,-."'%/

01',/"+$2345"-*"+,-

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>[email protected])(-:-A;<53,7)

63%,7) 63%,7)

63%,7)&0.&0.

>BCDA>BCDA

A,/")'",A,/")'",

EEEEEE

>/1+$%35>/1+$%35

F$'9F$'9

0BADGC>)7,7%75

H

I@F

0BADGC>)7,7%75

H

I@F

Emulator – Commodity FPGAsMust move to commodity FPGAs and support virtualizationof FPGA platforms (portability)Allows tracking of latest FPGA technology at lowest cost

Nirajnayan Sharma Emulation On Your Desktop

Page 15: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

Outline

1 The Verification Problem

2 EmulationFirst Generation EmulationNext Generation Emulation

3 Case StudiesAXI SwitchCMU ProtoFLEX

4 Summary

Nirajnayan Sharma Emulation On Your Desktop

Page 16: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

AXI Switch Performance Validation!"#$%&'&(")

*+*'%&,#+-#'..(/

0,),#'&"#%+1+-#')%'/&"#% 2+34'5,%

*+*'%&,#

-#'..(/+6(#,/&"#%

*

*

*

3

3

3

3

3

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:+

3;(&/<

=6>-?

*89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

!"#$*:%&%'()

>3@

3,#('4(A,#B6,%,#('4(A,#+

C"B,DE4'&(")+F()$ *+G+2+89:+3;(&/<

HI08+@"'#JI<K%(/'4+

F()$

3&'&(%&(/%

-/4L-$+0>:

3&'&(%&(/%

89:+-#'..(/+

6(#,/&"#

DUT and emulation setupAXI switch as DUTConfigurable number of masters and slavesImplemented on ML507 Virtex-5 board

Nirajnayan Sharma Emulation On Your Desktop

Page 17: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

AXI Switch Performance Validation . . .!"#$%&'&(")

*+*'%&,#+-#'..(/

0,),#'&"#%+1+-#')%'/&"#% 2+34'5,%

*+*'%&,#

-#'..(/+6(#,/&"#%

*

*

*

3

3

3

3

3

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:+

3;(&/<

=6>-?

*89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

!"#$*:%&%'()

>3@

3,#('4(A,#B6,%,#('4(A,#+

C"B,DE4'&(")+F()$ *+G+2+89:+3;(&/<

HI08+@"'#JI<K%(/'4+

F()$

3&'&(%&(/%

-/4L-$+0>:

3&'&(%&(/%

89:+-#'..(/+

6(#,/&"#

Test setupDirected random trafficTraffic generator and analyzer split between simulator andemulator

Nirajnayan Sharma Emulation On Your Desktop

Page 18: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

AXI Switch Performance Validation . . .!"#$%&'&(")

*+*'%&,#+-#'..(/

0,),#'&"#%+1+-#')%'/&"#% 2+34'5,%

*+*'%&,#

-#'..(/+6(#,/&"#%

*

*

*

3

3

3

3

3

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:+

3;(&/<

=6>-?

*89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

!"#$*:%&%'()

>3@

3,#('4(A,#B6,%,#('4(A,#+

C"B,DE4'&(")+F()$ *+G+2+89:+3;(&/<

HI08+@"'#JI<K%(/'4+

F()$

3&'&(%&(/%

-/4L-$+0>:

3&'&(%&(/%

89:+-#'..(/+

6(#,/&"#

Test setup . . .Simulator’s GUI configures and analyzes traffic patternsAXI Traffic Director transmits traffic configurationparameters to emulator

Nirajnayan Sharma Emulation On Your Desktop

Page 19: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

AXI Switch Performance Validation . . .!"#$%&'&(")

*+*'%&,#+-#'..(/

0,),#'&"#%+1+-#')%'/&"#% 2+34'5,%

*+*'%&,#

-#'..(/+6(#,/&"#%

*

*

*

3

3

3

3

3

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:+

3;(&/<

=6>-?

*89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

!"#$*:%&%'()

>3@

3,#('4(A,#B6,%,#('4(A,#+

C"B,DE4'&(")+F()$ *+G+2+89:+3;(&/<

HI08+@"'#JI<K%(/'4+

F()$

3&'&(%&(/%

-/4L-$+0>:

3&'&(%&(/%

89:+-#'..(/+

6(#,/&"#

Test setup . . .Emulator has AXI Traffic Generators configured fromsimulator sideRAM modules serve as memory-mapped slaves

Nirajnayan Sharma Emulation On Your Desktop

Page 20: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

AXI Switch Performance Validation . . .

!"#$%&'&(")

*+*'%&,#+-#'..(/

0,),#'&"#%+1+-#')%'/&"#% 2+34'5,%

*+*'%&,#

-#'..(/+6(#,/&"#%

*

*

*

3

3

3

3

3

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:+

3;(&/<

=6>-?

*89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

!"#$*:%&%'()

>3@

3,#('4(A,#B6,%,#('4(A,#+

C"B,DE4'&(")+F()$ *+G+2+89:+3;(&/<

HI08+@"'#JI<K%(/'4+

F()$

3&'&(%&(/%

-/4L-$+0>:

3&'&(%&(/%

89:+-#'..(/+

6(#,/&"#

SCE-MI communication – consistent framework forimplementing untimed communication between simulatorand emulator

Nirajnayan Sharma Emulation On Your Desktop

Page 21: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

AXI Switch Performance Validation . . .

!"#$%&'&(")

*+*'%&,#+-#'..(/

0,),#'&"#%+1+-#')%'/&"#% 2+34'5,%

*+*'%&,#

-#'..(/+6(#,/&"#%

*

*

*

3

3

3

3

3

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:+

3;(&/<

=6>-?

*89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

!"#$*:%&%'()

>3@

3,#('4(A,#B6,%,#('4(A,#+

C"B,DE4'&(")+F()$ *+G+2+89:+3;(&/<

HI08+@"'#JI<K%(/'4+

F()$

3&'&(%&(/%

-/4L-$+0>:

3&'&(%&(/%

89:+-#'..(/+

6(#,/&"#

HAL automatically serializes and de-serializes transactionlevel communication through the USB

Nirajnayan Sharma Emulation On Your Desktop

Page 22: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

AXI Switch Performance Validation . . .

!"#$%&'&(")

*+*'%&,#+-#'..(/

0,),#'&"#%+1+-#')%'/&"#% 2+34'5,%

*+*'%&,#

-#'..(/+6(#,/&"#%

*

*

*

3

3

3

3

3

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

78*

34'5,

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:

*'%&,#+

9'/&"#

89:+

3;(&/<

=6>-?

*89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

89:+-#'..(/+

0,),#'&"#

!"#$*:%&%'()

>3@

3,#('4(A,#B6,%,#('4(A,#+

C"B,DE4'&(")+F()$ *+G+2+89:+3;(&/<

HI08+@"'#JI<K%(/'4+

F()$

3&'&(%&(/%

-/4L-$+0>:

3&'&(%&(/%

89:+-#'..(/+

6(#,/&"#

Performance – entire system runs at 50 MHz in emulationon the board.

Nirajnayan Sharma Emulation On Your Desktop

Page 23: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

CMU ProtoFLEX – Accelerating Software ValidationFor many SoCs software development and verification can dominate development cycle

!"#$%&'()*+,

-./%00%0

*12%#*3

4567#8

!

!"#$9$%8:

5"."8;

5<=$:%;">%0(0%?"8%

1=()*+,(@7/#"8(@1#

81.69$%A"=$%=;"?%

B5,(@9=8$"1=7C"$<

5D(1=(**3

@1#(C%;;(@#%E9%=$

B5,(@9=8$"1=7C"$<

F%;$(1@(@9CC(;<;$%.

G12AC7$%=8<

:"H:A/7=02"0$:

81..9="87$"1=

IJ."8#1A$#7=;6C7=$KL

-$:%#=%$

81..9="87$"1=

IJ$#7=;6C7=$KL

Virtutech SimicsVirtutech Simics – Commercial SW simulator for wholesystems (OS/devices/apps)Despite clever tricks, steady slowdown for each addedthread and for each added bit of instrumentation

Nirajnayan Sharma Emulation On Your Desktop

Page 24: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

CMU ProtoFLEX . . .

!"#$%&'()*+,

-./%00%0

*12%#*3

4567#8

!

!"#$9$%8:

5"."8;

5<=$:%;">%0(0%?"8%

1=()*+,(@7/#"8(@1#

81.69$%A"=$%=;"?%

B5,(@9=8$"1=7C"$<

5D(1=(**3

@1#(C%;;(@#%E9%=$

B5,(@9=8$"1=7C"$<

F%;$(1@(@9CC(;<;$%.

G12AC7$%=8<

:"H:A/7=02"0$:

81..9="87$"1=

IJ."8#1A$#7=;6C7=$KL

-$:%#=%$

81..9="87$"1=

IJ$#7=;6C7=$KL

CMU ProtoFLEXFully operational model of 16-cpu UltraSPARC III SunFire3800 Server, running unmodified Solaris 8; running onFPGA at 90 MHzHybrid simulation – continue to use Simics for modelingrest of system (I/O devices, ...)

Nirajnayan Sharma Emulation On Your Desktop

Page 25: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

AXI SwitchCMU ProtoFLEX

CMU ProtoFLEX . . .!"#$%&'()*+,

-./%00%0

*12%#*3

4567#8

!

!"#$9$%8:

5"."8;

5<=$:%;">%0(0%?"8%

1=()*+,(@7/#"8(@1#

81.69$%A"=$%=;"?%

B5,(@9=8$"1=7C"$<

5D(1=(**3

@1#(C%;;(@#%E9%=$

B5,(@9=8$"1=7C"$<

F%;$(1@(@9CC(;<;$%.

G12AC7$%=8<

:"H:A/7=02"0$:

81..9="87$"1=

IJ."8#1A$#7=;6C7=$KL

-$:%#=%$

81..9="87$"1=

IJ$#7=;6C7=$KL

CMU ProtoFLEXBenchmarks

TPC-C OLTP on Oracle 10g Enterprise Database ServerSPECINT (bzip2, crafty, gcc, gzip, parser, vortex)

Performance: 10-60 MIPS. 39x faster than Virtutech Simicsalone on same system/benchmarkWritten by 1 graduate student (Eric Chung) in 1 year

Nirajnayan Sharma Emulation On Your Desktop

Page 26: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

Outline

1 The Verification Problem

2 EmulationFirst Generation EmulationNext Generation Emulation

3 Case StudiesAXI SwitchCMU ProtoFLEX

4 Summary

Nirajnayan Sharma Emulation On Your Desktop

Page 27: Emulation on Your Desktop

The Verification ProblemEmulation

Case StudiesSummary

SummaryIf you had a 50-100 MHz emulation platform on your desktop right from the start?

FPGA densities and parallel interconnect speeds todayallow

Significant unit verification to be done in a single FPGAComplete chips to be cost effectively emulated on FPGAboards and systems

A well-engineered co-emulation stack and linkvirtualization are key to enabling mainstream use

Ensure simple and rapid bringupFlexible hardware-software partitioningPortability across hardware and applications

Paired with a general-purpose high-level synthesis language, awell productized co-emulation stack can enable mass-adoptionof emulation.

Nirajnayan Sharma Emulation On Your Desktop