onnecting the F-Tile Reference and System PLL Clock IP out_coreclk_#i port to an IOPLL FPGA IP
Hello Intel forums,
I'm trying to connect a out_coreclk from an F-tile Reference and System PLL Clock IP to an IOPLL. I understand that I cannot do this directly, so I'm following the workaround described here:
https://www.intel.com/content/www/us/en/support/programmable/articles/000098971.html
Here is my code:
clocko_blocko : block signal half_core : std_logic; component clk_ctrl is port ( inclk : in std_logic := 'X'; -- clk clock_div1x : out std_logic -- clk ); end component clk_ctrl; component pll is port ( refclk : in std_logic := 'X'; -- clk locked : out std_logic; -- export rst : in std_logic := 'X'; -- reset outclk_0 : out std_logic -- clk ); end component pll; signal half_core_iopll_ref : std_logic; signal source : std_logic; begin proc_halver : process(coreclk_feb) begin if rising_edge(coreclk_feb) then half_core <= not half_core; end if; end process proc_halver; clctrl : component clk_ctrl port map ( inclk => half_core, clock_div1x => half_core_iopll_ref ); ipll : component pll port map ( refclk => half_core_iopll_ref, locked => open, rst => rst, outclk_0 => clk_320 ); end block clocko_blocko;
Unfortunately. the pll never locks. Using a firmware module, I've measured the frequency of "coreclk_feb", "half_core", and "half_core_iopll_ref" and they all have correct values, but "clk_320" has a nonsensical value.
Are there particular settings needed for the Clock Control FPGA IP buffer and IOPLL FPGA IP that are not covered in the linked post? My IOPLL is set to double the input frequency to compensate for the division in the "proc_halver" process, is that a problem?
I've tried this in Quartus 23.4 and 24.3.1
Cheers,
Sam