Hold time violations in ALTLVDS_RX with 300 MHz input clock
We are using ALTLVDS_RX to receive high-speed serial data in our design. We have been successfully using this design with 400 MHz input clock (800 Mbps) for a while.
We are now trying to use the same design with 300 MHz input clock (600 Mbps) but are seeing sporadic CRC errors in out data.
The timing analysis shows no problems with 400 MHz input clock, but shows huge hold time violations when using 300 MHz input clock. We were able to replicate this behavior with a completely empty project which only contains a single ALTLVDS_RX.
I have attached this simple project. Compiling the design with Quartus Prime 18.0.0 Build 614 04/24/2018 SJ Standard Edition will result in huge hold time violations within ALTLVDS_RX.
You can modify the design for 400 MHz
* Reconfigure ALTLVDS_RX with 800 Mbps input data rate and 400 MHz input clock rate
* Change clock period in SDC file to 2.000 ns
Can someone explain the hold time violations with 300 MHz input clock?