Vhdl 在MAX10FPGA上用锁相环产生优于400Mhz的时钟信号
我使用10M50 FPGA通过MIPI-CSI2从摄像头读取数据,但我在板上的时钟运行速度不够快。所以现在我正试图用锁相环来产生更快的时钟信号 我正在使用以下代码测试生成的时钟信号是否正确,方法是手动设置v1变量,使我的led每秒闪烁一次。在此示例中,PLL(由Quartus IP目录中的ALTPLL向导生成)设置为接收100MHz时钟信号,并应显示400MHz时钟信号,但无任何变化Vhdl 在MAX10FPGA上用锁相环产生优于400Mhz的时钟信号,vhdl,clock,intel-fpga,Vhdl,Clock,Intel Fpga,我使用10M50 FPGA通过MIPI-CSI2从摄像头读取数据,但我在板上的时钟运行速度不够快。所以现在我正试图用锁相环来产生更快的时钟信号 我正在使用以下代码测试生成的时钟信号是否正确,方法是手动设置v1变量,使我的led每秒闪烁一次。在此示例中,PLL(由Quartus IP目录中的ALTPLL向导生成)设置为接收100MHz时钟信号,并应显示400MHz时钟信号,但无任何变化 library ieee; use ieee.std_logic_1164.all; use ieee.nume
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;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
图书馆altera_mf;
使用altera_mf.all;
--首次亮相实体--
实体测试是
港口(
CLK:标准逻辑中;
LED0:输出标准逻辑--“0”的LED亮起,“1”的LED熄灭
);
结束试验;
--首秀建筑--
测试的架构测试指示灯为
信号s_led0:std_逻辑:='1';
信号c0:std_逻辑;
组件pll400
端口(包括0:IN标准_逻辑:='0';
c0:输出标准逻辑
);
端部元件;
开始
clk1:pll400
端口图(包括K0=>CLK,
c0=>c0
);
p:过程(c0,s_led0)
变量v1:从0到80000000的整数范围:=0;
开始
如果c0'事件且c0='1',则
v1:=v1+1;
如果v1=400000000,则
s_led0您的设计时间是否已确定?时间报告怎么说
也许不是PLL,但这种结构本身的速度足够慢,可以在更高的频率下工作。你有一些30位比较器和一个30位加法器在400兆赫的单时钟下工作,这对MAX10来说是非常苛刻的。
你应该考虑增加加法器流水线,这将提升它的FRQ性能,但是它只会在每2个或3个或更多个时钟周期中产生一次结果,所以在它的输出端将需要一个额外的锁存器。p>
至于比较器,如果切换到2的幂作为限制,它们可能根本不需要。将v1设置为31位值,并将v1的第31位用于s_led0,这将为您提供另一个除法比,但逻辑上要简单得多。而且你也不需要重置v1,加法器会自动环绕它。这个问题在电子部分更容易理解。但我怀疑你会得到同样的答案:通常PLL的最大频率在数据表中。如果它不在里面,我会非常惊讶。但了解FPGA可能需要一段时间才能找到正确的数据表。10M数据表说-8速度级部分应达到402MHz,但也指出性能可能会受到参考时钟抖动的限制。您的问题没有提供足够的信息,也似乎与编程无关。(您可以预期第一个PLL的输出抖动超过第二个PLL输入的抖动限制。请参阅数据表。)@Oldfart它应该在电子部分您是对的,很抱歉,这是我这里的第一个问题。我在数据表中发现,VCO的最大频率为1300MHz(我将在帖子中链接),但我不知道这是否可用。@user1155120抱歉,我尽量简洁,你能告诉我你需要知道什么,以便我可以编辑帖子吗?或者我应该在电子部分重新创建它?谢谢你们两位,请看。《FPGA板用户指南》规定了-6速度等级(在设备零件号中)。这个问题的适当位置可能是。