When will the assertion of RX_GOOD_FRAME/RX_BAD_FRAME occur with respect to the de-assertion of RX_DATA_VALID?
When will the assertion of RX_GOOD_FRAME/RX_BAD_FRAME occur with respect to the assertion of RX_DATA_VALID for the subsequent frame?
1. Assertion of the RX_GOOD_FRAME/RX_BAD_FRAME strobe relative to the assertion of RX_DATA_VALID in Full Duplex Mode
This depends upon both the frame type and the GEMAC configuration. Three possible cases should be considered:
- Case A: FCS is NOT passed in-band
- Case B: FCS is passed in-band
- Case C: No data exists in the Data/Padding field
In all three cases, the RX_GOOD_FRAME/RX_BAD_FRAME strobe is asserted immediately after the last byte of the FCS field occurs on RX_DATA_VALID[7:0].
Case A: FCS is NOT Passed In-Band
The first diagram illustrates the normal case in which FCS is not passed in-band, and no padding is received. A gap of 4 clocks will always exist, as shown below:
Case B: FCS is Passed In-Band
The second diagram illustrates the same type of frame, but the GEMAC is now configured to pass the FCS field in-band. The falling edge of RX_DATA_VALID will always coincide with the rising edge of either the GOOD or BAD strobe:
Case C: No Data Exists In the Data/Padding Field
The third diagram illustrates the reason that the maximum possible number of clocks between the signals is 50. This is only possible when no data bytes are present in the Data/Padding field. (The frame must be padded by 46 bytes to the meet the minimum frame size, and the minimum of 4 idle bytes must be added.)
2. De-assertion of RX_GOOD_FRAME/RX_BAD_FRAME with respect to the assertion of RX_DATA_VALID for the subsequent frame
Legally, a minimum of 4 clocks should always exist. IEEE specifications state that a minimum of 4 idle bytes must be presented to the MAC receiver, along with a minimum of 1 preamble byte (the Start-of-Frame-Delimiter).
If the network is behaving according to the specifications, you may assume that a minimum of 4 clocks exists.