Hi,
I have a doubt that in Analysis ports only write method(a function which will not consume any time) can be used or any tasks (which will consume some time) can be used?
Thanks,
Tarun
Hi,
I have a doubt that in Analysis ports only write method(a function which will not consume any time) can be used or any tasks (which will consume some time) can be used?
Thanks,
Tarun
https://www.vmmcentral.org/uvm_vmm_ik/files3/tlm1/uvm_analysis_port-svh.html
As per specified analysis port only have write method as a function.
So in the implantation of write method it should not contain any delay.
And most of the time we don’t require this kind of delay in write method.write method generally used debug purpose(coverage,monitor) where we get the transaction from analysis port and store it into local transaction.
Hope it will clear your doubt.
In reply to abhay_chavda:
https://www.vmmcentral.org/uvm_vmm_ik/files3/tlm1/uvm_analysis_port-svh.html
As per specified analysis port only have write method as a function.
So in the implantation of write method it should not contain any delay.
And most of the time we don’t require this kind of delay in write method.write method generally used debug purpose(coverage,monitor) where we get the transaction from analysis port and store it into local transaction.
Hope it will clear your doubt.
Yes Abhay I agree with you.
But if I am seeing for a case in which q_expected(expected values) should be generated in scoreboard through the values obtained from Monitor. The expected values generation can contain some dealys. In this case we cannot use Analysis ports right.So what is the solution for this problem?
In reply to perumallatarun:
In reply to abhay_chavda:
Analysis data are distributed to two different kinds of components for further processing. One is coverage collectors. For them coverega has to be updated immediately after a transaction is available. The second kind of components are scoreboards/checkers. Here we have to compare data against each other. They will not be available a the same time. For this reason we are inserting in a scoreboard an analysis fifo and passing the annalysis dat to them. From this fifo they can be read when the second compare data is available.
All these connections are transaction-level connections. If we do not pass transaction data through a hierarchy we have always to connect ports to exports. The block which has the port can initiate the data transmission. For this reason the monitor needs an analysis port inside. For coverage collectors it is very useful the employ uvm_subscriber. They are providing an analysis export and you directly connect the monitor analysis port with subscriber export like this:
monitor.ap.connect(coverage.analysis_export);
The tlm_analysis_fifo contaisn also a built-in analysis export and you can connect to them in the same way as described above.
Note, if you are going through a hierarchy you can connect porst with ports and exports with exports. But only in this case.