( ESNUG 578 Item 1 ) ---------------------------------------------- [12/01/17] 

  [ EDITOR'S NOTE: I love user critiques like this because it gives an
    initial lay of the land -- plus one user's opinions about what's
    good and what's not-worth-using in PSS tools.  Cool!  - John ]

Subject: Hands-on PSS user explains CDNS Perspec vs. Breker TrekSoC (pt 1)

THE PSS HORSERACE HAS BEGUN!: Talk about timing the news -- the week right before DAC'17, the Accellera PSWG announced that *both* the Breker C++ and the Cadence/Mentor DSL languages were going to be in the Portable Stimulus Specification (PSS), thus finally kicking off a big ...


... 4-way PSS tool horserace and judging from the user comments -- RIGHT NOW it has Cadence Perspec in 1st, Breker TrekSoC in 2nd, and Mentor InFact in a very distant 4th... plus a mythical Synopsys Mystery PSS tool lingering somewhere in a less distant 3rd place. (And no, not a typo. Mentor InFact came in 4th place, *behind* Synopsys PSS, in this user survey.)

    - from Cadence Perspec and Breker TrekSoC win #1 "Best of 2017"


From: [ Ant-Man, the Movie ]

Hi John,

I was glad to see users rate Portable Stimulus tools as #1 in your EDA tool
report this year.  A few years ago we did an eval of Perspec vs. TrekSoC.
We settled on Perspec.  Since it's timely, I thought I'd share what we saw
back then and now.  Both tools have evolved since then, and I still use
and prefer Perspec.
          
Please note that since we went all in on Perspec, some of my Breker info
here might not be 100% current.  If one of your other DeepChip readers could
correct this, it would help a lot.

Please keep my name and my company out of this, OK?

    - [ Ant-Man, the Movie ]

        ----    ----    ----    ----    ----    ----   ----

A. PORTABLE STIMULUS OVERVIEW

The portable stimulus tools like Breker and Perspec automatically generate
your tests from the "use models" of your design under test.

    - The PSS tools read in a description/use model of your design along
      with the test intention and to create the tests.  

    - They also help find possible tests to generate -- which is of 
      especially high value when system is complex.  

    - The automation can save many man-months of effort, and reduce errors.
These PSS generated tests are in: C/C++ and/or SystemVerilog and/or SystemC
and/or Specman "e" (with UML/SysML and/or AMS planned to be added) -- and
since they are 'portable' across multiple verification tools like simulators,
emulators, prototypers, etc. -- they're called "portable stimulus".  The
idea is you have to write your PSS only once and then you can re-use it
throughout your verification flow.

And once Accellera finalizes the Portable Stimulus Specification (PSS) in
2018, the idea is that you can then write test intent and code your use
model, and then use the same PSS across different EDA vendors.

        ----    ----    ----    ----    ----    ----   ----

B. PSS MODELING

There is an upfront investment to be able to use the portable stimulus tools
at the chip level.  

To use PSS, you must break down your entire system into subsystems, such as
a graphic uP, DSP, modem, video display, peripherals, -- or in functional
systems like debug or coherency -- which are not limited to one IP.  

You then model whatever you want to verify for your SoC.  The model has the
actions, and the test is generated from combination of actions chosen.

The abstract models can be remapped to a new design structure, such as a 
derivative design or IP block.  The better the portable stimulus tool, the 
more flexibility and portability it has.  

Cadence Perspec

    With Perspec it is easy to divide your entire chip design space into
    small subsystems.  

    Perspec uses libraries; you can build them yourself or use Cadence's 
    pre-built libraries.

        - The libraries are a collection of low-level and high-level 
          actions.  

        - The input and output of each action of a subsystem and the use
          cases between the actions are clearly defined.  

        - Users can customize a set of actions; then Perspec figures out
          the possible inputs and outputs, and automatically builds the 
          tests for you.

    You can use Perspec's SLN language to build your own library of 
    actions, which has native constructs and semantics to model 
    behaviors, including specific concurrent behaviors.  SNL is tuned to
    represent scenario spaces for hardware/software systems.  You can 
    use SLN to represent:

        - parallel and sequential execution 
        - loops and selections 
        - conditional branches 
        - data-flow and state pre/post-conditions 
        - resource pools
        - resource claims

    Perspec uses UML activity notation to represent various notions 
    graphically, with actions nodes and objects nodes, fork and join 
    nodes, decision and merge nodes, data-flow and control-flow edges, 
    and attributes and constraints.

(click on pic to enlarge image)
    From what we saw, Perspec's text-based modeling doesn't have the
    limitations of Breker's graph-based modeling.  However, Perspec
    still automatically generates a graph view so you can see what
    you've done. 

    Memory management

    Perspec also supports memory management.  The way coherency works is
    you must use a very small address range.  Multiple processors must 
    choose a small portion of that range and share the same area.
 
    Normally all that work would have to be done manually -- and that's
    not very easy to do if you are writing test cases using 20-30 
    processors or 30-40 subsystems.

    Cadence says they will align with the PSS DSL and C++ syntaxes once
    it is approved.

Breker TrekSoC

    Breker initially used a Backus-Naur Form (BNF) notation.  They now 
    support C++ and are expected to align with the coming PSS standard, 
    for both syntaxes.

(click on pic to enlarge image)
    TrekSoC does portable stimulus modeling as a graph.  Essentially you
    take your overall SoC and describe it in flowchart-like graph bar.
    Check out the image above to see how a graph looks.  The image below
    shows how a Breker graph is run in TrekSoC.

(click on pic to enlarge image)
    A graph may work perfectly well for a small subsystem, or even with a
    small SoC with very well-defined places for everything.

    The drawbacks of Breker's graph approach for us were:

        - It was very hard to use a graph to describe a system that
          was very intertwined with lots of dependencies, such as
          an SoC with 50 subsystems.  For example, if you take a
          PCI, that uses a certain kind of transport -- exactly how
          is that PCI connected to a USB?

        - It was hard to understand and maintain the graph.  

    Breker's graph method seems to be more of a legacy, as they started 
    out doing core-level verification.  Breker then expanded from 
    verifying cores to verifying complex SOCs, but are still kind of 
    tied to their initial approach.

    As with Perspec, you can build your own collection of actions for 
    TrekSoC or buy libraries -- though Breker calls them 'apps'.  

    Input and output of Breker actions are not clearly defined.  Further,
    interjecting interrupts and low power mode transitions adds yet 
    another layer/dimension of complexity to your Breker graph.

    Memory management

    Like Perspec, TrekSoC does memory management.

    Breker's graph approach is essentially a model of sequential steps 
    and choices.  They have ways for you to constrain the space of 
    choices for a given graph walk, and there are ways to compose larger
    descriptions from smaller ones.  However, unlike Perspec, their graph
    language itself does not assign meaning to your steps and choices.  

    For me, Breker's graph approach was a very general way to capture a 
    space of possibilities; it just did not specifically represent our
    test scenarios and test intent clearly.  

        ----    ----    ----    ----    ----    ----   ----

C. PSS CONSTRAINT SOLVING

The PSS model can be viewed as set of constraints about the data flow in
your design, e.g. legal inputs and output types for an action.  

As a result, portable stimulus tools have constraint solvers to generate
all the possible paths/tests.  Doing it manually is not only time consuming,
but it's virtually impossible to see all the possible combinations.  Plus,
design changes can invalidate some of the tests.

Cadence Perspec

    With Perspec, you define the input and output types for all the 
    different actions.  For an action requiring a certain input, the 
    tool then automatically solves (figures out) all the actions that 
    produce an output that can be consumed by that action.  

    Example: Actions A, B or C can produce an image, and action D can
    receive an image.  The Perspec constraint solver will automatically 
    determine that A, B, or C are input options for action D.  The user
    doesn't need to create these action connections.

Breker TrekSoC

    You must specify all the possible connections in the graph yourself.

        ----    ----    ----    ----    ----    ----   ----

In part 2, I will cover PSS Test Intent, Libraries/Apps, and Debug.

    - [ Ant-Man, the Movie ]

        ----    ----    ----    ----    ----    ----   ----

Related Articles

    Hands-on PSS user explains CDNS Perspec vs. Breker TrekSoC (pt 1)
    Hands-on PSS user explains CDNS Perspec vs. Breker TrekSoC (pt 2)
    Hands-on PSS user explains CDNS Perspec vs. Breker TrekSoC (pt 3)

    Cadence Perspec wins #1 in #1 "Best of 2017" with Portable Stimulus
    Breker TrekSoC takes #2 in #1 "Best of 2017" with Portable Stimulus
    Mentor InFact was pretty much an early No Show in the PSS tool wars

Join    Index    Next->Item






   
 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.














Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)