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

VHDL同步复位仿真失效:DREADY与acc_value始终为'X'求助

问题分析及解决方案

1. MVM模块代码问题

你的同步复位逻辑仅在时钟上升沿且RST为高时对acc_value和DREADY赋值,其余时刻无任何驱动操作:

  • 变量acc_value在进程内未初始化,初始状态为'X',若复位未触发则始终保持未定义。
  • 输出信号DREADY仅在复位时被赋值为'0',非复位阶段无驱动,会维持初始的'X'状态。

修改后的MVM模块代码:

entity MVM is
  port (
    CLK:        IN  std_logic;
    RST:        IN  std_logic;
    DREADY:     OUT std_logic
  );
end entity MVM;

architecture base of MVM is
begin
  process(CLK)
    variable acc_value : signed(15 downto 0) := (others => '0'); -- 初始化变量
  begin
    if rising_edge(CLK) then   
      if RST = '1' then
        acc_value := (others => '0'); -- 复位
        DREADY <= '0';
      else
        -- 非复位阶段保证DREADY有驱动,可根据业务需求修改赋值
        DREADY <= '1';
        -- 此处可添加acc_value的业务更新逻辑
      end if;
    end if;
  end process;
end base;
  • 给acc_value添加初始赋值,避免初始未定义状态。
  • 新增else分支,确保非复位阶段DREADY持续被驱动,不会停留在'X'。

2. 测试平台代码问题

测试平台的时钟和复位时序存在两处关键问题:

  • 时钟信号CLK初始状态为'X',第一次从'X'跳转到'1'时,部分仿真器不会识别为有效上升沿,导致复位逻辑未触发。
  • 时钟仅手动翻转两次,无持续脉冲,无法验证非复位状态的逻辑运行。

修改后的测试平台代码:

entity tb_MVM is
end tb_MVM;

architecture TEST of tb_MVM is
  component MVM
    port (
      CLK:        IN  std_logic;
      RST:        IN  std_logic;
      DREADY:     OUT std_logic
    );
  end component;
    
  signal CLK:        std_logic := '0'; -- 初始化为低电平
  signal RST:        std_logic := '0';
  signal DREADY:     std_logic;

begin
  uut: MVM Port Map(
    CLK => CLK,
    RST => RST,
    DREADY => DREADY
  );
           
  -- 生成持续时钟,周期200ns
  clk_gen: process
  begin
    loop
      CLK <= not CLK;
      wait for 100ns;
    end loop;
  end process;
  
  -- 复位及测试流程
  tb: process    
  begin
    RST <= '1'; -- 复位置高
    wait for 200ns; -- 等待两个时钟周期,确保复位触发
    RST <= '0'; -- 释放复位
    wait; -- 持续仿真
  end process;   
end TEST;
  • 时钟初始化为'0',通过循环持续翻转,保证有效上升沿被仿真器识别。
  • 复位先置高,等待足够时钟周期后释放,确保复位逻辑被可靠触发。

仿真验证要点

  • 复位阶段:时钟上升沿触发时,acc_value会被置为0,DREADY变为0。
  • 复位释放后:DREADY会按照else分支的赋值更新(示例为1),acc_value可根据后续业务逻辑完成更新。

内容的提问来源于stack exchange,提问作者hajo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:10:29