Я использую 10M50 FPGA для чтения данных с камеры через MIPI-CSI2, но часы на плате не могут работать достаточно быстро. Поэтому сейчас я пытаюсь использовать PLL для генерации более быстрого тактового сигнала.
Я использую следующий код для проверки правильности генерируемого тактового сигнала, вручную установив переменную v1, чтобы мой светодиод мигал каждую секунду. В этом примере PLL (созданный мастером ALTPLL из каталога IP Quartus) настроен на прием тактового сигнала 100 МГц и должен отображать тактовый сигнал 400 МГц, однако ничего не происходит.
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
LIBRARY altera_mf;
USE altera_mf.all;
-- debut entity --
entity test is
port(
CLK : in std_logic;
LED0 : out std_logic -- leds are ON for '0' and OFF for '1'
);
end test;
-- debut architecture --
architecture test_led of test is
signal s_led0 : std_logic :='1';
signal c0 : std_logic;
component pll400
port( inclk0 : IN STD_LOGIC := '0';
c0 : OUT STD_LOGIC
);
end component;
begin
clk1:pll400
port map(inclk0 => CLK,
c0 => c0
);
p:process(c0,s_led0)
variable v1 : integer range 0 to 800000000 :=0;
begin
if c0'event and c0 = '1' then
v1 := v1 + 1;
if v1 = 400000000 then
s_led0 <='0';
end if;
if v1 = 800000000 then
s_led0 <='1';
v1 := 0;
end if;
end if;
LED0 <= s_led0;
end process;
end test_led;
Я смог использовать это для генерации и тестирования сигнала до 320 МГц, но, похоже, он не может go выше, хотя я не нашел ни одной документации, подтверждающей, что это было невозможно. (мои источники - это в основном руководство пользователя 10M50 и руководство пользователя Intel Max10 Clocking и PLL)
Я также пытался использовать PLL в каскаде, вводя выходной тактовый сигнал 100 -> 200 МГц PLL в 200 -> PLL на 400 МГц, но у меня был тот же результат, что означает, что мой светодиод не будет мигать.
Так что, я чего-то упускаю или невозможно сгенерировать такой сигнал с моей текущей платы?
Редактировать: таблица данных, которую я использую в качестве справочной информации: MAX10 Clocking и PLL 10M50 Руководство пользователя