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 (13 10 bytes).

ASIC Inbound (FPGA Outbound) Request Format

0x0Non-Posted Read=Non-Posted Write
  • 0x2=Posted Write
  • 0x3=NULL
  • 0x4 ~ 0xFF (unused)
  • 4567891011Respond[7:0]
    Byte OffsetNameDescriptionNote
    0Version[7:0]

    Header

    • Version number
     Must be 0x11
    • Operation Type
    • Device Address


    • BIT[2
    OpCode[7
    • :0]
    Operation Code
    • =
    • 0x1
    2TID[7:0]Transaction IDUsed for debugging
    3DevAddr[7:0]Device Address
    • Used in daisy chain mode only
    • 0xFF is a broadcast for all device
    • BIT[3]:
      • 0x1 = READ
      • 0x0 = WRITE
    • BIT[7:4] = Device index on daisy chain
    1RegAddr[31:24]Register AddressIn units of bytes
    2RegAddr[23:16]
    3RegAddr[15:8]
    4RegAddr[7:0]
    5WriteData[31:24]Write DataOnly used for write operations
    6WriteData[23:16]
    7WriteData[15:8]
    8WriteData[7:0]12
    9FooterResponds  Value
  • Used in daisy chain mode only
  • value is bitwise OR

    of

    'd for all daisy chain responds

    in the chain

    ASIC Outbound (FPGA Inbound) Response Format

    ...

    • Only used for non-posted operations
    • Either read or write data depending on OP-code value
    Byte OffsetNameDescriptionNote
    0Version[7:0]HeaderVersion numberEchoed back
    1OpCode[7:0]Operation CodeEchoed back
    2TID[7:0]Transaction IDEchoed back
    3DevAddr[7:0]Device AddressEchoed back
    4RegAddr[31:24]Register AddressEchoed back
    52RegAddr[23:16]
    63RegAddr[15:8]
    74RegAddr[7:0]
    85MemData[31:24]Memory Data
    • Returns the read data if read operation
    • Returns the write data if write operation


    69MemData[23:16]
    107MemData[15:8]
    118MemData[7:0]
    9Footer12Respond[7:0]Responds  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:4] = 0x0