SlideShare a Scribd company logo
1 of 27
Download to read offline
The Verification Problem
                Emulation
            Case Studies
                Summary




Emulation On Your Desktop

           Nirajnayan Sharma

   Head, Engineering and Marketing - India
               Bluespec, Inc.
       niraj.sharma@bluespec.com


              March 12, 2010




      Nirajnayan Sharma     Emulation On Your Desktop
The Verification Problem
                                Emulation
                            Case Studies
                                Summary


Outline

  1   The Verification Problem

  2   Emulation
        First Generation Emulation
        Next Generation Emulation

  3   Case Studies
        AXI Switch
        CMU ProtoFLEX

  4   Summary



                      Nirajnayan Sharma     Emulation On Your Desktop
The Verification Problem
                                Emulation
                            Case Studies
                                Summary


Outline

  1   The Verification Problem

  2   Emulation
        First Generation Emulation
        Next Generation Emulation

  3   Case Studies
        AXI Switch
        CMU ProtoFLEX

  4   Summary



                      Nirajnayan Sharma     Emulation On Your Desktop
The Verification Problem
                               Emulation
                           Case Studies
                               Summary


Simulation – The Fundamental Verification Bottleneck


     Simulations are great for DOA and initial testing
         Simulators allow the highest visibility into the hardware
         Simulations remain the best method for the debug-fix-verify
         cycle
     However . . .
         Speed quickly becomes a limiting factor in the verification of
         complex systems
              System simulations which can last days
              1 sec of D1 H.264 encode => 15 hours
              Linux boot initialization => 140 hours . . .




                     Nirajnayan Sharma     Emulation On Your Desktop
The Verification Problem
                                Emulation   First Generation Emulation
                            Case Studies    Next Generation Emulation
                                Summary


Outline

  1   The Verification Problem

  2   Emulation
        First Generation Emulation
        Next Generation Emulation

  3   Case Studies
        AXI Switch
        CMU ProtoFLEX

  4   Summary



                      Nirajnayan Sharma     Emulation On Your Desktop
The Verification Problem
                                               Emulation                              First Generation Emulation
                                           Case Studies                               Next Generation Emulation
                                               Summary


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

                                                                                89!

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




     !"#$%#&'&((')*+,-.&                                                                     1-./&$,"0
                                                                                             2&'3%&'(




                                                          +5((3.5*=>>>?*@*=>A>>>?
           674*-"8(3*$"*
               1-./&$"'




     674*9*5('#"'-&0:(;
      :',$,:&/*4<*-"8(3*$"*
                  1-./&$"'




          !"#$#!"#$%#&'&(                          /-++#"0,,1-%-23#+$%2-#
          (')*+,-.&                            +,$.414+'#5%51*+$+#$+#56752-%,#
                                                          ,0#89!



                                     Nirajnayan Sharma                                Emulation On Your Desktop
The Verification Problem
                                               Emulation              First Generation Emulation
                                           Case Studies               Next Generation Emulation
                                               Summary


First Generation Emulation
  Emulation when used effectively can be a game-changer, but
  existing systems are . . .
      Expensive – difficult to justify except at the highest-end
      Complexity – co-emulation link API requires bit-level data
      packing and timing synchronization
       !"#$%&'&(")*+*,(-./'&"#   7;9%(3'/      <7=>*:"?*+*@-./'&"#
                                 A()$
                                                                            61%&*B1)3;

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

                                                                               01%(C)



                                                          012(31
       61%&*
                                                          4)51#
       :1)3;
                                                          61%&
                                 7#"8#(1&'#9
                                 7#"&"3"/%




                                         Nirajnayan Sharma            Emulation On Your Desktop
The Verification Problem
                                               Emulation              First Generation Emulation
                                           Case Studies               Next Generation Emulation
                                               Summary


First Generation Emulation . . .
  Emulation when used effectively can be a game-changer, but
  existing systems are . . .
       Difficult to remove bottlenecks between testbench and
       DUT resulting in unrealized performance
               Complex test-benches from simulation will not port into
               emulation
       !"#$%&'&(")*+*,(-./'&"#   7;9%(3'/      <7=>*:"?*+*@-./'&"#
                                 A()$
                                                                            61%&*B1)3;

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

                                                                               01%(C)



                                                          012(31
       61%&*
                                                          4)51#
       :1)3;
                                                          61%&
                                 7#"8#(1&'#9
                                 7#"&"3"/%




                                         Nirajnayan Sharma            Emulation On Your Desktop
The Verification Problem
                                               Emulation              First Generation Emulation
                                           Case Studies               Next Generation Emulation
                                               Summary


First Generation Emulation . . .
  Emulation when used effectively can be a game-changer, but
  existing systems are . . .
       Limited to later in the development cycle when RTL has
       reached a critical point in verification
               Only functional after a lot of verification (including
               architectural and spec) have already been completed
       !"#$%&'&(")*+*,(-./'&"#   7;9%(3'/      <7=>*:"?*+*@-./'&"#
                                 A()$
                                                                            61%&*B1)3;

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

                                                                               01%(C)



                                                          012(31
       61%&*
                                                          4)51#
       :1)3;
                                                          61%&
                                 7#"8#(1&'#9
                                 7#"&"3"/%




                                         Nirajnayan Sharma            Emulation On Your Desktop
The Verification Problem
                                             Emulation       First Generation Emulation
                                         Case Studies        Next Generation Emulation
                                             Summary


Next Generation Emulation
     87)9+,3,$7'-:-0$;<53,7)         >/1+$%35                 =>?@-.73)(-:-A;<53,7)
                                       F$'9

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



                                                           63%,7)                 63%,7)

                        0BADGC                  0BADGC
                        >)7,7%75                >)7,7%75              !"#$%"
       *"+,-."'%/          H                       H                  &'(")
                          I@F                     I@F                  *"+,


                                       &0.                 63%,7)                 63%,7)
                                      >BCDA
                                     A,/")'",
                                        EEE




     Hardware Abstraction Layer – decouples user
     application from physical layer
             Proprietary or standard (USB, Ethernet, PCI-E, . . . ), serial
             or parallel physical link
             Work with high-level data structures
             Low-level link data and timing details hidden
                                   Nirajnayan Sharma         Emulation On Your Desktop
The Verification Problem
                                              Emulation       First Generation Emulation
                                          Case Studies        Next Generation Emulation
                                              Summary


Next Generation Emulation . . .
      87)9+,3,$7'-:-0$;<53,7)         >/1+$%35                 =>?@-.73)(-:-A;<53,7)
                                        F$'9

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



                                                            63%,7)                 63%,7)

                         0BADGC                  0BADGC
                         >)7,7%75                >)7,7%75              !"#$%"
        *"+,-."'%/          H                       H                  &'(")
                           I@F                     I@F                  *"+,


                                        &0.                 63%,7)                 63%,7)
                                       >BCDA
                                      A,/")'",
                                         EEE




      SCE-MI
              Standardized API and communication protocol to take full
              advantage of emulation performance
              Both on hardware and software sides
              Ensures simulation and emulation component
              inter-operability
                                    Nirajnayan Sharma         Emulation On Your Desktop
The Verification Problem
                                              Emulation       First Generation Emulation
                                          Case Studies        Next Generation Emulation
                                              Summary


Next Generation Emulation . . .

      87)9+,3,$7'-:-0$;<53,7)         >/1+$%35                 =>?@-.73)(-:-A;<53,7)
                                        F$'9

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



                                                            63%,7)                 63%,7)

                         0BADGC                  0BADGC
                         >)7,7%75                >)7,7%75              !"#$%"
        *"+,-."'%/          H                       H                  &'(")
                           I@F                     I@F                  *"+,


                                        &0.                 63%,7)                 63%,7)
                                       >BCDA
                                      A,/")'",
                                         EEE




      Transactors – Virtual termination of external design
      interfaces
              Help eliminate link bottlenecks by converting from timed
              bit-level to untimed transaction-level

                                    Nirajnayan Sharma         Emulation On Your Desktop
The Verification Problem
                                              Emulation       First Generation Emulation
                                          Case Studies        Next Generation Emulation
                                              Summary


Next Generation Emulation . . .
      87)9+,3,$7'-:-0$;<53,7)         >/1+$%35                 =>?@-.73)(-:-A;<53,7)
                                        F$'9

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



                                                            63%,7)                 63%,7)

                         0BADGC                  0BADGC
                         >)7,7%75                >)7,7%75              !"#$%"
        *"+,-."'%/          H                       H                  &'(")
                           I@F                     I@F                  *"+,


                                        &0.                 63%,7)                 63%,7)
                                       >BCDA
                                      A,/")'",
                                         EEE




      Synthesizable testbench
              Helps eliminate bottlenecks in the simulator and
              co-emulation link
              Allow debug instrumentation to be placed around the DUT
              without affecting performance

                                    Nirajnayan Sharma         Emulation On Your Desktop
The Verification Problem
                                              Emulation       First Generation Emulation
                                          Case Studies        Next Generation Emulation
                                              Summary


Next Generation Emulation . . .

      87)9+,3,$7'-:-0$;<53,7)         >/1+$%35                 =>?@-.73)(-:-A;<53,7)
                                        F$'9

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



                                                            63%,7)                 63%,7)

                         0BADGC                  0BADGC
                         >)7,7%75                >)7,7%75              !"#$%"
        *"+,-."'%/          H                       H                  &'(")
                           I@F                     I@F                  *"+,


                                        &0.                 63%,7)                 63%,7)
                                       >BCDA
                                      A,/")'",
                                         EEE




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

                                    Nirajnayan Sharma         Emulation On Your Desktop
The Verification Problem
                                Emulation   AXI Switch
                            Case Studies    CMU ProtoFLEX
                                Summary


Outline

  1   The Verification Problem

  2   Emulation
        First Generation Emulation
        Next Generation Emulation

  3   Case Studies
        AXI Switch
        CMU ProtoFLEX

  4   Summary



                      Nirajnayan Sharma     Emulation On Your Desktop
The Verification Problem
                                                        Emulation               AXI Switch
                                                    Case Studies                CMU ProtoFLEX
                                                        Summary


AXI Switch Performance Validation
     !"#$%&'&(")                            I<K%(/'4+                                                      HI08+@"'#J
                                             F()$




                           !"#$*:%&%'()
         -/4L-$+0>:
         3&'&(%&(/%                                              3&'&(%&(/%
                                                                                                              78*
                                                                                                     3
                                                                                                              34'5,

                                                                               89:
                                                          89:+-#'..(/+
                                                                              *'%&,#+   *
                                                          0,),#'&"#                                           78*
                                                                              9'/&"#                 3
                                                                                                              34'5,

                                                                               89:
                                                          89:+-#'..(/+
                                                          0,),#'&"#
                                                                              *'%&,#+   *    89:+             78*
                                                                              9'/&"#                 3
                                                                                            3;(&/<            34'5,
        89:+-#'..(/+                        >3@
                                                                                            =6>-?
         6(#,/&"#                                         89:+-#'..(/+
                                                                               89:
                                                                              *'%&,#+   *
                                                                                                              78*
                                                          0,),#'&"#                                  3
                                                                              9'/&"#                          34'5,

                                                                               89:
                                                          89:+-#'..(/+
                                                                              *'%&,#+   *
                                                                                                              78*
                                                          0,),#'&"#                                  3
                                                                              9'/&"#                          34'5,



           *+*'%&,#        3,#('4(A,#B6,%,#('4(A,#+     *+*'%&,#+-#'..(/
       -#'..(/+6(#,/&"#%    C"B,DE4'&(")+F()$       0,),#'&"#%+1+-#')%'/&"#%            *+G+2+89:+3;(&/<    2+34'5,%



     DUT and emulation setup
              AXI switch as DUT
              Configurable number of masters and slaves
              Implemented on ML507 Virtex-5 board
                                               Nirajnayan Sharma                Emulation On Your Desktop
The Verification Problem
                                                         Emulation               AXI Switch
                                                     Case Studies                CMU ProtoFLEX
                                                         Summary


AXI Switch Performance Validation . . .
      !"#$%&'&(")                            I<K%(/'4+                                                      HI08+@"'#J
                                              F()$




                            !"#$*:%&%'()
          -/4L-$+0>:
          3&'&(%&(/%                                              3&'&(%&(/%
                                                                                                               78*
                                                                                                      3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                           0,),#'&"#                                           78*
                                                                               9'/&"#                 3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                           0,),#'&"#
                                                                               *'%&,#+   *    89:+             78*
                                                                               9'/&"#                 3
                                                                                             3;(&/<            34'5,
         89:+-#'..(/+                        >3@
                                                                                             =6>-?
          6(#,/&"#                                         89:+-#'..(/+
                                                                                89:
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,



            *+*'%&,#        3,#('4(A,#B6,%,#('4(A,#+     *+*'%&,#+-#'..(/
        -#'..(/+6(#,/&"#%    C"B,DE4'&(")+F()$       0,),#'&"#%+1+-#')%'/&"#%            *+G+2+89:+3;(&/<    2+34'5,%



      Test setup
               Directed random traffic
               Traffic generator and analyzer split between simulator and
               emulator
                                                Nirajnayan Sharma                Emulation On Your Desktop
The Verification Problem
                                                         Emulation               AXI Switch
                                                     Case Studies                CMU ProtoFLEX
                                                         Summary


AXI Switch Performance Validation . . .
      !"#$%&'&(")                            I<K%(/'4+                                                      HI08+@"'#J
                                              F()$




                            !"#$*:%&%'()
          -/4L-$+0>:
          3&'&(%&(/%                                              3&'&(%&(/%
                                                                                                               78*
                                                                                                      3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                           0,),#'&"#                                           78*
                                                                               9'/&"#                 3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                           0,),#'&"#
                                                                               *'%&,#+   *    89:+             78*
                                                                               9'/&"#                 3
                                                                                             3;(&/<            34'5,
         89:+-#'..(/+                        >3@
                                                                                             =6>-?
          6(#,/&"#                                         89:+-#'..(/+
                                                                                89:
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,



            *+*'%&,#        3,#('4(A,#B6,%,#('4(A,#+     *+*'%&,#+-#'..(/
        -#'..(/+6(#,/&"#%    C"B,DE4'&(")+F()$       0,),#'&"#%+1+-#')%'/&"#%            *+G+2+89:+3;(&/<    2+34'5,%



      Test setup . . .
               Simulator’s GUI configures and analyzes traffic patterns
               AXI Traffic Director transmits traffic configuration
               parameters to emulator
                                                Nirajnayan Sharma                Emulation On Your Desktop
The Verification Problem
                                                         Emulation               AXI Switch
                                                     Case Studies                CMU ProtoFLEX
                                                         Summary


AXI Switch Performance Validation . . .
      !"#$%&'&(")                            I<K%(/'4+                                                      HI08+@"'#J
                                              F()$




                            !"#$*:%&%'()
          -/4L-$+0>:
          3&'&(%&(/%                                              3&'&(%&(/%
                                                                                                               78*
                                                                                                      3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                           0,),#'&"#                                           78*
                                                                               9'/&"#                 3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                           0,),#'&"#
                                                                               *'%&,#+   *    89:+             78*
                                                                               9'/&"#                 3
                                                                                             3;(&/<            34'5,
         89:+-#'..(/+                        >3@
                                                                                             =6>-?
          6(#,/&"#                                         89:+-#'..(/+
                                                                                89:
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,



            *+*'%&,#        3,#('4(A,#B6,%,#('4(A,#+     *+*'%&,#+-#'..(/
        -#'..(/+6(#,/&"#%    C"B,DE4'&(")+F()$       0,),#'&"#%+1+-#')%'/&"#%            *+G+2+89:+3;(&/<    2+34'5,%



      Test setup . . .
               Emulator has AXI Traffic Generators configured from
               simulator side
               RAM modules serve as memory-mapped slaves
                                                Nirajnayan Sharma                Emulation On Your Desktop
The Verification Problem
                                                         Emulation               AXI Switch
                                                     Case Studies                CMU ProtoFLEX
                                                         Summary


AXI Switch Performance Validation . . .
      !"#$%&'&(")                            I<K%(/'4+                                                      HI08+@"'#J
                                              F()$




                            !"#$*:%&%'()
          -/4L-$+0>:
          3&'&(%&(/%                                              3&'&(%&(/%
                                                                                                               78*
                                                                                                      3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                           0,),#'&"#                                           78*
                                                                               9'/&"#                 3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                           0,),#'&"#
                                                                               *'%&,#+   *    89:+             78*
                                                                               9'/&"#                 3
                                                                                             3;(&/<            34'5,
         89:+-#'..(/+                        >3@
                                                                                             =6>-?
          6(#,/&"#                                         89:+-#'..(/+
                                                                                89:
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,



            *+*'%&,#        3,#('4(A,#B6,%,#('4(A,#+     *+*'%&,#+-#'..(/
        -#'..(/+6(#,/&"#%    C"B,DE4'&(")+F()$       0,),#'&"#%+1+-#')%'/&"#%            *+G+2+89:+3;(&/<    2+34'5,%



      SCE-MI communication – consistent framework for
      implementing untimed communication between simulator
      and emulator
                                                Nirajnayan Sharma                Emulation On Your Desktop
The Verification Problem
                                                         Emulation               AXI Switch
                                                     Case Studies                CMU ProtoFLEX
                                                         Summary


AXI Switch Performance Validation . . .
      !"#$%&'&(")                            I<K%(/'4+                                                      HI08+@"'#J
                                              F()$




                            !"#$*:%&%'()
          -/4L-$+0>:
          3&'&(%&(/%                                              3&'&(%&(/%
                                                                                                               78*
                                                                                                      3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                           0,),#'&"#                                           78*
                                                                               9'/&"#                 3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                           0,),#'&"#
                                                                               *'%&,#+   *    89:+             78*
                                                                               9'/&"#                 3
                                                                                             3;(&/<            34'5,
         89:+-#'..(/+                        >3@
                                                                                             =6>-?
          6(#,/&"#                                         89:+-#'..(/+
                                                                                89:
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,



            *+*'%&,#        3,#('4(A,#B6,%,#('4(A,#+     *+*'%&,#+-#'..(/
        -#'..(/+6(#,/&"#%    C"B,DE4'&(")+F()$       0,),#'&"#%+1+-#')%'/&"#%            *+G+2+89:+3;(&/<    2+34'5,%



      HAL automatically serializes and de-serializes transaction
      level communication through the USB

                                                Nirajnayan Sharma                Emulation On Your Desktop
The Verification Problem
                                                         Emulation               AXI Switch
                                                     Case Studies                CMU ProtoFLEX
                                                         Summary


AXI Switch Performance Validation . . .

      !"#$%&'&(")                            I<K%(/'4+                                                      HI08+@"'#J
                                              F()$




                            !"#$*:%&%'()
          -/4L-$+0>:
          3&'&(%&(/%                                              3&'&(%&(/%
                                                                                                               78*
                                                                                                      3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                           0,),#'&"#                                           78*
                                                                               9'/&"#                 3
                                                                                                               34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                           0,),#'&"#
                                                                               *'%&,#+   *    89:+             78*
                                                                               9'/&"#                 3
                                                                                             3;(&/<            34'5,
         89:+-#'..(/+                        >3@
                                                                                             =6>-?
          6(#,/&"#                                         89:+-#'..(/+
                                                                                89:
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,

                                                                                89:
                                                           89:+-#'..(/+
                                                                               *'%&,#+   *
                                                                                                               78*
                                                           0,),#'&"#                                  3
                                                                               9'/&"#                          34'5,



            *+*'%&,#        3,#('4(A,#B6,%,#('4(A,#+     *+*'%&,#+-#'..(/
        -#'..(/+6(#,/&"#%    C"B,DE4'&(")+F()$       0,),#'&"#%+1+-#')%'/&"#%            *+G+2+89:+3;(&/<    2+34'5,%



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

                                                Nirajnayan Sharma                Emulation On Your Desktop
The Verification Problem
                                                 Emulation                 AXI Switch
                                             Case Studies                  CMU ProtoFLEX
                                                 Summary


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

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


                                                             -$:%#=%$
                                            -./%00%0     81..9="87$"1=         !"#$9$%8:
                                             *12%#*3      IJ$#7=;6C7=$KL        5"."8;
                         G12AC7$%=8<
           4567#8
                       :"H:A/7=02"0$:
                       81..9="87$"1=
                     IJ."8#1A$#7=;6C7=$KL
                                               !



                                                   5D(1=(**3                               F%;$(1@(@9CC(;<;$%.
      5<=$:%;">%0(0%?"8%
                                                   @1#(C%;;(@#%E9%=$
      1=()*+,(@7/#"8(@1#
                                                   B5,(@9=8$"1=7C"$<
      81.69$%A"=$%=;"?%
      B5,(@9=8$"1=7C"$<



         Virtutech Simics
                    Virtutech Simics – Commercial SW simulator for whole
                    systems (OS/devices/apps)
                    Despite clever tricks, steady slowdown for each added
                    thread and for each added bit of instrumentation
                                            Nirajnayan Sharma              Emulation On Your Desktop
The Verification Problem
                                               Emulation                 AXI Switch
                                           Case Studies                  CMU ProtoFLEX
                                               Summary


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


                                                           -$:%#=%$
                                          -./%00%0     81..9="87$"1=         !"#$9$%8:
                                           *12%#*3      IJ$#7=;6C7=$KL        5"."8;
                       G12AC7$%=8<
         4567#8
                     :"H:A/7=02"0$:
                     81..9="87$"1=
                   IJ."8#1A$#7=;6C7=$KL
                                             !



                                                 5D(1=(**3                               F%;$(1@(@9CC(;<;$%.
    5<=$:%;">%0(0%?"8%
                                                 @1#(C%;;(@#%E9%=$
    1=()*+,(@7/#"8(@1#
                                                 B5,(@9=8$"1=7C"$<
    81.69$%A"=$%=;"?%
    B5,(@9=8$"1=7C"$<



       CMU ProtoFLEX
                  Fully operational model of 16-cpu UltraSPARC III SunFire
                  3800 Server, running unmodified Solaris 8; running on
                  FPGA at 90 MHz
                  Hybrid simulation – continue to use Simics for modeling
                  rest of system (I/O devices, ...)
                                          Nirajnayan Sharma              Emulation On Your Desktop
The Verification Problem
                                               Emulation                 AXI Switch
                                           Case Studies                  CMU ProtoFLEX
                                               Summary


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


                                                           -$:%#=%$
                                          -./%00%0     81..9="87$"1=         !"#$9$%8:
                                           *12%#*3      IJ$#7=;6C7=$KL        5"."8;
                       G12AC7$%=8<
         4567#8
                     :"H:A/7=02"0$:
                     81..9="87$"1=
                   IJ."8#1A$#7=;6C7=$KL
                                             !



                                                 5D(1=(**3                               F%;$(1@(@9CC(;<;$%.
    5<=$:%;">%0(0%?"8%
                                                 @1#(C%;;(@#%E9%=$
    1=()*+,(@7/#"8(@1#
                                                 B5,(@9=8$"1=7C"$<
    81.69$%A"=$%=;"?%
    B5,(@9=8$"1=7C"$<



       CMU ProtoFLEX
                  Benchmarks
                          TPC-C OLTP on Oracle 10g Enterprise Database Server
                          SPECINT (bzip2, crafty, gcc, gzip, parser, vortex)
                  Performance: 10-60 MIPS. 39x faster than Virtutech Simics
                  alone on same system/benchmark
                  Written by 1 graduate student (Eric Chung) in 1 year
                                          Nirajnayan Sharma              Emulation On Your Desktop
The Verification Problem
                                Emulation
                            Case Studies
                                Summary


Outline

  1   The Verification Problem

  2   Emulation
        First Generation Emulation
        Next Generation Emulation

  3   Case Studies
        AXI Switch
        CMU ProtoFLEX

  4   Summary



                      Nirajnayan Sharma     Emulation On Your Desktop
The Verification Problem
                                     Emulation
                                 Case Studies
                                     Summary


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


         FPGA densities and parallel interconnect speeds today
         allow
              Significant unit verification to be done in a single FPGA
              Complete chips to be cost effectively emulated on FPGA
              boards and systems
         A well-engineered co-emulation stack and link
         virtualization are key to enabling mainstream use
              Ensure simple and rapid bringup
              Flexible hardware-software partitioning
              Portability across hardware and applications
   Paired with a general-purpose high-level synthesis language, a
   well productized co-emulation stack can enable mass-adoption
   of emulation.
                           Nirajnayan Sharma     Emulation On Your Desktop

More Related Content

Similar to Emulation on Your Desktop

JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)
JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)
JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)PROIDEA
 
Performance tests with Gatling (extended)
Performance tests with Gatling (extended)Performance tests with Gatling (extended)
Performance tests with Gatling (extended)Andrzej Ludwikowski
 
On Failure and Resilience
On Failure and ResilienceOn Failure and Resilience
On Failure and ResilienceMike Brittain
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)Changwon National University
 
Managing massive datacenters
Managing massive datacentersManaging massive datacenters
Managing massive datacenterslkanies
 
Stress test your backend with Gatling
Stress test your backend with GatlingStress test your backend with Gatling
Stress test your backend with GatlingAndrzej Ludwikowski
 
Solve the colocation conundrum: Performance and density at scale with Kubernetes
Solve the colocation conundrum: Performance and density at scale with KubernetesSolve the colocation conundrum: Performance and density at scale with Kubernetes
Solve the colocation conundrum: Performance and density at scale with KubernetesNiklas Quarfot Nielsen
 
Verilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
Verilog Ams Used In Top Down Methodology For Wireless Integrated CircuitsVerilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
Verilog Ams Used In Top Down Methodology For Wireless Integrated CircuitsRégis SANTONJA
 
"Intrusion Techniques (Open Source Tools)" por Ewerson Guimarães por
"Intrusion Techniques (Open Source Tools)" por Ewerson Guimarães por "Intrusion Techniques (Open Source Tools)" por Ewerson Guimarães por
"Intrusion Techniques (Open Source Tools)" por Ewerson Guimarães por SegInfo
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......hugo lu
 
Dependability Benchmarking by Injecting Software Bugs
Dependability Benchmarking by Injecting Software BugsDependability Benchmarking by Injecting Software Bugs
Dependability Benchmarking by Injecting Software BugsRoberto Natella
 
20080501 software verification_sharygina_lecture01
20080501 software verification_sharygina_lecture0120080501 software verification_sharygina_lecture01
20080501 software verification_sharygina_lecture01Computer Science Club
 
Formal Verification of Critical Aerospace Software
Formal Verification of Critical Aerospace SoftwareFormal Verification of Critical Aerospace Software
Formal Verification of Critical Aerospace SoftwareSulemanAliMalik
 
ch02-primitive-data-definite-loops.ppt
ch02-primitive-data-definite-loops.pptch02-primitive-data-definite-loops.ppt
ch02-primitive-data-definite-loops.pptMahyuddin8
 
ch02-primitive-data-definite-loops.ppt
ch02-primitive-data-definite-loops.pptch02-primitive-data-definite-loops.ppt
ch02-primitive-data-definite-loops.pptghoitsun
 

Similar to Emulation on Your Desktop (20)

Performance tests - it's a trap
Performance tests - it's a trapPerformance tests - it's a trap
Performance tests - it's a trap
 
JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)
JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)
JDD 2017: Performance tests with Gatling (Andrzej Ludwikowski)
 
Performance tests with Gatling (extended)
Performance tests with Gatling (extended)Performance tests with Gatling (extended)
Performance tests with Gatling (extended)
 
On Failure and Resilience
On Failure and ResilienceOn Failure and Resilience
On Failure and Resilience
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
 
Managing massive datacenters
Managing massive datacentersManaging massive datacenters
Managing massive datacenters
 
Stress test your backend with Gatling
Stress test your backend with GatlingStress test your backend with Gatling
Stress test your backend with Gatling
 
Sql
SqlSql
Sql
 
Testar
TestarTestar
Testar
 
Solve the colocation conundrum: Performance and density at scale with Kubernetes
Solve the colocation conundrum: Performance and density at scale with KubernetesSolve the colocation conundrum: Performance and density at scale with Kubernetes
Solve the colocation conundrum: Performance and density at scale with Kubernetes
 
Verilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
Verilog Ams Used In Top Down Methodology For Wireless Integrated CircuitsVerilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
Verilog Ams Used In Top Down Methodology For Wireless Integrated Circuits
 
Ui design-day1
Ui design-day1Ui design-day1
Ui design-day1
 
"Intrusion Techniques (Open Source Tools)" por Ewerson Guimarães por
"Intrusion Techniques (Open Source Tools)" por Ewerson Guimarães por "Intrusion Techniques (Open Source Tools)" por Ewerson Guimarães por
"Intrusion Techniques (Open Source Tools)" por Ewerson Guimarães por
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......
 
Dependability Benchmarking by Injecting Software Bugs
Dependability Benchmarking by Injecting Software BugsDependability Benchmarking by Injecting Software Bugs
Dependability Benchmarking by Injecting Software Bugs
 
20080501 software verification_sharygina_lecture01
20080501 software verification_sharygina_lecture0120080501 software verification_sharygina_lecture01
20080501 software verification_sharygina_lecture01
 
Formal Verification of Critical Aerospace Software
Formal Verification of Critical Aerospace SoftwareFormal Verification of Critical Aerospace Software
Formal Verification of Critical Aerospace Software
 
How to fake_properly
How to fake_properlyHow to fake_properly
How to fake_properly
 
ch02-primitive-data-definite-loops.ppt
ch02-primitive-data-definite-loops.pptch02-primitive-data-definite-loops.ppt
ch02-primitive-data-definite-loops.ppt
 
ch02-primitive-data-definite-loops.ppt
ch02-primitive-data-definite-loops.pptch02-primitive-data-definite-loops.ppt
ch02-primitive-data-definite-loops.ppt
 

More from DVClub

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseDVClub
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment OverviewDVClub
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesDVClub
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)DVClub
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)DVClub
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyDVClub
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUsDVClub
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACTDVClub
 
Validation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentValidation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentDVClub
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal ValidationDVClub
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design CommunityDVClub
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemCDVClub
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-ExpressDVClub
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessDVClub
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through MethodologyDVClub
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationDVClub
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 ProcessorDVClub
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceDVClub
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS VerificationDVClub
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and VerificationDVClub
 

More from DVClub (20)

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the Enterprise
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment Overview
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification Methodology
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUs
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
 
Validation and Design in a Small Team Environment
Validation and Design in a Small Team EnvironmentValidation and Design in a Small Team Environment
Validation and Design in a Small Team Environment
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal Validation
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design Community
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification Process
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through Methodology
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si Validation
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification Experience
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS Verification
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Emulation on Your Desktop

  • 1. The Verification Problem Emulation Case Studies Summary Emulation On Your Desktop Nirajnayan Sharma Head, Engineering and Marketing - India Bluespec, Inc. niraj.sharma@bluespec.com March 12, 2010 Nirajnayan Sharma Emulation On Your Desktop
  • 2. The Verification Problem Emulation Case Studies Summary Outline 1 The Verification Problem 2 Emulation First Generation Emulation Next Generation Emulation 3 Case Studies AXI Switch CMU ProtoFLEX 4 Summary Nirajnayan Sharma Emulation On Your Desktop
  • 3. The Verification Problem Emulation Case Studies Summary Outline 1 The Verification Problem 2 Emulation First Generation Emulation Next Generation Emulation 3 Case Studies AXI Switch CMU ProtoFLEX 4 Summary Nirajnayan Sharma Emulation On Your Desktop
  • 4. The Verification Problem Emulation Case Studies Summary Simulation – The Fundamental Verification Bottleneck Simulations are great for DOA and initial testing Simulators allow the highest visibility into the hardware Simulations remain the best method for the debug-fix-verify cycle However . . . Speed quickly becomes a limiting factor in the verification of complex systems System simulations which can last days 1 sec of D1 H.264 encode => 15 hours Linux boot initialization => 140 hours . . . Nirajnayan Sharma Emulation On Your Desktop
  • 5. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary Outline 1 The Verification Problem 2 Emulation First Generation Emulation Next Generation Emulation 3 Case Studies AXI Switch CMU ProtoFLEX 4 Summary Nirajnayan Sharma Emulation On Your Desktop
  • 6. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary From Simulation To Emulation !"#$%&'()*+,-./&$,"0 89! 4'&3,$,"0&/*5.'(*+,- !"#$%#&'&((')*+,-.& 1-./&$,"0 2&'3%&'( +5((3.5*=>>>?*@*=>A>>>? 674*-"8(3*$"* 1-./&$"' 674*9*5('#"'-&0:(; :',$,:&/*4<*-"8(3*$"* 1-./&$"' !"#$#!"#$%#&'&( /-++#"0,,1-%-23#+$%2-# (')*+,-.& +,$.414+'#5%51*+$+#$+#56752-%,# ,0#89! Nirajnayan Sharma Emulation On Your Desktop
  • 7. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary First Generation Emulation Emulation when used effectively can be a game-changer, but existing systems are . . . Expensive – difficult to justify except at the highest-end Complexity – co-emulation link API requires bit-level data packing and timing synchronization !"#$%&'&(")*+*,(-./'&"# 7;9%(3'/ <7=>*:"?*+*@-./'&"# A()$ 61%&*B1)3; D"+1-./'&(")*/()$* 01%(C) 012(31 61%&* 4)51# :1)3; 61%& 7#"8#(1&'#9 7#"&"3"/% Nirajnayan Sharma Emulation On Your Desktop
  • 8. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary First Generation Emulation . . . Emulation when used effectively can be a game-changer, but existing systems are . . . Difficult to remove bottlenecks between testbench and DUT resulting in unrealized performance Complex test-benches from simulation will not port into emulation !"#$%&'&(")*+*,(-./'&"# 7;9%(3'/ <7=>*:"?*+*@-./'&"# A()$ 61%&*B1)3; D"+1-./'&(")*/()$* 01%(C) 012(31 61%&* 4)51# :1)3; 61%& 7#"8#(1&'#9 7#"&"3"/% Nirajnayan Sharma Emulation On Your Desktop
  • 9. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary First Generation Emulation . . . Emulation when used effectively can be a game-changer, but existing systems are . . . Limited to later in the development cycle when RTL has reached a critical point in verification Only functional after a lot of verification (including architectural and spec) have already been completed !"#$%&'&(")*+*,(-./'&"# 7;9%(3'/ <7=>*:"?*+*@-./'&"# A()$ 61%&*B1)3; D"+1-./'&(")*/()$* 01%(C) 012(31 61%&* 4)51# :1)3; 61%& 7#"8#(1&'#9 7#"&"3"/% Nirajnayan Sharma Emulation On Your Desktop
  • 10. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary Next Generation Emulation 87)9+,3,$7'-:-0$;<53,7) >/1+$%35 =>?@-.73)(-:-A;<53,7) F$'9 01',/"+$2345"-*"+,- ."'%/ 63%,7) 63%,7) 0BADGC 0BADGC >)7,7%75 >)7,7%75 !"#$%" *"+,-."'%/ H H &'(") I@F I@F *"+, &0. 63%,7) 63%,7) >BCDA A,/")'", EEE Hardware Abstraction Layer – decouples user application from physical layer Proprietary or standard (USB, Ethernet, PCI-E, . . . ), serial or parallel physical link Work with high-level data structures Low-level link data and timing details hidden Nirajnayan Sharma Emulation On Your Desktop
  • 11. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary Next Generation Emulation . . . 87)9+,3,$7'-:-0$;<53,7) >/1+$%35 =>?@-.73)(-:-A;<53,7) F$'9 01',/"+$2345"-*"+,- ."'%/ 63%,7) 63%,7) 0BADGC 0BADGC >)7,7%75 >)7,7%75 !"#$%" *"+,-."'%/ H H &'(") I@F I@F *"+, &0. 63%,7) 63%,7) >BCDA A,/")'", EEE SCE-MI Standardized API and communication protocol to take full advantage of emulation performance Both on hardware and software sides Ensures simulation and emulation component inter-operability Nirajnayan Sharma Emulation On Your Desktop
  • 12. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary Next Generation Emulation . . . 87)9+,3,$7'-:-0$;<53,7) >/1+$%35 =>?@-.73)(-:-A;<53,7) F$'9 01',/"+$2345"-*"+,- ."'%/ 63%,7) 63%,7) 0BADGC 0BADGC >)7,7%75 >)7,7%75 !"#$%" *"+,-."'%/ H H &'(") I@F I@F *"+, &0. 63%,7) 63%,7) >BCDA A,/")'", EEE Transactors – Virtual termination of external design interfaces Help eliminate link bottlenecks by converting from timed bit-level to untimed transaction-level Nirajnayan Sharma Emulation On Your Desktop
  • 13. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary Next Generation Emulation . . . 87)9+,3,$7'-:-0$;<53,7) >/1+$%35 =>?@-.73)(-:-A;<53,7) F$'9 01',/"+$2345"-*"+,- ."'%/ 63%,7) 63%,7) 0BADGC 0BADGC >)7,7%75 >)7,7%75 !"#$%" *"+,-."'%/ H H &'(") I@F I@F *"+, &0. 63%,7) 63%,7) >BCDA A,/")'", EEE Synthesizable testbench Helps eliminate bottlenecks in the simulator and co-emulation link Allow debug instrumentation to be placed around the DUT without affecting performance Nirajnayan Sharma Emulation On Your Desktop
  • 14. The Verification Problem Emulation First Generation Emulation Case Studies Next Generation Emulation Summary Next Generation Emulation . . . 87)9+,3,$7'-:-0$;<53,7) >/1+$%35 =>?@-.73)(-:-A;<53,7) F$'9 01',/"+$2345"-*"+,- ."'%/ 63%,7) 63%,7) 0BADGC 0BADGC >)7,7%75 >)7,7%75 !"#$%" *"+,-."'%/ H H &'(") I@F I@F *"+, &0. 63%,7) 63%,7) >BCDA A,/")'", EEE Emulator – Commodity FPGAs Must move to commodity FPGAs and support virtualization of FPGA platforms (portability) Allows tracking of latest FPGA technology at lowest cost Nirajnayan Sharma Emulation On Your Desktop
  • 15. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary Outline 1 The Verification Problem 2 Emulation First Generation Emulation Next Generation Emulation 3 Case Studies AXI Switch CMU ProtoFLEX 4 Summary Nirajnayan Sharma Emulation On Your Desktop
  • 16. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary AXI Switch Performance Validation !"#$%&'&(") I<K%(/'4+ HI08+@"'#J F()$ !"#$*:%&%'() -/4L-$+0>: 3&'&(%&(/% 3&'&(%&(/% 78* 3 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 0,),#'&"# 78* 9'/&"# 3 34'5, 89: 89:+-#'..(/+ 0,),#'&"# *'%&,#+ * 89:+ 78* 9'/&"# 3 3;(&/< 34'5, 89:+-#'..(/+ >3@ =6>-? 6(#,/&"# 89:+-#'..(/+ 89: *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, *+*'%&,# 3,#('4(A,#B6,%,#('4(A,#+ *+*'%&,#+-#'..(/ -#'..(/+6(#,/&"#% C"B,DE4'&(")+F()$ 0,),#'&"#%+1+-#')%'/&"#% *+G+2+89:+3;(&/< 2+34'5,% DUT and emulation setup AXI switch as DUT Configurable number of masters and slaves Implemented on ML507 Virtex-5 board Nirajnayan Sharma Emulation On Your Desktop
  • 17. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary AXI Switch Performance Validation . . . !"#$%&'&(") I<K%(/'4+ HI08+@"'#J F()$ !"#$*:%&%'() -/4L-$+0>: 3&'&(%&(/% 3&'&(%&(/% 78* 3 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 0,),#'&"# 78* 9'/&"# 3 34'5, 89: 89:+-#'..(/+ 0,),#'&"# *'%&,#+ * 89:+ 78* 9'/&"# 3 3;(&/< 34'5, 89:+-#'..(/+ >3@ =6>-? 6(#,/&"# 89:+-#'..(/+ 89: *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, *+*'%&,# 3,#('4(A,#B6,%,#('4(A,#+ *+*'%&,#+-#'..(/ -#'..(/+6(#,/&"#% C"B,DE4'&(")+F()$ 0,),#'&"#%+1+-#')%'/&"#% *+G+2+89:+3;(&/< 2+34'5,% Test setup Directed random traffic Traffic generator and analyzer split between simulator and emulator Nirajnayan Sharma Emulation On Your Desktop
  • 18. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary AXI Switch Performance Validation . . . !"#$%&'&(") I<K%(/'4+ HI08+@"'#J F()$ !"#$*:%&%'() -/4L-$+0>: 3&'&(%&(/% 3&'&(%&(/% 78* 3 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 0,),#'&"# 78* 9'/&"# 3 34'5, 89: 89:+-#'..(/+ 0,),#'&"# *'%&,#+ * 89:+ 78* 9'/&"# 3 3;(&/< 34'5, 89:+-#'..(/+ >3@ =6>-? 6(#,/&"# 89:+-#'..(/+ 89: *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, *+*'%&,# 3,#('4(A,#B6,%,#('4(A,#+ *+*'%&,#+-#'..(/ -#'..(/+6(#,/&"#% C"B,DE4'&(")+F()$ 0,),#'&"#%+1+-#')%'/&"#% *+G+2+89:+3;(&/< 2+34'5,% Test setup . . . Simulator’s GUI configures and analyzes traffic patterns AXI Traffic Director transmits traffic configuration parameters to emulator Nirajnayan Sharma Emulation On Your Desktop
  • 19. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary AXI Switch Performance Validation . . . !"#$%&'&(") I<K%(/'4+ HI08+@"'#J F()$ !"#$*:%&%'() -/4L-$+0>: 3&'&(%&(/% 3&'&(%&(/% 78* 3 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 0,),#'&"# 78* 9'/&"# 3 34'5, 89: 89:+-#'..(/+ 0,),#'&"# *'%&,#+ * 89:+ 78* 9'/&"# 3 3;(&/< 34'5, 89:+-#'..(/+ >3@ =6>-? 6(#,/&"# 89:+-#'..(/+ 89: *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, *+*'%&,# 3,#('4(A,#B6,%,#('4(A,#+ *+*'%&,#+-#'..(/ -#'..(/+6(#,/&"#% C"B,DE4'&(")+F()$ 0,),#'&"#%+1+-#')%'/&"#% *+G+2+89:+3;(&/< 2+34'5,% Test setup . . . Emulator has AXI Traffic Generators configured from simulator side RAM modules serve as memory-mapped slaves Nirajnayan Sharma Emulation On Your Desktop
  • 20. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary AXI Switch Performance Validation . . . !"#$%&'&(") I<K%(/'4+ HI08+@"'#J F()$ !"#$*:%&%'() -/4L-$+0>: 3&'&(%&(/% 3&'&(%&(/% 78* 3 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 0,),#'&"# 78* 9'/&"# 3 34'5, 89: 89:+-#'..(/+ 0,),#'&"# *'%&,#+ * 89:+ 78* 9'/&"# 3 3;(&/< 34'5, 89:+-#'..(/+ >3@ =6>-? 6(#,/&"# 89:+-#'..(/+ 89: *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, *+*'%&,# 3,#('4(A,#B6,%,#('4(A,#+ *+*'%&,#+-#'..(/ -#'..(/+6(#,/&"#% C"B,DE4'&(")+F()$ 0,),#'&"#%+1+-#')%'/&"#% *+G+2+89:+3;(&/< 2+34'5,% SCE-MI communication – consistent framework for implementing untimed communication between simulator and emulator Nirajnayan Sharma Emulation On Your Desktop
  • 21. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary AXI Switch Performance Validation . . . !"#$%&'&(") I<K%(/'4+ HI08+@"'#J F()$ !"#$*:%&%'() -/4L-$+0>: 3&'&(%&(/% 3&'&(%&(/% 78* 3 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 0,),#'&"# 78* 9'/&"# 3 34'5, 89: 89:+-#'..(/+ 0,),#'&"# *'%&,#+ * 89:+ 78* 9'/&"# 3 3;(&/< 34'5, 89:+-#'..(/+ >3@ =6>-? 6(#,/&"# 89:+-#'..(/+ 89: *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, *+*'%&,# 3,#('4(A,#B6,%,#('4(A,#+ *+*'%&,#+-#'..(/ -#'..(/+6(#,/&"#% C"B,DE4'&(")+F()$ 0,),#'&"#%+1+-#')%'/&"#% *+G+2+89:+3;(&/< 2+34'5,% HAL automatically serializes and de-serializes transaction level communication through the USB Nirajnayan Sharma Emulation On Your Desktop
  • 22. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary AXI Switch Performance Validation . . . !"#$%&'&(") I<K%(/'4+ HI08+@"'#J F()$ !"#$*:%&%'() -/4L-$+0>: 3&'&(%&(/% 3&'&(%&(/% 78* 3 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 0,),#'&"# 78* 9'/&"# 3 34'5, 89: 89:+-#'..(/+ 0,),#'&"# *'%&,#+ * 89:+ 78* 9'/&"# 3 3;(&/< 34'5, 89:+-#'..(/+ >3@ =6>-? 6(#,/&"# 89:+-#'..(/+ 89: *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, 89: 89:+-#'..(/+ *'%&,#+ * 78* 0,),#'&"# 3 9'/&"# 34'5, *+*'%&,# 3,#('4(A,#B6,%,#('4(A,#+ *+*'%&,#+-#'..(/ -#'..(/+6(#,/&"#% C"B,DE4'&(")+F()$ 0,),#'&"#%+1+-#')%'/&"#% *+G+2+89:+3;(&/< 2+34'5,% Performance – entire system runs at 50 MHz in emulation on the board. Nirajnayan Sharma Emulation On Your Desktop
  • 23. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary CMU ProtoFLEX – Accelerating Software Validation For many SoCs software development and verification can dominate development cycle !"#$%&'()*+, -$:%#=%$ -./%00%0 81..9="87$"1= !"#$9$%8: *12%#*3 IJ$#7=;6C7=$KL 5"."8; G12AC7$%=8< 4567#8 :"H:A/7=02"0$: 81..9="87$"1= IJ."8#1A$#7=;6C7=$KL ! 5D(1=(**3 F%;$(1@(@9CC(;<;$%. 5<=$:%;">%0(0%?"8% @1#(C%;;(@#%E9%=$ 1=()*+,(@7/#"8(@1# B5,(@9=8$"1=7C"$< 81.69$%A"=$%=;"?% B5,(@9=8$"1=7C"$< Virtutech Simics Virtutech Simics – Commercial SW simulator for whole systems (OS/devices/apps) Despite clever tricks, steady slowdown for each added thread and for each added bit of instrumentation Nirajnayan Sharma Emulation On Your Desktop
  • 24. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary CMU ProtoFLEX . . . !"#$%&'()*+, -$:%#=%$ -./%00%0 81..9="87$"1= !"#$9$%8: *12%#*3 IJ$#7=;6C7=$KL 5"."8; G12AC7$%=8< 4567#8 :"H:A/7=02"0$: 81..9="87$"1= IJ."8#1A$#7=;6C7=$KL ! 5D(1=(**3 F%;$(1@(@9CC(;<;$%. 5<=$:%;">%0(0%?"8% @1#(C%;;(@#%E9%=$ 1=()*+,(@7/#"8(@1# B5,(@9=8$"1=7C"$< 81.69$%A"=$%=;"?% B5,(@9=8$"1=7C"$< CMU ProtoFLEX Fully operational model of 16-cpu UltraSPARC III SunFire 3800 Server, running unmodified Solaris 8; running on FPGA at 90 MHz Hybrid simulation – continue to use Simics for modeling rest of system (I/O devices, ...) Nirajnayan Sharma Emulation On Your Desktop
  • 25. The Verification Problem Emulation AXI Switch Case Studies CMU ProtoFLEX Summary CMU ProtoFLEX . . . !"#$%&'()*+, -$:%#=%$ -./%00%0 81..9="87$"1= !"#$9$%8: *12%#*3 IJ$#7=;6C7=$KL 5"."8; G12AC7$%=8< 4567#8 :"H:A/7=02"0$: 81..9="87$"1= IJ."8#1A$#7=;6C7=$KL ! 5D(1=(**3 F%;$(1@(@9CC(;<;$%. 5<=$:%;">%0(0%?"8% @1#(C%;;(@#%E9%=$ 1=()*+,(@7/#"8(@1# B5,(@9=8$"1=7C"$< 81.69$%A"=$%=;"?% B5,(@9=8$"1=7C"$< CMU ProtoFLEX Benchmarks TPC-C OLTP on Oracle 10g Enterprise Database Server SPECINT (bzip2, crafty, gcc, gzip, parser, vortex) Performance: 10-60 MIPS. 39x faster than Virtutech Simics alone on same system/benchmark Written by 1 graduate student (Eric Chung) in 1 year Nirajnayan Sharma Emulation On Your Desktop
  • 26. The Verification Problem Emulation Case Studies Summary Outline 1 The Verification Problem 2 Emulation First Generation Emulation Next Generation Emulation 3 Case Studies AXI Switch CMU ProtoFLEX 4 Summary Nirajnayan Sharma Emulation On Your Desktop
  • 27. The Verification Problem Emulation Case Studies Summary Summary If you had a 50-100 MHz emulation platform on your desktop right from the start? FPGA densities and parallel interconnect speeds today allow Significant unit verification to be done in a single FPGA Complete chips to be cost effectively emulated on FPGA boards and systems A well-engineered co-emulation stack and link virtualization are key to enabling mainstream use Ensure simple and rapid bringup Flexible hardware-software partitioning Portability across hardware and applications Paired with a general-purpose high-level synthesis language, a well productized co-emulation stack can enable mass-adoption of emulation. Nirajnayan Sharma Emulation On Your Desktop