I have done UVM based testbench for synchronous FIFO. Now I have to do it for an Asynchronous FIFO. How to implement the interface?( Both read and write clocks ) and how can i drive the seq. in driver.
Atleast please mention how should i proceed. ( Just main points)
Thanks in advance
I think it would be better if you proceed with two agents.
one agent is for write another agent is for read.
in write driver you can have write clk,with respect to it you can drive write data on the interface,in read driver you can have read clk,with respect to it you can drive read data on interface.
The only solution is to have 2 agents, one for Read another one for write, because it is specific to the asynchrounous fifo to have Independent Read and write cycles.
You need only 1 sequencer with 1 TLM port. In this case you have to have your access type (RD/WR as a data member in your sequence item. You can randomize this seq_itemto generate random access or using inline constzraints to constrain RD or WR.
So in that case I think read and write will become dependent on each other but we have to implement independent read and write in async fifo. Is my understanding correct ?
I do not know what you mean with concurrently. If you have 1 driver with 1 virtual interface you can serve only 1 operation at a time. But the RD and WR sequence is running concurrently.
Hi,
If you have one driver but 2 virtual interfaces then Is it ok to have only one agent ?
As you have mentioned earlier let RD-sequence and a WR-sequence run in a fork/join on 1 sequencer . But here if I use 2 virtual interfaces then both read and write operations can be done simultaneously . Right ?