You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vivado中Clocking Wizard生成时钟无法作为系统输入的解决问询

问题分析与解决方案

错误根源

你当前代码的核心问题是将Clocking Wizard的输出信号映射到了实体的输入端口mclk_i——VHDL中输入端口仅能从外部接收信号,不允许被内部模块赋值,这直接违反了端口方向规则,导致编译报错。

修正后的代码实现

我们需要通过内部信号承接Clocking Wizard生成的时钟,再将该信号分配给需要的输出端口和内部逻辑:

entity clk_generator is
   port(
      clk     : in  std_logic;    -- 100MHz输入时钟
      mclk_o  : out std_logic;    -- 22.579MHz输出时钟
      bclk    : out std_logic;    -- MCLK/8
      lrclk   : out std_logic     -- MCLK/64
   );
end clk_generator;

architecture Behavioral of clk_generator is
   -- 声明Clocking Wizard组件
   component clk_wiz_0
      port ( 
         mclk     : out std_logic;
         clk_in1  : in  std_logic
      );
   end component;

   -- 内部信号:承接Clocking Wizard生成的22.579MHz时钟
   signal mclk_internal : std_logic;
   -- 计数器信号
   signal bclk_counter  : integer range 0 to 7 := 0;
   signal lrclk_counter : integer range 0 to 63 := 0;
   
begin
   -- 例化Clocking Wizard,生成22.579MHz时钟
   clk_gen : clk_wiz_0
      port map(
         clk_in1 => clk,
         mclk    => mclk_internal
      );

   -- 将内部时钟输出到mclk_o端口
   mclk_o <= mclk_internal;

   -- 生成bclk(MCLK/8)
   process(mclk_internal)
   begin
      if rising_edge(mclk_internal) then
         if bclk_counter = 7 then
            bclk_counter <= 0;
            bclk <= not bclk;
         else
            bclk_counter <= bclk_counter + 1;
         end if;
      end if;
   end process;

   -- 生成lrclk(MCLK/64)
   process(mclk_internal)
   begin
      if rising_edge(mclk_internal) then
         if lrclk_counter = 63 then
            lrclk_counter <= 0;
            lrclk <= not lrclk;
         else
            lrclk_counter <= lrclk_counter + 1;
         end if;
      end if;
   end process;
end Behavioral;

关键说明

  1. 内部信号的作用:mclk_internal作为Clocking Wizard输出和内部逻辑的桥梁,既可以直接输出到mclk_o,也能作为后续时钟域逻辑(比如上升沿检测)的时钟源。
  2. 时钟域同步:所有基于22.579MHz的逻辑(包括计数器、上升沿检测)都必须在mclk_internal的时钟进程中实现,确保时序正确性。
  3. 端口清理:移除了原本多余的mclk_i输入端口,因为该时钟是内部生成的,无需外部输入。

内容的提问来源于stack exchange,提问作者Alvaro Suarez Menendez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:27:03