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.
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
"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!