The is working in synopsis VCS. while I am running the same code in Aldec am getting the below error.
Error: VCP5235 D:/verification Components/write_seq.sv : (28, 63): Class sequence has no parameters.
The is working in synopsis VCS. while I am running the same code in Aldec am getting the below error.
Error: VCP5235 D:/verification Components/write_seq.sv : (28, 63): Class sequence has no parameters.
In reply to chr_sue:
`include “a_sequence.sv”
class write_seq extends a_sequence#(seq_item);
`uvm_object_utils(write_seq)
//---------------------------------------
//Constructor
//---------------------------------------
function new(string name = “write_seq”);
super.new(name);
endfunction
virtual task body();
req = seq_item::type_id::create("req");
wait_for_grant();
req.randomize();
req.write_awid_i = 4'b0001;
req.write_addr_i = 4'b0000;
req.write_length_i = 4'b0000;
req.write_size_i = 3'b100;
req.write_burst_i = 2'b00;
req.write_lock_i = 2'b00;
req.write_wid_i = 4'b0001;
req.write_datav_i = 1'b1;
req.write_strb_i = 4'b1111;
send_request(req);
wait_for_item_done();
endtask : body
endclass
In reply to Manirama:
A few things I see here:
(1) class write_seq extends a_sequence#(seq_item);
a_sequences is considered as a base sequence and this should be parameterized with seq_item.
The class definition should be only:
class write_seq extends a_sequence;
(2) You are doing strange things in your body task. First you are randomizing the sequence for some reason I do not understand and then you have dedicated write commands to registers or do you want to assign values to seg_item data_members. Please clarify.
(3) Then you are calling methods which are unnecessary.
Your body task should be like this:
task body();
req = seq_item::type_id::create("req");
start_item(req);
req.randomize(); // this line only if there are additional data members to be randomized
req.write_awid_i = 4'b0001;
req.write_addr_i = 4'b0000;
req.write_length_i = 4'b0000;
req.write_size_i = 3'b100;
req.write_burst_i = 2'b00;
req.write_lock_i = 2'b00;
req.write_wid_i = 4'b0001;
req.write_datav_i = 1'b1;
req.write_strb_i = 4'b1111;
finish_item(req);
endtask : body