Код:
signal acc: std_logic_vector (23 downto 0);
signal clk300: std_logic;
signal clkdivmy: std_logic_vector (1 downto 0);
...
U00 : pll4x2
port map( -- for Altera DE1
inclk0 => CLOCK_50, -- 50 MHz external
c0=>clk300,
-- c0 => clk21m, -- 21.43MHz internal (50*3/7)
-- c1 => memclk, -- 85.72MHz = 21.43MHz x 4
-- c2 => pMemClk, -- 85.72MHz external
locked => lock_n
);
process(clk300)
begin
if (clk300'event and clk300 = '1') then
acc <= acc + 4804384;
end if;
end process;
memclk <= acc(23);
pMemClk<=memclk;
process(memclk)
begin
if (memclk'event and memclk = '1') then
clkdivmy <= clkdivmy + 1;
end if;
end process;
clk21m<=clkdivmy(1);
Можно еще получше подобрать базовую частоту (вместо 300 МГц), чтобы результирующий клок был ближе к меандру, но особо это не будет заметно