Hi dude,Originally posted in cdnusers.org by Hilmar
If I understand you correctly, you've got the following in RTL:
That would mean you need the following passive agents:
And of course the following active agents:
- 2 Masters
- 1 Slave
If this is correct, then that's a setup I'd pick too, if you're verifying the arbiter, decoder and bus muxes.
Once again, I'd start with not defining any specific sequences! The reason for this, is that you may be doing double work which the standard constrained randomly generated sequences would already cover. I'd set up a number of runs in a vmanager regression, let's say 100, to get some feeling for the coverage that'll already be generated for your vplan. You'll find that many of the special AHB traffic coverage demands in your vplan can already be covered by what you get out of the box.
Analyzing your regression may give you a number of coverage holes which need to be filled. This is where you should put your focus in writing specific sequences. If your arbiter needs to be exposed to specific scenarios which are very difficult to reach with pure random sequences, you can steer your masters towards this behaviour.
You mention the hbusreq signals. Instead of doing low-level hacking into these signals, set up master sequences that will generate the request patterns your looking for. This can be found on page 5-40 of the AHB eVC documentation. You may find that you need to have specific behaviour for both of your masters which is closely related. In that case you can define a virtual sequence, with a virtual sequence driver, in your environment that controls both masters. You can find more on this in the Specman documentation, by searching for virtual sequences. This can be found in the eRM section, in the sequences subsection.
Most of all, I can recommend asking your local Cadence AE to visit to show you around and provide hands-on help with your problems.