Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The FPGA sends request messages to the ASIC in the serial protocol data payload tranport (in-between SOF and EOF). The ASIC processes the message and responds back to the FPGA.  Only 1 message is in flight at any time to remove the requirement of back pressuring the link.   Both the request message and responds message are the same size (10 bytes).

The daisy chaining of multiple ASIC is achieved via the header's device address field.  When the ASIC received the header and the device field is 0x1, then the ASIC will process the register request message else pass it through.  For each daisy chain stage and when device address is non-zero, the TX device address field is decremented by 1 from the RX device address.  Example: You have two ASICs in the daisy chain.  You would use device address = 0x1 to do register access on the first device and device address = 0x2 to do register access on the seconds device.

ASIC Inbound (FPGA Outbound) Request Format

...

Byte OffsetNameDescriptionNote
0HeaderVersion numberEchoed back
1RegAddr[31:24]Register AddressEchoed back
2RegAddr[23:16]
3RegAddr[15:8]
4RegAddr[7:0]
5MemData[31:24]Memory Data
  • Returns the read data if read operation
  • Returns the write data if write operation


6MemData[23:16]
7MemData[15:8]
8MemData[7:0]
9FooterResponds  Value

Only used for non-posted operations.  non-zero if error

  • BIT0 = Memory Transaction Responds
  • BIT1 = Version Mismatch Error
  • BIT2 = non 32-bit address alignment
  • BIT3 = Framing Error
  • BIT[7:43] = 0x0