All market exchanges have a custom protocol in which they disseminate data and accept data from their customers. The objective is to design and implement a message extractor/parser.
The format of the incoming data stream is given below.
ADDRESS LSB <--
| MSG COUNT | MSG_1 LENGTH | PAYLOAD_1 | ... | MSG_n LENGTH | PAYLOAD_n |
|---|---|---|---|---|---|
| 2 Bytes | 2 Bytes | Variable bytes | ... | 2 Bytes | Variable Bytes |
| Field name | Length | Description |
|---|---|---|
| Message count | 2 Bytes | Number of messages in the packet |
| Message length | 2 Bytes | Length of the following message excluding this field |
| Payload | Variable | Payload data |
The expected output of the block is the payload of these messages. Assumptions:
- The input of the module is a 64bit AXI-ST interface.
- The minimum message length for any message is 8 Bytes and the maximum is 32 Bytes. The total size of the entire stream can be a maximum of 1,500 bytes.
- It outputs each message one after the other
