我正在创建一个基于 Lattice Mach Xo2 和 Lattice Diamond 的项目。我阅读了文档,但我仍然对内部时钟的使用感到困惑。我想使用 133 MHz 内部时钟。
在互联网上找到的示例导致了这个基本代码:
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library machxo2;
use machxo2.all;
entity main_clock is
port (stdby : in std_logic;
clock : out std_logic
);
end main_clock;
architecture arch of main_clock is
signal osc_int_c : std_logic;
component OSCH
-- synthesis translate_off
generic(NOM_FREQ: string := "133.0");
-- synthesis translate_on
port(STDBY : IN std_logic;
OSC : OUT std_logic
);
end component;
begin
clock <= osc_int_c;
m_clock: OSCH
-- synthesis translate_off
generic map(NOM_FREQ => "133.0")
-- synthesis translate_on
port map(STDBY => stdby,
OSC => osc_int_c
);
在电子表格视图 > Timing Preference 中配置时钟:osc_int_c 为 133 MHz。我的配置
但我发现了这个错误:
错误 - osc_int_c 不匹配设计中的时钟网络。
我认为我的时钟声明完全错误,但我不明白该怎么做。Lattice Diamond 中的时钟配置是否可以用于我的顶级输入?我没有外部石英。