20101203 desktop emulation

Post on 01-Dec-2014

589 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

The Verification ProblemEmulation

Case StudiesSummary

Emulation On Your Desktop

Nirajnayan Sharma

Head, Engineering and Marketing - IndiaBluespec, Inc.

niraj.sharma@bluespec.com

March 12, 2010

Nirajnayan Sharma 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

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

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

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

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

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

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

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

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation

!"#$%"

&'(")

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

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

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>?@-.73)(-:-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

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation . . .

!"#$%"

&'(")

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

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

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>?@-.73)(-:-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

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation . . .

!"#$%"

&'(")

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

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

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>?@-.73)(-:-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

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation . . .

!"#$%"

&'(")

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

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

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>?@-.73)(-:-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

The Verification ProblemEmulation

Case StudiesSummary

First Generation EmulationNext Generation Emulation

Next Generation Emulation . . .

!"#$%"

&'(")

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

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

."'%/

63%,7)

87)9+,3,$7'-:-0$;<53,7) =>?@-.73)(-:-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

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

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

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

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

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

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

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

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

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

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

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

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

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

top related