View Full Version : TLM fifo and Sequences
AlbertoA
01-21-2008, 06:59 AM
Someone knows whether is possible to connect sequence drivers to BFMs using explicit TLM fifo (blocking or unblocking) or such connections are implicit like in URM?
Thanks
Alberto
stuart
01-21-2008, 02:11 PM
Alberto-
First - the terminology in OVM in this area is a bit changed from URM.
In summary:
URM: OVM:
sequence driver -> sequencer
BFM -> driver
I'll use the OVM terms, but note in particular that when I say "driver" this corresponds to the URM "BFM".
In OVM the communication between sequences, sequencers, and drivers has been abstracted and encapsulated in a new set of interface classes,
named ovm_seq_item_prod_if, ovm_seq_item_cons_if, ovm_seq_prod_if, and ovm_seq_cons_if. You can take a look at these classes in the OVM Class Reference Manual.
In a nutshell, a sequencer can now talk downstream to any component that implements the ovm_seq_item_cons_if, and a driver can talk upstream to any component that implements the ovm_seq_item_prod_if. If you look at the ovm_seq_item_prod_if class, there are two key methods for the transaction communication: the get_next_item() method, which corresponds to a blocking get() method, and the item_done() method, which indicates that the item has been consumed and corresponds to a nonblocking put() of the response.
So you can create a little adaptor class if you want that does the above mappings and then you can connect sequencers and drivers as you describe.
Note however that the ovm_seq_item_prod_if has a superset of methods compared to the TLM interface classes (e.g. try_next_item, has_do_available()), so you would need to make sure your models don't use these methods and/or try to emulate their semantics on top of the TLM interfaces.
-Stuart
AlbertoA
01-22-2008, 02:34 AM
Thanks Stuart,
I have additional questions:
what is the reason to use 2 different mechanisms to allow the communication between verification components? if the ovm_seq_item_prod_if & C have a super-set of the TLM channels why not further specialize the TLM channels?
Thanks and best regards
Alberto
tawhaki
06-17-2010, 11:18 AM
So you are saying it's possible to connect two sequencers like this and then connect to a driver? I want to be able to add different sequences to the two different sequencers, and to arbitrate between all of the sequences in the second sequencer. What is the best way of going about this?
Powered by vBulletin™ Version 4.0.3 Copyright © 2010 vBulletin Solutions, Inc. All rights reserved.