== Command Generator == __Figure 1 - Command Generator IO__ [[BR]][[BR]] [[Image(xmtr_cmd_gen.jpg, 800px)]] [[BR]][[BR]] __Table 1 - Rx Ethernet Interface__ ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| ||''sof'' ||In ||1 ||Start-of-frame signal, indicating first word of payload|| ||''eof'' ||In ||1 ||End-of-frame signal, indicating last word of payload|| ||''data'' ||In ||32 ||Ethernet payload data || ||''rd_en'' ||Out ||1 ||Active High. Fifo data fetch enable signal|| ||''fifo_empty_flag'' ||In ||1 ||Fifo empty flag|| [[BR]] __Table 2 - RMAP Interface__ ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| ||''buf_full_err'' ||Out ||1 ||Active High. Indicates that the buffer is full and no more data can be accepted.|| ||''frame_seq_no'' ||Out ||1 ||Sequence no of the data frame which was not stored in the buffer due to a buf_full_err,|| || || || ||or cmd_full_err, or a frame_length_err.|| ||''cmd_full_err'' ||Out ||1 ||Active High. Indicates that the command fifo is full and no more commands can be accepted.|| ||''hdr_err'' ||Out ||1 ||Active High. Indicates that there is an error in the IP header not enough no. of words|| ||''ip_addr_err'' ||Out ||1 ||Active High. Indicates that the destination IP address in the data frame does not match|| || || || ||with the IP address of the board.|| ||''frame_length_err'' ||Out ||1 ||Active High. Indicates that the frame length calculated from IP payload length does not || || || || ||match with the actual frame length.|| || || || ||In case of a control command, it might indicate that the frame length is not equal to 2 words (8 bytes).|| || || || ||In case of a data command, if the actual frame length is more than the calculated length, only the || || || || ||calculated length no.of words are stored and the rest are discarded. If the actual frame length is || || || || ||less, the write operation is considered incomplete and is canceled.|| [[BR]] __Table 3 - Command FIFO Interface__ ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| ||''cmd_sof'' ||Out ||1 ||Start-of-frame signal, indicating the first word of command descriptor|| ||''cmd_eof'' ||Out ||1 ||End-of-frame signal, indicating the last(second) word of command descriptor|| ||''cmd_data'' ||Out ||32 ||Command descriptor word|| ||''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.|| ||''cmd_full_flag'' ||In ||1 ||Active High. Indicates that the command FIFO is full and can not accept any commands|| [[BR]] __Table 4 - Memory Control Interface__ ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| ||''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|| ||''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|| ||''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. || || || || ||buf_wr_ack is sent as soon as buf_wr_req is detected by the memory control, i.e., the command descriptor generator || || || || ||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|| || || || ||the requested buffer space is not available.|| ||''buf_wr_ptr'' ||In ||16 ||Address at which the data would be written. This address will be inserted in the data command descriptor.|| ||''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 || || || || ||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 || || || || ||data write operation is ignored. ||''buf_eof'' ||Out ||1 ||End-of-frame for the app data to be stored|| ||''buf_wr_data'' ||Out ||32 ||App data word to be stored|| ||''buf_data_valid'' ||Out ||1 ||Active High. Indicates that the data word on buf_wr_data is valid|| ||''buf_wr_cancel'' ||Out ||1 ||Active High. Command descriptor generator can cancel a data write operation at any time, by setting this signal high.|| || || || ||A write operation starts when the buffer request is sent to the memory control and ends when eof is sent.|| [[BR]] __Table 5 - RMAP Processor Interface__ ||'''Signal Name''' ||'''In/Out'''||'''Width''' ||'''Description'''|| ||''rmap_sof'' ||Out ||1 ||Start-of-frame signal, indicating first word of RMAP descriptor/message|| ||''rmap_eof'' ||Out ||1 ||End-of-frame signal, indicating last word of RMAP descriptor/message|| ||''rmap_data'' ||Out ||32 ||RMAP descriptor data|| ||''rmap_wr_en'' ||Out ||1 ||Active High. Fifo write enable signal|| ||''rmap_fifo_full_flag'' ||In ||1 ||Fifo full flag|| [[BR]] [..]