Other devices in front of the BSCAN_SPI target lead to one cycle delay of MOSI data w.r.t. CS_N for each TAP. TAPs after the BSCAN_SPI additionally lead to a one-cycle delay of MISO per TAP (seen from the JTAG interface's TDO).
MISO delays can be handled in software (DR_LENGTH). But since the BSCAN_SPI TAP does not know how to delay cs_n w.r.t. sel & shift this requires a bit more thinking.
Could be done by either having cs_start and cs_length fields shifted in first with every SPI command or by adding that as some configuration register into the core. The former is probably easier and more flexible while not introducing any relevant overhead.
Thanks to Hawk King for noticing and helping in debugging.
Other devices in front of the BSCAN_SPI target lead to one cycle delay of MOSI data w.r.t. CS_N for each TAP. TAPs after the BSCAN_SPI additionally lead to a one-cycle delay of MISO per TAP (seen from the JTAG interface's TDO).
MISO delays can be handled in software (DR_LENGTH). But since the BSCAN_SPI TAP does not know how to delay
cs_n
w.r.t.sel & shift
this requires a bit more thinking.Could be done by either having
cs_start
andcs_length
fields shifted in first with every SPI command or by adding that as some configuration register into the core. The former is probably easier and more flexible while not introducing any relevant overhead.Thanks to Hawk King for noticing and helping in debugging.