Attention

This documentation is a work in progress. Expect to see errors and unfinished things.

chitchat chitchat_txrx_wrap

This document provides an extended description of the chitchat_txrx_wrap module and its ports.

Clocking

A total of 5 independent clock domains are supported; crossing between these domains is handled by internal synchronizers. The user need not drive all of these independently.

  • txclk - Clock domain used to drive user data in the tx* ports.

  • rxclk - Clock domain of rx* ports, on which return data is presented to the user.

  • lb_clk - ‘Register interface’ clock domain on which status information is provided.

  • gtx_tx_clk - Clock used for the (parallel) transmit channel of the serial transceiver.

  • gtx_rx_clk - Clock used for the (parallel) receive channel of the serial transceiver.

Transceiver connection

  • gtx_tx_d - Parallel data sent to the transmit side of the serial transceiver.

  • gtx_tx_k - Comma flag sent to the transmit side of the serial transceiver. While this

    2-bit signal can flag a comma in the lower and upper byte of gtx_tx_d, only
    the former is used. I.e., gtx_tx_k[1] is always 0.
    
  • gtx_rx_d - Incoming parallel data from the receiver side of the serial transceiver.

  • gtx_rx_k - Incoming comma flag from the receiver side of the serial transceiver. Only

    the LSB (least significant bit) will ever be non-zero.
    

Data flow

The chitchat_txrx_wrap module cannot transmit data at full-rate, as it takes several cycles to assemble a transmit packet and send it over the link. As a result, the input data stream must be presented at a low enough rate, if dropped data elements are to be avoided.

  • tx_transmit_en - Enables data transmission. Can be held high throughout.

  • tx_valid{0,1} - Qualifies tx_data{0,1} as valid and causes it to be latched internally and

    transmitted on the next packet.
    
  • rx_valid - Signals that valid return data is present in rx_data{0,1} and ready to be sampled

Status/Debug signals

All of the following qualify as status/debug signals and convey useful link information and statistics.

  • txrx_latency

  • rx_frame_counter

  • rx_protocol_ver

  • rx_gateware_type

  • rx_location

  • rx_rev_id

  • ccrx_fault

  • ccrx_fault_cnt

  • ccrx_los