Forum Discussion
Altera_Forum
Honored Contributor
15 years agoLVDS Sampling Data
Hi all, I have on my board double data rate (DDR) LVDS bus samped by clock of 168Mhz. I sampled the LVDS bus using ALTDDIO mega function. The problem is that i have skew between clock and data...
Altera_Forum
Honored Contributor
15 years agoThe FPGA introduces uncertainty in its fabric. That uncertainty can cancel out when both the source and destination is inside the FPGA, so it can be a smaller number. When one clock is outside the FPGA, the uncertainty between that clock and the one in the FPGA is a little higher. To be honest, the time I looked at it, I was using a PLL. I just looked at a small test design I have, and I get the same uncertainty whether using a virtual clock or the FPGA clock. I would still argue it's good practice to do a virtual clock, but not wrong if you don't. (Lots of users don't do the virtual clock and are unaware of it, which is another reason I point it out.)
report_timing -setup -from fpga_clk will work if the only paths from fpga_clk are from the I/O. You will minimally also now see the paths from the input registers, which are clocked by fpga_clk, to registers in another domain. If fpga_clk feeds thousands of registers, then you might get thousands, or tens of thousands, of paths listed before you ever see the I/O. I always recommend creating a .tcl script that analyzes "things of interest", which always includes I/O interfaces. Just having: report_timing -setup -npaths 200 -detail full_path -from ext_clk -panel_name "LVDS Inputs||setup" report_timing -hold -npaths 200 -detail full_path -from ext_clk -panel_name "LVDS Inputs||hold" I don't run it all the time, but just to have it accessible in the project directory if I ever want to look at it again is useful.