-
Notifications
You must be signed in to change notification settings - Fork 779
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[i2c,rtl] i2c_fsm changes for prediction of target clock-stretching
Previously, the cycle counter for any 'thigh' state would only decrement once the FSM had observed scl_i = 1'b1 on it's input. When the FSM releases SCL to create the clock pulse, a minimum of 3 cycles is required to observe this effect on it's input. (1-cycle output flop, 2-cycle input synchronizer) This change allows the HOST-mode state machine to proceed if it does not observe SCL being stretched 4 cycles after releasing SCL to try and create the next clock pulse. This removes the 3-cycle delay from every 'thigh' state, and in the absence of clock-stretching, brings the performance of the block in-line with a user's calculations based on the given timing parameters. This imposes a minimum 'thigh' of 4 cycles, which may limit the possible performance of the block when the frequency of clk_i is not significantly greater than scl. Signed-off-by: Harry Callahan <[email protected]>
- Loading branch information
1 parent
3275d66
commit 41b117b
Showing
1 changed file
with
72 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters