| 1 | == Command Generator == |
| 2 | |
| 3 | __Figure 1 - Command Generator IO__ |
| 4 | [[BR]][[BR]] |
| 5 | [[Image(xmtr_cmd_gen.jpg)]] |
| 6 | [[BR]][[BR]] |
| 7 | |
| 8 | __Table 1 - Rx Ethernet Interface__ |
| 9 | ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| |
| 10 | ||''sof'' ||In ||1 ||Start-of-frame signal, indicating first word of payload|| |
| 11 | ||''eof'' ||In ||1 ||End-of-frame signal, indicating last word of payload|| |
| 12 | ||''data'' ||In ||32 ||Ethernet payload data || |
| 13 | ||''rd_en'' ||Out ||1 ||Active High. Fifo data fetch enable signal|| |
| 14 | ||''fifo_empty_flag'' ||In ||1 ||Fifo empty flag|| |
| 15 | [[BR]] |
| 16 | |
| 17 | __Table 2 - RMAP Interface__ |
| 18 | ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| |
| 19 | ||''buf_full_err'' ||Out ||1 ||Active High. Indicates that the buffer is full and no more data can be accepted.|| |
| 20 | ||''frame_seq_no'' ||Out ||1 ||Sequence no of the data frame which was not stored in the buffer due to a buf_full_err,|| |
| 21 | || || || ||or cmd_full_err, or a frame_length_err.|| |
| 22 | ||''cmd_full_err'' ||Out ||1 ||Active High. Indicates that the command fifo is full and no more commands can be accepted.|| |
| 23 | ||''hdr_err'' ||Out ||1 ||Active High. Indicates that there is an error in the IP header not enough no. of words|| |
| 24 | ||''ip_addr_err'' ||Out ||1 ||Active High. Indicates that the destination IP address in the data frame does not match|| |
| 25 | || || || ||with the IP address of the board.|| |
| 26 | ||''frame_length_err'' ||Out ||1 ||Active High. Indicates that the frame length calculated from IP payload length does not || |
| 27 | || || || ||match with the actual frame length.|| |
| 28 | || || || ||In case of a control command, it might indicate that the frame length is not equal to 2 words (8 bytes).|| |
| 29 | || || || ||In case of a data command, if the actual frame length is more than the calculated length, only the || |
| 30 | || || || ||calculated length no.of words are stored and the rest are discarded. If the actual frame length is || |
| 31 | || || || ||less, the write operation is considered incomplete and is canceled.|| |
| 32 | [[BR]] |
| 33 | |
| 34 | |
| 35 | __Table 3 - Command FIFO Interface__ |
| 36 | ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| |
| 37 | ||''cmd_sof'' ||Out ||1 ||Start-of-frame signal, indicating the first word of command descriptor|| |
| 38 | ||''cmd_eof'' ||Out ||1 ||End-of-frame signal, indicating the last(second) word of command descriptor|| |
| 39 | ||''cmd_data'' ||Out ||32 ||Command descriptor word|| |
| 40 | ||''cmd_write'' ||Out ||1 ||Active High. Indicates that the current word on cmd_data is valid and acts a write request for the command FIFO.|| |
| 41 | ||''cmd_full_flag'' ||In ||1 ||Active High. Indicates that the command FIFO is full and can not accept any commands|| |
| 42 | [[BR]] |
| 43 | |
| 44 | |
| 45 | __Table 4 - Memory Control Interface__ |
| 46 | ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| |
| 47 | ||''buf_wr_req'' ||Out ||1 ||Active high. Signal requesting the memory control for buf_wr_size bytes of space on the buffer to store data|| |
| 48 | ||''buf_wr_size'' ||Out ||16 ||Size of data to be stored in the buffer(bytes) . It is calculated from the payload length given in the IP header|| |
| 49 | ||''buf_wr_ack'' ||In ||1 ||Active High. Response to buf_wr_req indicating that the requested space is available at the address buf_wr_ptr. || |
| 50 | || || || ||buf_wr_ack is sent as soon as buf_wr_req is detected by the memory control, i.e., the command descriptor generator || |
| 51 | || || || ||can send a buffer request and check for buf_wr_ack in the next clock cycle. If buf_wr_ack is not high, it means that|| |
| 52 | || || || ||the requested buffer space is not available.|| |
| 53 | ||''buf_wr_ptr'' ||In ||16 ||Address at which the data would be written. This address will be inserted in the data command descriptor.|| |
| 54 | ||''buf_sof'' ||Out ||1 ||Start-of-frame for the app data to be stored. The memory control expects an sof (or a buf_wr_cancel) as soon as the || |
| 55 | || || || ||buf_wr_req is pulled low. If the buf_wr_req remains low for a clock cycle or more before sending the sof, then the || |
| 56 | || || || ||data write operation is ignored. |
| 57 | ||''buf_eof'' ||Out ||1 ||End-of-frame for the app data to be stored|| |
| 58 | ||''buf_wr_data'' ||Out ||32 ||App data word to be stored|| |
| 59 | ||''buf_data_valid'' ||Out ||1 ||Active High. Indicates that the data word on buf_wr_data is valid|| |
| 60 | ||''buf_wr_cancel'' ||Out ||1 ||Active High. Command descriptor generator can cancel a data write operation at any time, by setting this signal high.|| |
| 61 | || || || ||A write operation starts when the buffer request is sent to the memory control and ends when eof is sent.|| |
| 62 | [[BR]] |
| 63 | |
| 64 | __Table 5 - RMAP Processor Interface__ |
| 65 | ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| |
| 66 | ||''rmap_sof'' ||Out ||1 ||Start-of-frame signal, indicating first word of RMAP descriptor/message|| |
| 67 | ||''rmap_eof'' ||Out ||1 ||End-of-frame signal, indicating last word of RMAP descriptor/message|| |
| 68 | ||''rmap_data'' ||Out ||32 ||RMAP descriptor data|| |
| 69 | ||''rmap_wr_en'' ||Out ||1 ||Active High. Fifo write enable signal|| |
| 70 | ||''rmap_fifo_full_flag'' ||In ||1 ||Fifo full flag|| |
| 71 | [[BR]] |
| 72 | |
| 73 | |
| 74 | |
| 75 | |
| 76 | [..] |
| 77 | |