Altera_Forum
Honored Contributor
9 years agoCyclone 5 custom board PLL issues
I created a board for cyclone 5 soc 5CSEBA5U19. The design behaves in a strange way.
(hardware design) The JTAG chain has the HPS then the FPGA in series, like in DE1-SOC eval board. The FPGA and the ARM can be detected successfully on Quartus. I used EPCQ128 with the FPGA and SDCARD with the ARM hps. The FPGA can be programmed with SOF and JIC. The ARM can boot successfully from the SDCARD an I could boot the prebuilt linux that comes with the SOCEDS. The problem is the in PLLs of the FPGA. I cannot make them work. For ex, we have an input clk of 50MHz, lvds on Bank 8A. Another 80 MHz lvds clock on bank 4A. When I use PLLs on these clocks to generate other values, like 25MHz from 50Mhz and 40Mhz from 80 MHz, no output clock is generated from any PLL. The lock signal is low. IF I use two PLLs with different settings with 50Mhz clock (The 50Mhz is input to two different PLLs), one PLL works, the lock signal is raised and the output clock is generated. I verify these signals using GPIOs and Oscilloscope. I also use Signal tap. BUT the second one does not work. Another working scenario is when I use the above two PLLs with the 50Mhz and the 80Mhz and use one LVDS_RX component. The first two plls work and their output clocks are generated successfully and their lock signals are raised. but the LVDS_RX component does not work (it rx_lock is zero and its rx_outclk is not generated). If I remove the LVDS_RX, the first two PLLs don't work again. I tried different scenarios for the reset for the PLLs. I used a block that checks the lock signal. If the lock signal is low, it resets the PLL for few milliseconds and then de-asserts the reset signal and wait for 100ms and then again. That block works with the input clk of the corresponding PLL. note: FOR any input clk, if I use them directly without PLLs, they work, and I can see them on the oscilloscope when I output them on GPIOs . What would be the problem? Thanks