Altera_Forum
Honored Contributor
16 years agoQuestions about using LVDS on Stratix III
Hello,
I am using Terasic DE3 board which has Stratix III (EP3SL340H1152C3) on it. The compilation tool I'm using is Quartus II 9.0 I wish to use the HSTC interface to communicate between FPGA's at the maximum bandwidth possible. I started by trying to communicate between the boards at a relatively low frequency and tried various configurations, but all of them failed. I have several questions regarding LVDS; I am new to LVDS and have started programming FPGA's for three months, so I have little knowledge of LVDS or high speed I/O. 1. What is the (ideal) maximum BW I can get for an interface that has 30 TX pairs of differential signals, 9 of which support true LVDS transmit and 21 are emulated LVDS with termination resistors (LVDS_E_1R) ? 2. According to Stratix III handbook volume 2, table 1-40, the maximum output toggle rate for LVDS_E_1R is 100MHz for class 3, while the single-ended I/O standards show around 300MHz. So, if the data rate is lower for the differential scheme, then why/when should we use LVDS_E_1R? 3. Since I am not familiar with high-speed I/O, I decided to use the ALTLVDS megafunction. Is it correct to use the tx_outclock of the transmitter as the reference input clock (rx_inclock) at the receiver? 4. I started by testing HSTC D interface. The DE3 handbook shows that the clock output pins for HSTC D are at bank 8c (PLL_T1_CLKOUT3, PLL_T1_CLKOUT4 as a differential pair, PLL_T1_CLKOUTn, PLL_T1_CLKOUTp as another pair) . It seems these pins don't support true LVDS transmission, so I chose I/O standard to be LVDS_E_1R. I configured the transmitter to have two channels and deserialization factor of 4, input clock frequency 50MHz, 200Mbps datarate, tx_outclock with divide factor 4. I tried attaching to either of the clocks, but it fails for both cases. The fitter gives an error : "Error: SERDES transmitter lvds_t:lvds_t_inst|altlvds_tx:altlvds_tx_component|lvds_t_lvds_tx:auto_generated|outclock_tx must drive one output pin". If I try to use one of the data pins for clock output, the fitter compiles okay, but then at the receiver side, since none of the data pins are attached to a dedicated clock input pin, it won't compile. Is there any way to this get around this? 5. Since the error is in the clock output pins, I also tried to using an external PLL. I used the left-right PLL to clock the transmitter, but the rest of the configuration is confusing. What are the clocks that need to be created and what are the frequency and phases supposed to be? Thank you.