lowRISC / lowRISC/opentitan

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

Open
#23,140 5 comments 0 reactions 5 assignees Claimed by @meisnere View on GitHub
Component:DD Component:RTL Earlgrey-PROD Candidate IP:spi_device IP:spi_host Type:Enhancement
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

### 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?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.