问题描述
我想通过 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 和/或工具链(MAX 10、Quartus Prime 18.1)上似乎不能可靠地工作。 解决方案是使用 DDR 寄存器输出生成具有 MegaWizard GPIO Lite Intel FPGA IP 的 IP 核。