IChip Posted November 27, 2011 Report Share Posted November 27, 2011 (edited) Hi, all, Recently I'm design testbench for RTL verification. We have a reference model which is well communicated with our testbench. But I am not sure what's the exactly way. (1) In such case, Transaction stream driven to dut/ref are well controlled to be the same. But can I connect 2 driver to a sqr and ensure both of them receive same transaction when a sequence is started? btw,drv is operated in pull mode. dut <---> (drv1,mon1) --- | --- sqr ---tr--- sequence ref <---> (drv2,mon1) --- (2) Here in this case, agent1 and agent2 are almost the same,except that drv1/drv2 are derived from drv_base and mon1/mon2 are derived from mon_base. Type of sqr1/sqr2 are the same. I think It's a little trouble to make transaction in sequence1/sequence2 be the same!? dut <---> agent1(drv1,mon1,sqr1) ---tr--- sequence1 ref <---> agent2(drv2,mon2,sqr2) ---tr--- sequence2 in this case, can i run the same sequence in different sqr? Thanks very much. Edited November 27, 2011 by IChip Quote Link to comment Share on other sites More sharing options...
jadec Posted November 28, 2011 Report Share Posted November 28, 2011 You can run the same sequence (or a clone of the sequence if they are going in parallel) on different sequencers as long as they use the same item type. Normally, I'd used an analysis port from the seqr or driver on the dut path to drive the reference model and ensure you see the same transactions (or for better reuse, the transactions from the interface monitor). If you have a full agent for the reference model, you can use a simple sequence that takes transactions from an analysis fifo. Quote Link to comment Share on other sites More sharing options...
IChip Posted November 29, 2011 Author Report Share Posted November 29, 2011 Thank you, jadec. In the first case, maybe I can use only one sequencer and use analysis_port to transfer transaction stream to reference model from driver. I need to write 2 different type of driver(one for driving dut and routing transactions to reference, the other one for driving reference model in only-reference mode) and 2 different type of monitor. In the second case I make drv/mon in agent configurable so that agent can run in dut mode or reference mode. Easily use factory to config it. So there are 2 sequencers in such case. But randomization is called in sequence, I get different transaction streams when same sequence called twice. Quote Link to comment Share on other sites More sharing options...
jadec Posted December 1, 2011 Report Share Posted December 1, 2011 What you could do instead of connecting the analysis_port directly to the reference driver is to connect it to the reference sequencer (via factory override like is done for sequencer layering). Then use an adapter sequence to get the transactions and send them to the reference driver. This way you need only one driver type. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.