【问题标题】:Using PLL to generate clock signal superior to 400Mhz on MAX10 FPGA在 MAX10 FPGA 上使用 PLL 产生优于 400Mhz 的时钟信号
【发布时间】:2020-07-28 15:29:43
【问题描述】:

我正在使用 10M50 FPGA 通过 MIPI-CSI2 从摄像头读取数据,但我在板上的时钟运行速度不够快。所以现在我正在尝试使用 PLL 来生成更快的时钟信号。

我正在使用以下代码来测试生成的时钟信号是否正确,方法是手动设置 v1 变量,以便我的 LED 每秒闪烁一次。在本例中,PLL(由 Quartus IP 目录中的 ALTPLL 向导生成)被设置为接收 100MHz 时钟信号,并且应该显示 400MHz 时钟信号,但是没有任何反应。

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;

我能够使用它来生成和测试高达 320MHz 的信号,但它似乎无法更高,尽管我没有找到任何文件说这是不可能的。 (我的资料主要是 10M50 用户指南和 Intel Max10 时钟和 PLL 用户指南)

我也尝试过级联使用 PLL,将 100 -> 200Mhz PLL 的输出时钟输入到 200 -> 400MHz PLL 但我得到了相同的结果,这意味着我的 LED 不会闪烁。

那么我是否缺少某些东西,或者我目前的电路板不可能产生这样的信号?

编辑:我用作参考的数据表: MAX10 Clocking and PLL 10M50 User Guide

【问题讨论】:

  • 这个问题在电子部分更常见。但我怀疑你会在那里得到相同的答案:通常 PLL 的最大频率在数据表中。如果它不在那里,我会非常惊讶。但是了解 FPGA 可能需要一段时间才能找到正确的数据表。
  • 10M 数据表表明 -8 速度等级部件应达到 402 MHz,但也指出性能可能会受到参考时钟抖动的限制。您的问题没有提供足够的信息,也似乎与编程无关。 (您可以预期第一个 PLL 的输出抖动超过第二个输入的抖动限制。请参阅数据表。)
  • @Oldfart 它应该在电子部分你是对的,对不起,这是我在这里的第一个问题。我在数据表中发现最大 VCO 频率为 1300MHz(我将在帖子中链接它)但我不知道这是否可用。
  • @user1155120 抱歉,我尽量简明扼要,你能告诉我你需要知道什么以便我编辑帖子吗?还是我应该在电子部分重新创建它?谢谢你们俩
  • 10M datasheet。 FPGA 板用户指南指定了 -6 速度等级(在器件部件号中)。 Si5338 datasheet。这个问题的正确位置可能是Electronics Stack Exchange

标签: vhdl clock intel-fpga


【解决方案1】:

您的设计是否受到时间限制?时间报告说什么?

也许不是 PLL,但结构本身的速度足够慢,可以在更高的频率下工作。你有一些 30 位比较器和一个 30 位加法器,以 400 Mhz 单时钟工作,这对 MAX10 来说是相当苛刻的。 您应该考虑增加加法器流水线,这将提高其频率性能,但它只会每 2 或 3 个或更多时钟周期产生一次结果,因此您将需要在其输出处增加一个锁存器。

至于比较器,如果您切换到 2 的幂作为限制,则可能根本不需要它们。将 v1 设置为 31 位值,并为 s_led0 使用 v1 的第 31 位,这将为您提供另一个分频比,但逻辑上要简单得多。而且您也不需要重置 v1 - 加法器会自动环绕它。

【讨论】:

    猜你喜欢
    • 2019-06-16
    • 2020-09-03
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多