File tree Expand file tree Collapse file tree 2 files changed +6
-3
lines changed
Expand file tree Collapse file tree 2 files changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -211,7 +211,7 @@ package adi_spi_vip_pkg;
211211 // vif.drive_edge has arrived
212212 // don't shift at last edge if CPHA=0
213213 if (! (vif.get_param_CPHA () == 0 && i == vif.get_param_DATA_DLENGTH ()- 1 )) begin
214- vif.set_miso_drive_instantaneous (miso_bits_msb);
214+ vif.set_miso_drive (miso_bits_msb);
215215 end
216216
217217 foreach (miso_mbx[j]) begin
Original file line number Diff line number Diff line change @@ -64,6 +64,7 @@ interface spi_vip_if #(
6464 spi_mode_t spi_mode;
6565 logic miso_oen;
6666 logic [NUM_OF_SDI - 1 : 0 ] miso_drive;
67+ logic [NUM_OF_SDI - 1 : 0 ] miso_drive_delayed;
6768 logic [NUM_OF_SDO - 1 : 0 ] mosi_drive = 1'b0 ;
6869 logic cs_drive = 1'b0 ;
6970 logic sclk_drive = 1'b0 ;
@@ -88,7 +89,7 @@ interface spi_vip_if #(
8889
8990 // miso drive handling
9091 assign s_miso = (spi_mode != SPI_MODE_SLAVE ) ? m_miso
91- : (miso_oen) ? miso_drive
92+ : (miso_oen) ? miso_drive_delayed
9293 /* default*/ : 'z ;
9394
9495 // mosi drive handling
@@ -178,14 +179,16 @@ interface spi_vip_if #(
178179
179180 virtual task set_miso_drive (bit val[]);
180181 foreach (val[i]) begin
181- miso_drive[i] <= # ( SLAVE_TOUT ) val[i];
182+ miso_drive[i] = val[i];
182183 end
184+ miso_drive_delayed <= # (SLAVE_TOUT * 1ns ) miso_drive;
183185 endtask
184186
185187 virtual task set_miso_drive_instantaneous (bit val[]);
186188 foreach (val[i]) begin
187189 miso_drive[i] = val[i];
188190 end
191+ miso_drive_delayed <= miso_drive;
189192 endtask
190193
191194 virtual task wait_cs_active ();
You can’t perform that action at this time.
0 commit comments