- 1 answer23 views
Error Message : "Too few arguments to function/task call: The above function/task call is not done with sufficient arguments."
I am getting an error message:
Error-[TFAFTC] Too few arguments to function/task call
The above function/task call is not done with sufficient arguments.
class my_seq_item extends ovm_sequence_item;
handle_A = classA #(my_seq_item):: type_id::create("handle_A", this);
class classA #(parameter type T = ovm_sequence_item) extends ovm_object;
function new(string name = "classA", T handle_B);
//(Here, I want to tweak a member of the class my_seq_item through the handle_B).
endclass : classALast Activity 11 hours 24 min ago by cgales
- 2 answers47 views
How to Write Verify Configuration Requests in PCie.
If want to do back to back Configuration write followed by Configuration read transaction. How to perform data checking in sequence. can any one tell me.Last Activity 2 days 1 hour ago by rameshyadav472
- 0 answers7 views
What is the Starting Address of Type0 configuration Space ? I am Generating Register Model for Configuration space , shall i give starting address as 32'h00 and generate register model according byte offsets ?2 days 2 hours ago - No activity yet
- 1 answer42 views
I am trying to create a virtual sequence to control stimulus generation at SOC level using the low level sequences.
The cook book explains two approaches
1) using virtual sequences that gets handles to all sequencers and start the sequence on any of them
2) use the virtual sequence and start it on a virtual sequencer which will have handles to all of the low level sequencers.
What is the difference and how to implement 2)? There are examples on 1) in cookbook but for 2)- I dont find any
I preferred 2) because then the virtual sequence need not be tied to know all the env sequencers.Last Activity 3 days 1 hour ago by vishnuprasanth
- 1 answer27 views
I was wondering what the accepted best practice is for transmitting and receiving transactions via OVM TLM. On transmission I can understand the philosophy to 'clone on TX' since the originator owns the original handle and may decide to alter it after TX. Also - there is a chance that a downstream subscriber could corrupt the handle also.
What about RX though? Even using 'clone on TX' - you could have multiple subscribers that will all have the same (cloned) handle presented on their respective analysis exports. Should you also 'clone on RX' - since there is no guarantee on what other subscribers may do to that handle? Is this an overly defensive mindset ... obviously the more cloning the more memory usage so performance may suffer.Last Activity 3 days 2 hours ago by vishnuprasanth
- 1 answer61 views
Every TB Consists of macros such ovm_info,ovm_error,...so on macro.
I want configure this macros with some name,Can we do it,If so what should be done.
Exactly what i want is "ovm_info" should be "new_macro_info"
i think we can do it by `define but iam not able to write that,If someone knows how to change macros please help me.
BharathLast Activity 2 weeks 1 day ago by dave_59
- 1 solution5,737 views
Can I have multiple analysis ports in my monitor. I wanted to use this coz, my TB has two agents which can bot send/ receive a packet and I want to seperate them totally with two analysis ports
PraveenLast Activity 2 years 7 months ago by praveen581
- 3 answers110 views
My agent has a sequencer connected to a driver of some HW interface (CIO), this protocol defines several layers of which I can run.
1. single transaction, read/write transactions.
2. burst of single transaction, burst is marked with start/end signals.
so our sequences are built in layers.
1. A sequence that run single transaction
2. A sequence that run a list of single transactions, wrapped with grab/ungrab of the sequencer.
my intention is to create a bunch of read bursts, in one sequence (using virtual seqr)
and another bunch of write bursts (again, using virtual seqr) and to fork them in parallel so I'll be able to get on the bus a mix interleaved bursts of read and writes.
What I actually get is the writes and after that the reads, no interleaved bursts.
no wait for a response from driver in any of the sequences.Last Activity 3 weeks 4 days ago by Uriel
- 7 answers6,086 views
I am trying to write a ovm_driver for an external processor BFM. This processor has a bi-directional tri-statable bus. How would one declare a bi-directional signal in a SystemVerilog interface?
I tried this:
interface cpu_if( input bit reset, input bit clk ); logic [31:0] ad; // Address/Data bit ale; // Address Latch Enable modport cpu_mp( inout ad, output ale, ... ); modport per_mp( inout ad, input ale, ... ); endinterface : cpu_if
When I compile this interface, I get an error:Quote:
An inout port (ad) must be a net type.
I changed ad definition to:
wire [31:0] ad;
But not in the ovm_driver, I tried driving ad and ale signals:
up_if.ad <= 'hz; up_if.ale <= 1'b0;
And I get the following error:Last Activity 1 month 1 week ago by Kachhadia Manoj
- 1 answer56 views
When we run a testcase either through command line or through the run_test() method we always get the hierarchy starting with ovm_test_top.env.agent....
From where and how we are getting ovm_test_top? i am expecting "mytest" to be there..
Can anyone please explain?Last Activity 1 month 2 weeks ago by cgales
- 1 answer67 views
How does one pass DUT control register contents to Line side monitor/data item ? Host side writes value of N to DUT register. Now I need N serial bits to be sent from Line side and collect these N of them in the line monitor. I am kinda of new to ovm and i am using cadence iuc9.2 tool. Thanks.Last Activity 1 month 3 weeks ago by sameer_kadam75
- 0 answers93 views
I am using ovm_register-2.1. I think this package of ovm register is having some issue with W1C property of register field. As per W1C property, field should be cleared only when we write it to 1. As per implementation it is also clearing data whenever it is written to 0, too. I think it is because of following code implementation.
((((~new_value & W0SETMASK) | // #1
( new_value & ~W1CLRMASK))) // #2
& (WMASK&local_mask)) // #3
| (current_value & ~(WMASK&local_mask)); // #4
So here as per case #2 W1C field will always be written to 0 up-on write. Where as I think it should not get cleared when it is written to 0.1 month 4 weeks ago - No activity yet
- 6 answers5,065 views
We built a high level model in python, we made use of the scipy library to quickly test some things. Now we're building a verification environment in SystemVerilog using the OVM. We would like to use the python implementation as a golden model. Therefor we need to cosimulate python and SystemVerilog, but I couldn't find any documentation whether this is possible? (We're using Questa). Any ideas?
thanks a lot,
PieterLast Activity 2 months 2 days ago by PotentialVentures
- 0 answers65 views
how can i pass a variable value to multiple components in multiple agents during run in ovm?
Can anyone please tell me how to do this.
Thanks in advance.2 months 1 week ago - No activity yet
- 1 solution101 views
I have download the "Open Verification Methodology Cookbook" Many of examples inside this book does not provide full coding.
Where can i download the full coding for all the examples ?
I notice there have a file's path at the end of code in each example as below, so i guess it should have a file that contains the full coding.
Can anyone help me?
thanks.Last Activity 2 months 1 week ago by sffong2
- 1 solution192 views
I am getting following error -
Error-[SV-SNE] Symbol not exported.
The symbol 'RMBusConfig' is visible in package 'RMBUS_BFM.RMBusBFM_pkg', but has not been exported for re-import in other scopes.
Here is the code snippet -
`ifndef GTLC_SEQ_ITEMS `define GTLC_SEQ_ITEMS import IosfPkg::Iosf; `ifndef SOC_COMPILE class rmbus_bfm_xItem extends RMBusBFM_pkg::RMBusSeqItem; static RMBusBFM_pkg::RMBusConfig _configs; `ovm_object_utils(rmbus_bfm_xItem) function new(string name = "rmbus_bfm_xItem"); super.new(); configs = _configs; endfunction : new endclass : rmbus_bfm_xItem
Can anyone tell what exactly this error means?Last Activity 2 months 2 weeks ago by Abhinav1088
- 0 answers123 views
I try to pass a virtual interface from testcase to agent. The virtual interface is wrappered in a class derived from ovm_object. In testcase, I call set_config_object with clone = 1:
set_config_object("*o_adc_agent0*", "o_adc_ch_delay_cfg", o_adc0_ch_delay_cfg, 1);
but a fatal error occured:
# ** Fatal: Illegal virtual interface dereference.
It seems that the virtual interface is not passed successfully. If I use:
set_config_object("*o_adc_agent0*", "o_adc_ch_delay_cfg", o_adc0_ch_delay_cfg, 0);
everything is ok.
I have already overload function clone in the wrapper class:2 months 4 weeks ago - No activity yet