Forum Discussion
I’m seeing the same issue, and I’ll report it to the tool specialists for further investigation. This problem seems to affect the ALTPLL IP across different devices (MAX 10 and Cyclone IV).
Workaround:
Please use an earlier version of Quartus to instantiate the IP, then upgrade the design to Quartus 25.1 Standard Edition on Windows OS.
Alternatively, the IP instantiation GUI works correctly on Linux OS using Quartus v25.1std(tested with SUSE).
For reference, I’ve tested this using Quartus 23.1 Standard Edition on Windows 11, and it works as expected.
Regards,
Richard Tan
- bkantor14 days ago
New Contributor
Hi Richard,
First thank you for confirming the issue. I'm glad it has been noted, but I don't think it's isolated to release 25.1. Perhaps it's bad luck, but I have not been able to get reliable operation with it for a Max 10M08SAE in Quartus 17.1, 23.1 or 25.1. I've tried two different systems... 1x AMD, 1x Intel, both running Windows 11 with 4k monitors. The behavior changes between releases, but every instance involves a scrambling of the screen due to GUI sizing and overlayed text. Unlike 25.1, 23.1 was marginally readable.
I did read about issues with high-resolution displays which lead me to testing the compatibility settings and hi-res override modes. This leads me to the reason I believe the issue has been there awhile... the graphics compatibility settings changes the Megafunction behavior. In some modes it refused to open, while in others it would open and crash. The only setting that allowed it to open was no setting. There isn't a great reason why changing this should cause such a dramatic shift in behavior.
I would appreciate it if Altera could post an app note on how to instantiate a basic PLL without the Megafunction... a bare minimum implementation (1 clock in, 1 clock out). I don't mind configuring a slew of parameters, I just want something that works and I can modify without worrying about the software version I have installed or having to jump between versions.
Thanks!
- FvM13 days ago
Super Contributor
Hi,
VHDL example, inclock 16 MHz, outclock 50 MHzlibrary ieee; use ieee.std_logic_1164.all; entity plltest_min is port ( inclk0 : in std_logic := '0'; c0 : out std_logic ); END plltest_min; architecture inst of plltest_min is component altpll generic ( bandwidth_type : string; clk0_divide_by : natural; clk0_duty_cycle : natural; clk0_multiply_by : natural; clk0_phase_shift : string; inclk0_input_frequency : natural; operation_mode : string; pll_type : string; compensate_clock : string := "CLK0"; self_reset_on_loss_lock : string ); port ( inclk : in std_logic_vector (0 downto 0) := (others => '0'); areset : in std_logic := '0'; clk : out std_logic_vector (0 downto 0); locked : out std_logic ); end component; begin mypll : altpll generic map ( bandwidth_type => "AUTO", clk0_divide_by => 16, clk0_duty_cycle => 50, clk0_multiply_by => 50, clk0_phase_shift => "0", inclk0_input_frequency => 62500, -- 16 MHz operation_mode => "NORMAL", pll_type => "AUTO", self_reset_on_loss_lock => "ON" ) port map ( inclk(0) => inclk0, clk(0) => c0 ); end inst;Verilog example
module vpll_min ( inclk0, c0); input inclk0; output c0; wire [4:0] clk; assign c0 = clk[0]; altpll altpll_component ( .areset (1'b0), .inclk ({1'b0, inclk0}), .locked (), .clk (clk)); defparam altpll_component.bandwidth_type = "AUTO", altpll_component.clk0_divide_by = 16, altpll_component.clk0_duty_cycle = 50, altpll_component.clk0_multiply_by = 50, altpll_component.compensate_clock = "CLK0", altpll_component.inclk0_input_frequency = 62500, altpll_component.operation_mode = "NORMAL", altpll_component.pll_type = "AUTO", altpll_component.self_reset_on_loss_lock = "OFF", altpll_component.width_clock = 5; endmoduleRegards
Frank- drbarryh12 days ago
Occasional Contributor
Thanks Frank, That is very helpful, In my case i need to instance the ALT_PLL with all four of the clocks enabled in System Verilog (or Verilog). I would like to do that using the 'Set Frequency option' method as well and not the multiply / divide by method. With the following setup: The PLL Input frequency is 25 MHz, then i need to set the PLL output clocks c0 to c3 as follows:
c0 -> 100 MHz
c1 -> 5 MHz
c2 -> 50 MHz
c3 -> 125 MHz
Can you please provide me with an instantiation template as you did for the previous case ?
Thanks very much,
Barry
- drbarryh12 days ago
Occasional Contributor
Good question ! Thanks for asking. I was going to ask that as my next question.
- drbarryh18 days ago
Occasional Contributor
Hi Richard, thanks very much for trying this out and presenting me with a solution! I will install Quartus 24.1 standard edition and see if i can generate the ALT PLL IP in that version. As you say i could then add that IP to my 25.1 project and try to upgrade it. OR would it be better option to use 24.1 Standard edition. Do you think that might be more stable for MAX10 devices ?
I have had a lot of trouble trying to install QUARTUS standard edition 25.1 on UBUNTU 24.04 LTS. In fact its just fails miserably and i am not able to run Quartus at all even after the installer says it has installed Quartus 25.1 successfully! It hadn't.... that is another of my active threads how to resolve that problem. Maybe again i will try 24.1 and that might be OK? What a pain though .... the docs say UBUNTU 24.04 LTS is a supported OS....but not for me so far !!
Thanks,
Barry