Hi all ,
I Observe that driver , sequencer N sequence are all parameterized to Same user_sequence_item .
**I was wondering why ?
**
With driver N sequencer since the TLM Port N Imp type Need to be Matching types , I understand that
**seq_item_port N seq_item_export Need to be Same type !!
As a result they are of Same user_sequence_item type !!
**
EDIT: But I am curious why is sequence N sequencer parameterized to same data type ?
Unlike TLM Connections of Driver N Sequencer , sequencer N sequence are not connected
In reply to MICRO_91:
The parameters of the uvm_sequencer are passed to the TLM parameterized seq_item_export. That is the only way they can be passed.
In reply to dave_59:
Hi Dave ,
Yes I got that part . To have Type Compatibility between the seq_item_port N seq_item_export Connection the Type Parameters must match.
Hence the driver N sequencer have same type Parameterization.
But the uvm_sequence is parameterized to same user_seq_item as well.
I didn’t get this part . What if the user_sequence doesn’t have same parameterization ?
( Since the sequence N sequencer aren’t connected via TLM Connections in driver N sequencer )
In reply to MICRO_91:
The sequence/sequencer/driver code is quite convoluted to follow. Instead of using pure TLM protocol, or adapting TLM to meet the requirements of the sequences, they branched and created a separate sequencer API.
I don’t think a sequence has to have the exact same parametrization, but I do think it has to have a uvm_sequence_item in the same inheritance line to be passed with incompatible casting.
In reply to dave_59:
Hi Dave ,
I was referring to SV LRM 6.22 Type Compatibility which describes Matching Types and Equivalent Types
During the TLM connection b/w driver and sequencer ( OR any other TLM Connection in general ) ,
Are the type Parameters required to be Matching types OR Equivalent Types ?
In reply to Have_A_Doubt:
Parametrized classes require matching types. (Section 8.25 Parameterized classes of the 180-2017 LRM). Equivalent types are only for dealing with packed and unpacked array of the same sizes with different ranges.