Altera_Forum
Honored Contributor
15 years agoALTLVDS CoreClk with Odd Deserialization Factors
Hello.
I am trying to configure an instantiation of an FPD-Link transmitter using the ALTLVDS megafunction and am getting confused by one particular property. In table 5 of the user manual for ALTLVDS it states: "For example, if tx_inclock signal is connected to a 500 MHz input reference clock, and the parallel data rate is not 500 MHz, register the parallel data using the tx_coreclock signal that runs at the output serial data rate divided by the deserialization factor. this frequency matches the parallel data rate from the fpga core." I would take from this that Core Clock then is the clock that is used to clock the parallel data from the pre-register into the function block, as indicated in the diagram by the little DFF symbol clocked by tx_inclock. The problem is that whenever the deserializtion factor is odd CoreClk is half what it should be. E.g. If the data rate for each channel is 840mb/s with a deserialization factor of four then CoreClk must be 210MHz, and it is. But if I change the deserialization factor to 7 it becomes 84MHz, when it should be 168. If I enable the CoreClk output and simulate it, it is indeed running slower than my parallel data should supposedly be. While in my simulation with the pre-register connected to inclock there appears to be no data loss I don't really understand why, since surely CoreClk is clocking data in from THAT at half the rate it should be? Could someone please explain where i've gone wrong in my understanding of CoreClk and how it works?