Skip to content

Commit d4158f8

Browse files
committed
/library/bip/spi_engine: fix delay on set_miso_drive
Signed-off-by: Carlos Souza <carlos.souza@analog.com>
1 parent d728f74 commit d4158f8

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

library/vip/adi/spi_vip/adi_spi_vip_pkg.sv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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

library/vip/adi/spi_vip/spi_vip_if.sv

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff 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();

0 commit comments

Comments
 (0)