Hi I would like to know if there’s a way to query a select sequence item from the Driver?
I have a design where a Fake model issues txn’s to the DUT. I have setup the flow such that the sequence populates the sequencer queue and the Driver queries transactions from the sequencer to issue to the DUT.
I had go this route as the Fake model has to manager tokens, keep track of issued transactions and retire them as and when the DUT is done processing the transactions. This works fine, but, since I’d like to make this work for multiple threads, I’d like to dynamically switch threads either voluntarily, or based on some resource constraints.
Under such circumstances, is there way I could get the Driver to query the sequencer for an item with a specific thread-id?
Thanks for your help/suggestions in advance.
In reply to ajmand:
It’s too late by the time you get to the driver to select a sequence_item. You can only get items in the order the sequencer delivers them to you. Normally, it’s the sequencer’s job to arbitrate which sequence threads get sent to the driver. You can prove your own arbitration scheme for the sequencer, or you can do it directly in the sequence before generating the sequence_item. And finally as a last resort, you can do the arbitration in the driver by having multiple sequencers connected to your driver.
Without knowing more details of your selection process, it would be difficult for me to suggest the best way, but hopefully this gives you some ideas to try.
In reply to dave_59:
Thanks for responding Dave. I wound up going with your last suggestion. Assigned each thread its own sequencer and implemented thread specific pull ports in the Driver and added support to arbitrate between threads within the Driver.
I guess going forward, I could use virtual sequence to combine multiple thread specific sequences to cover a broader set of stimulus while relying on the existing sequencer-driver structure.
Thanks for your help!