Hi,
In my test sequence, I instantiated a sub-sequence, and try to call the "cpu_write" task from that sub-sequence. Here is the code my task calling.
task body();
logic[255:0] read_val=0;
logic[255:0]
cpu_seq=cpu_sequence::type_id::create("cpu_seq");
cpu_seq.cpu_write(.addr(30'h3552c000),.data('h3),.parent(this),.self_start(1),.seqr(cpu_msqr));
endtask
This is the task declaration of cpu_write inside cpu_sequence
task cpu_write(input bit[31:0] addr, logic[31:0] data, input bit bBypassShadow, input uvm_sequence_base parent = null, uvm_verbosity vl=UVM_LOW, bit no_disp=0, bit self_start=0, input uvm_sequencer_base seqr=null);
However, I am getting the "Too few arguments to function/task call error" in compilation.
Error-[TFAFTC] Too few arguments to function/task call
/auto/nuo-asic-3/haojin/bev_src/beverly/verif/common/l2/demo_seq.sv, 53
"sv_test_top.\cpu_sequence_0::cpu_write (this.cpu_seq, .addr(30'h3552c000), .data('h00000003), .parent(\this ), .self_start(1), .seqr(\this .cpu_msqr));"
The above function/task call is not done with sufficient arguments.
I think the reason is that I can't mix arguments passing by name after arguments passing by position. But I wonder where is the argument this.cpu_seq
comes from?
Besides, I wonder what is the name of this default argument and how should I pass arguments by name when calling task from sub-sequence?
Thanks in advance!
Hao