Altera_Forum
Honored Contributor
10 years agoWeird LVDS output assignment error
I have a 14-bit LVDS output feeding a DAC samples. The output assignments being used have been used in several other designs (I exported the assignments and imported them into a new project).
Recently, I added a MUX which selects the output value based on whether the clock synchronous to the output samples is high or low. After adding this MUX, I started to get two errors regarding the LVDS output assignments: 1) Pin <name> is assigned to location <name> and pin <name> is assigned to location <name>. These two pins form a differential pair. However, these two locations do not belong to the same differential pair. and 2) Error: can't place differentialI/O negative pin at a differential I/O positive locationThese two error messages refer to only 2 bits of the LVDS output driver (the first and last pins of the bus.) If I remove the MUX from the design and hard code the output to one of the possible sample sources, no error occurs. If I add the MUX back selecting between the two sample sources, I get the errors. If I keep the MUX but hard code one of the selections to a specific value, I do not get the error. From the error (1) it appears as though Quartus mistakenly believes that the output pins (named HSTC_TX[0] and HSTC_TX[13]) are part of a differential pair, when they are not. I am not sure why it would assume this, since the assignments explicitly shows the correct LVDS_E_1R output pairs as HSTC_TX[0](n) and HSTC_TX[13](n). I believe that (2) is a result of it trying to mistakenly choose HSTC_TX[13] as the negative pair of HSTC_TX[0]. I am honestly confused since the exact same assignments have worked in other designs. I have checked the QSF file line by line, and it appears to be correct. Why would the logic synthesized be affecting the fitter like this?