Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Understanding Skid Buffer Mechanism

Status
Not open for further replies.
The skid buffer has no "functional" purpose. It is inserted to improve timing, like "normal" pipelining.
The problem is that there is one signal (ready) going in the other direction. To get the full timing improvement, that signal also needs a register. The master will then see the ready signal one clock cycle "too late" when it is set low by the slave.

If there is only one register in the skid buffer, the ready signal going back to the master can only be active for one clock cycle at a time, because the slave can set ready=0 but the master would see it too late.

This means that every second clock cycle the ready going back to the master must have ready=0 even if the slave has ready=1 all the time. The throughput will be cut in half.

The skid buffer with two registers solves that problem. It can accept one more write from the master when the slave sets ready=0.

@std_match

I am still a bit confused with regards to your explanation quote above.

Would you be able to simplify the wordings into a simple AXI timing waveform ?
 

The simplest explination is that it is simply a FIFO that is 1 word deep.
 

@std_match

I do not understand why If there is only one register in the skid buffer, the ready signal going back to the master can only be active for one clock cycle at a time, because the slave can set ready=0 but the master would see it too late. ?
 

Have a look at the following skid buffers (which is equivalent to EB, elastic buffer)

Screenshot is taken from https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.9778&rep=rep1&type=pdf

Could anyone comment about this ?

QvUjkjA.png
 

Because the state machines in Fig. 8 are slightly different, so the controllers in Fig. 9 are slightly different (and so are their copies in Fig. 10). Note that the bottom of Fig. 10 is essentially Fig. 9 with the left and right flipped (and one of them also split).

Someone told me the above. What do you guys think ?

I do not quite understand Figure 8. What are Vl*!Sr/E0 and Vl*!Sr/Em,Es ?

Pl9s1Jp.png
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top