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
|