英特尔 MAX 10 DDR 输出

Intel MAX 10 DDR output

我想通过DDR寄存器输出时钟信号。目标 FPGA 是 Intel MAX 10 (10M16DAU324I7G) FPGA。我实例化了一个 ALTDDIO_OUT 组件,如下面的代码所示。然而,输出引脚永久保持低电平。时钟是 运行,R15 中的引脚。 任何人都可以提示我的问题可能是什么吗?

library ieee;
use ieee.std_logic_1164.all;

library altera_mf;
use altera_mf.altera_mf_components.all;

entity ddr_test
    port(
        clk_in  : in  std_logic;        
        clk_out : out std_logic
    );
end entity ddr_test;

architecture rtl of ddr_test is
    signal s_clk : std_logic;
begin
    s_clk <= clk_in; --omitted the global clock network for simplicity

    i_ODDR : component ALTDDIO_OUT
        generic map(
            width => 1
        )
        port(
            datain_h   => "1",
            datain_l   => "0",
            outclock   => s_clk,
            dataout(0) => clk_out
        );
end architecture rtl;

ALTDDIO_OUT 原语的直接实例化似乎无法在选定的 FPGA and/or 工具链(MAX 10、Quartus Prime 18.1)上可靠地工作。 解决方案是使用 DDR 寄存器输出生成带有 MegaWizard GPIO Lite 英特尔 FPGA IP 的 IP 核。