There is no clock tree. Each block in the chain ha...
# timing-closure
t
There is no clock tree. Each block in the chain has a clock input and a clock output. It also re-clocks the data output on the neg edge of the clock so that that it maximizes setup and hold time for the next block to capture on pos edge.
t
Now it makes sense. In a similar matter, are you doing the same with the latch_enable. The way I see it is, that the FSM could generate a glitch on latch_enable when switching from READ to START ?
t
tbh, I wouldn't be looking at the current scan controller ... I've completely rewritten it.
t
Okay, just trying to help ! Keep up the great work !!!
t
Sure, and much appreciated. I just don't want you to loose time to review something that will be shortly replaced. I'm starting to test the new one and will push as soon as I get it at least doing something that looks good and then you can review that one 😁
t
I was trapped into the "skew" discussions, so I thought it is a clock tree of the scan clock, but I didn't study the cell logic enough.
t
Yeah, the idea in the skew talk was that I'd like the clk_out/data_out of each block into the clk_in and data_in of the next block to have about the same delay.
By design I can always make it work by slowing down the clock, but if I could limit the skew, I could ensure it would run at higher clocks.
(Like I'd hate for the clock to take 0.5ns and then for data it takes the scenic route around the chip and takes 10 ns ...)
t
In my design I'm using an additional register with an inverted clock input, which keeps the data out signal stable, when the target register captures it. #JustAThought
t
Yeah, that's what we do as well.