时钟向导 Vivado VHDL

问题描述 投票:0回答:1

我正在 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 信号作为我的系统的输入

vhdl
1个回答
0
投票

好吧,显然我刚刚找到了一个解决方案,我刚刚创建了一个名为 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   
    
   
    );

希望对您有用。

© www.soinside.com 2019 - 2024. All rights reserved.