This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Support for pipelining flops in AXI

Hi All,

Does ARM support pipelining flops in between valid/ready signals?Can someone explain why its *not* possible?

Thanks

Parents
  • Hello naveen,

    >Yes, I am asking about inserting retiming flops.

    OK! Thank you!


    >Does master need to take special care when we have retime-flops?

    No.


    >First of all do we support these retiming flops?

    Yes.


    >When we put 1 flop in between "ready" signal connection from slave-master then master should

    >wait for 1 extra cycle to see whether slave is actually finished the transaction or not.


    A register slice (or a retiming flop) is not just as simple as a single DFF that delays the input by one cycle.


    A register slice can be divided into 3 types:

    - Full register slice: Breaks timing in both VALID and READY directions.

    - Forward register slice: Breaks timing in the forward direction (i.e. VALID and payload).

    - Reverse register slice: Breaks timing in the reverse direction (i.e. READY).


    Looking at a full register slice:

    123.png

    It would have two sets of internal DFFs and an output MUX. On the input side, it performs valid/ready handshaking with the master to write a transfer into either set. On the output side, it performs the same type of valid/ready handshaking with the downstream component to issue any internal data. The handshaking on the two sides are independent. As long as either RegA or RegB is free, ready_slv would be HIGH. As long as either RegA or RegB has valid data, valid_mst would be HIGH. There are no combinatorial paths on either directions of the channel, thus it can fully break the timing.


    Similarly, a forward register slice breaks timing in the forward direction, but there exists combinatorial paths in the READY direction. The same principle applies to the reverse register slice.


    In the past, ARM offered standalone register slice IPs. But now they have been integrated into configurable interconnect products such as NIC-400.


    Best regards,




    Xingguang


Reply
  • Hello naveen,

    >Yes, I am asking about inserting retiming flops.

    OK! Thank you!


    >Does master need to take special care when we have retime-flops?

    No.


    >First of all do we support these retiming flops?

    Yes.


    >When we put 1 flop in between "ready" signal connection from slave-master then master should

    >wait for 1 extra cycle to see whether slave is actually finished the transaction or not.


    A register slice (or a retiming flop) is not just as simple as a single DFF that delays the input by one cycle.


    A register slice can be divided into 3 types:

    - Full register slice: Breaks timing in both VALID and READY directions.

    - Forward register slice: Breaks timing in the forward direction (i.e. VALID and payload).

    - Reverse register slice: Breaks timing in the reverse direction (i.e. READY).


    Looking at a full register slice:

    123.png

    It would have two sets of internal DFFs and an output MUX. On the input side, it performs valid/ready handshaking with the master to write a transfer into either set. On the output side, it performs the same type of valid/ready handshaking with the downstream component to issue any internal data. The handshaking on the two sides are independent. As long as either RegA or RegB is free, ready_slv would be HIGH. As long as either RegA or RegB has valid data, valid_mst would be HIGH. There are no combinatorial paths on either directions of the channel, thus it can fully break the timing.


    Similarly, a forward register slice breaks timing in the forward direction, but there exists combinatorial paths in the READY direction. The same principle applies to the reverse register slice.


    In the past, ARM offered standalone register slice IPs. But now they have been integrated into configurable interconnect products such as NIC-400.


    Best regards,




    Xingguang


Children