lowRISC / opentitan

OpenTitan: Open source silicon root of trust
https://www.opentitan.org
Apache License 2.0
2.42k stars 724 forks source link

[spi_host,spi_device] Add feedback clock for sampling read data? #23140

Open a-will opened 1 month ago

a-will commented 1 month ago

Description

Timing closure for the spi_host IP can be made easier by sampling read data from a feedback clock, instead of the internal (pre-output) clock. In other words, the data required time can be pushed out (and become less sensitive to various environmental factors) if we use the output clock's pad input to clock the first flop for read data.

This could also be implemented in spi_device for the half-cycle-sampled register in the read pipeline. However, we do already have the full-cycle variant (bypassing the half-cycle flop), and as long as there are no bizarre hold time cases where full-cycle sampling runs into troubles, it might not be necessary.

Should we do this for the M4 milestone?

andreaskurth commented 1 month ago

Outcome from yesterday's discussions: feedback clock not needed for SPI1. Do we also need to think about this for SPI0, @a-will ?

a-will commented 1 month ago

Outcome from yesterday's discussions: feedback clock not needed for SPI1. Do we also need to think about this for SPI0, @a-will ?

From the info I have, it doesn't look like it'll be necessary for this release, but in yesterday's discussion, there were conflicting reports about the current state. We'll sync again on Monday.

andreaskurth commented 1 month ago

Just discussed this out-of-band with @a-will, who recommends deferring to future release

andreaskurth commented 1 month ago

Agreed in triage meeting