@@ -37,9 +37,10 @@ class Axi4SDriver #(DATA_WIDTH, USER_WIDTH, ITEM_WIDTH = 8) extends Driver;
3737 this .vif = v;
3838
3939 this .vif.cb.TVALID <= 0 ;
40+ this .vif.cb.TUSER <= 0 ;
4041 endfunction
4142
42- task sendTransaction (AxiTransaction transaction);
43+ task sendTransaction (AxiTransaction # ( ITEM_WIDTH , USER_WIDTH ) transaction);
4344 Transaction tr;
4445 $cast (tr, transaction);
4546
@@ -57,7 +58,7 @@ class Axi4SDriver #(DATA_WIDTH, USER_WIDTH, ITEM_WIDTH = 8) extends Driver;
5758 endtask
5859
5960 task run ();
60- AxiTransaction transaction;
61+ AxiTransaction # ( ITEM_WIDTH , USER_WIDTH ) transaction;
6162 Transaction to;
6263 time before_get;
6364
@@ -113,13 +114,15 @@ class Axi4SDriver #(DATA_WIDTH, USER_WIDTH, ITEM_WIDTH = 8) extends Driver;
113114
114115 virtual task invalidateWordData ();
115116 logic [DATA_WIDTH - 1 : 0 ] data = 'x ;
116- logic [WORD_ITEMS - 1 : 0 ] keep= 'x ;
117+ logic [USER_WIDTH - 1 : 0 ] user = 'x ;
118+ logic [WORD_ITEMS - 1 : 0 ] keep = 'x ;
117119
118120 vif.cb.TDATA <= data;
121+ vif.cb.TUSER <= user;
119122 vif.cb.TKEEP <= keep;
120123 endtask
121124
122- virtual task exposeWordData (AxiTransaction tr, int cycle, inout finished);
125+ virtual task exposeWordData (AxiTransaction # ( ITEM_WIDTH , USER_WIDTH ) tr, int cycle, inout finished);
123126 logic [DATA_WIDTH - 1 : 0 ] data = 'x ;
124127 logic [WORD_ITEMS - 1 : 0 ] keep = '0 ;
125128 int j;
@@ -133,10 +136,11 @@ class Axi4SDriver #(DATA_WIDTH, USER_WIDTH, ITEM_WIDTH = 8) extends Driver;
133136 finished = 1 ;
134137
135138 vif.cb.TDATA <= data;
139+ vif.cb.TUSER <= tr.user;
136140 vif.cb.TKEEP <= keep;
137141 endtask
138142
139- virtual task sendWord (AxiTransaction tr, int cycle, inout finished);
143+ virtual task sendWord (AxiTransaction # ( ITEM_WIDTH , USER_WIDTH ) tr, int cycle, inout finished);
140144 wordRandomWait ();
141145 exposeWordData (tr, cycle, finished);
142146 validateWord (finished);
@@ -146,7 +150,7 @@ class Axi4SDriver #(DATA_WIDTH, USER_WIDTH, ITEM_WIDTH = 8) extends Driver;
146150 invalidateWordData ();
147151 endtask
148152
149- virtual task sendFrame (AxiTransaction tr);
153+ virtual task sendFrame (AxiTransaction # ( ITEM_WIDTH , USER_WIDTH ) tr);
150154 int cycle = 0 ;
151155 int finished = 0 ;
152156
@@ -157,4 +161,3 @@ class Axi4SDriver #(DATA_WIDTH, USER_WIDTH, ITEM_WIDTH = 8) extends Driver;
157161 endtask
158162
159163endclass
160-
0 commit comments