Syntax error, unexpected type name. The type is defined at *

Hi All,

I got below error. What is causing this error. I am using two seq. with same sequence item.

syntax error, unexpected type name. The type ‘nvx_aes_mtu_in_seq_item’ is defined at /pkgs/nvx_aes_mtu_in_seq_item.sv

class nvx_aes_mtu_in_seq extends nvx_aes_base_seq #(
.SEQ_ITEM_T(nvx_aes_mtu_in_seq_item)
);

class nvx_aes_mtu_in_spec_seq extends nvx_aes_base_seq #(
.SEQ_ITEM_T(nvx_aes_mtu_in_seq_item)
);

Here it is complaining

task nvx_aes_mtu_in_spec_seq::body()
nvx_aes_mtu_in_seq_item req, rsp;
nvx_aes_cfg m_cfg;

bit decrypt;

In another sequence, i am calling both of sequence,
mtu_in_seq = nvx_aes_mtu_in_seq::type_id::create(“mtu_in_seq”);
mtu_out_seq = nvx_aes_mtu_out_seq::type_id::create(“mtu_out_seq”);
mtu_in_spec_seq = nvx_aes_mtu_in_spec_seq::type_id::create(“mtu_in_spec_seq”);

Thanks,
Nainesh

In reply to nainesh:

I guess your sequebce nvx_aes_base_seq is not parameterized. Right?
Then the calss definition is like this:

class nvx_aes_mtu_in_spec_seq extends nvx_aes_base_seq;

In reply to chr_sue:

Hi,

It is parameterized.

class nvx_aes_base_seq #(
type SEQ_ITEM_T = nvx_aes_base_seq_item
) extends uvm_sequence #(SEQ_ITEM_T);

Thanks,
Nainesh

In reply to nainesh:

OK, I see.
What you get is the error message of your simulator. They are different for each simulator.
I guess you have a compilation problem when compiling the sequence class it looks like the seq_item is not compiled prior to this.

BTW I believe it is useless to paramereize your base class wrt the seq_item, because the sequence is specific to a seq_item.

You’re missing a semi-colon at the end of

task nvx_aes_mtu_in_spec_seq::body()