• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Functional Verification Shared Code
  3. SPI3 Shareware eVC

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 38
  • Views 15299
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

SPI3 Shareware eVC

archive
archive over 18 years ago

Some notes about the eVC:
the scripts directory contains a build script, a run script, and a Makefile.  The build and run scripts are only used by vManager.  Use the Makefile.
The Makefile is linked into the sim directory.  In the sim directory, do a "make stubs comp_vlog run_gui" to run the demo.  You may have to fool around with your env a bit to get it running (i.e. it may not find your tools etc.)
 
The "regression" for the eVC is designed to be run from vManager.  The VSIF, and SVE files are in the vm directory.
 
In the examples directory there are examples of how to instantiate and configure the eVC, some sample tests, and an example scoreboard.
 
There isn't a lot of documentation (none, really), but I'll try to give an overview:
There are 3 main sequences:  the BFM sequence, which controls the cycle by cycle (clock by clock) activity on the SPI3 bus.  The subtype LAYERED_PAYLOAD of this sequence is designed to draw data from the upper layer, which is the 2nd sequence, the PORT sequence.
 
In it's default form the PORT sequence generates random SPI3 "packets" or "frames."  It can also be connected to a higher layer sequence (i.e ATM, HDLC, Etherenet, whatever you want).
 
The 3rd sequence is the arbiter sequence.  This is the sequence that determines the next SPI3 "Port" on which to drive data.  It is implemented as a simple round robin "Arbiter" at this point, but could be extended to do whatever the user wants.
 
The AGENT has 4 subtypes: RX PHY, TX PHY, RX LINK, TX LINK which correspond to the 4 different "views" of the SPI3 bus.  If you know SPI3 at all, this will be clear.
The agents can work in either ACTIVE or PASSIVE mode.
This is also a protocol monitor that will perform SPI3 protocol checking.
 
There is some very low level simple coverage implemented.  This is where the eVC is most deficient at this time.
 
There are some sample BFM sequences in the shr_bfm_sequence_lib.e file that give good examples on how to create bus level errors and corner cases.
 
As I said above, the documentation is pretty well non-existant. 
My email is magraham@cadence.com if you have any questions.
 
I consider the eVC a GREAT starting piont, and can be used with less than 1/2 a day effort to do very thorough sanity checking on a SPI3 block.  Other Cadence customers have used it, almost unchanged in the form I'm postin, to do VERY thorough, VERY indepth complete regressions (over 450 coverage points in their coverage plan).

-Matt


Originally posted in cdnusers.org by Matt Graham
shr_spi3.tar.gz
  • Cancel
Parents
  • archive
    archive over 18 years ago

    Thanks for the Shareware.
    I tried opening it but after unzipping about 30 files received this error message.

    . . . .
    shr_spi3/misc/
    shr_spi3/misc/shr_spi3_dcf.txt

    gzip: stdin: unexpected end of file
    shr_spi3/demo.sh
    tar: Child returned status 1
    tar: Error exit delayed from previous errors


    Originally posted in cdnusers.org by mblake
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • archive
    archive over 18 years ago

    Thanks for the Shareware.
    I tried opening it but after unzipping about 30 files received this error message.

    . . . .
    shr_spi3/misc/
    shr_spi3/misc/shr_spi3_dcf.txt

    gzip: stdin: unexpected end of file
    shr_spi3/demo.sh
    tar: Child returned status 1
    tar: Error exit delayed from previous errors


    Originally posted in cdnusers.org by mblake
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information