我正在 Vivado 上使用 FPGA 做一个项目。
我的 FPGA 有 100MHz 时钟,但我的项目需要 22.57 MHz 时钟,所以我使用了时钟向导。
我的问题是,由于 22.5 Mhz 时钟是时钟向导的输出,我无法将其用作系统上的输入,因此我无法检查上升沿等。
我可以通过什么方式来实现它?
提前致谢,这是我到目前为止的代码。
entity clk_generator is
port(
clk : in std_logic; --(100 MHz)
mclk_i : in std_logic; --(22.579 MHz)
mclk_o : out std_logic; --(22.579 MHz)
bclk : out std_logic; --MCLK/8
lrclk : out std_logic --SCLK/64
);
end clk_generator;
architecture Behavioral of clk_generator is
component clk_wiz_0
port (
mclk : out std_logic;
clk_in1 : in std_logic
);
end component;
signal bclk_couter: integer := 0;
signal lrclk_couter : integer := 0;
begin
clk_gen : clk_wiz_0
port map(
clk_in1 => clk,
mclk => mclk_i --IM GETTING THE ERROR HERE
);
我需要使用 mclk 信号作为我的系统的输入
好吧,显然我刚刚找到了一个解决方案,我刚刚创建了一个名为 mclk 的信号而不是输入信号,并且它工作正常。
这是代码:
entity clk_generator is
port(
clk : in std_logic; --(100 MHz)
mclk_o : out std_logic; --(22.579 MHz)
bclk : out std_logic; --MCLK/8
lrclk : out std_logic --SCLK/64
);
end clk_generator;
architecture Behavioral of clk_generator is
component clk_wiz_0
port (
mclk : out std_logic;
clk_in1 : in std_logic
);
end component;
signal mclk_i : std_logic;
signal bclk_couter: integer := 0;
signal lrclk_couter : integer := 0;
begin
clk_gen : clk_wiz_0
port map(
clk_in1 => clk,
mclk => mclk_i
);
希望对您有用。