Skip to content

Fixed excessive length of the s1 state

Jonathan Samuel Wilson requested to merge jsw/gbt-sc:fix-s1-length into master

The s1 state ("wait for idle finished") was unnecessarily lengthened. When a new command request was received during the s0 "wait for start" state, "offset_pos" was set to 0 before entering the s1 state, no matter how much of the IDLE byte had already been sent. The s1 state then sent 8 "1"s, so the last IDLE byte before a new packet could become as long as 14 "1"s.

Removing the "offset_pos := 0" from the s0 state still allowed the s1 state to produce an extra "1" if "offset_pos" was not even when entering the s1 state. The code for the s1 and s2 states has been modified to allow entry into those states from an odd "offset_pos" in order to fix this.

This code has been tested at Baylor U in a Zynq FPGA communicating with a GBT-SCA chip on a GBT-SCA mezzanine board built by U Minnesota.

Merge request reports