gpt4 book ai didi

signals - Modelsim 信号声明问题

转载 作者:行者123 更新时间:2023-12-03 21:37:39 25 4
gpt4 key购买 nike

使用 Modelsim,我想测试一个代码,但一个信号始终未初始化。这里有一段代码用来解释 Modelsim 的问题:

-- Signal Declaration
signal shifter : std_logic_vector(0 to 6);
signal led_out_temp : std_logic;


process (reset_reset_n) is
begin
if reset_reset_n = '0' then
shifter <= (others => '0'); -- After reset_reset_n goes to '0' shifter is '0000000'
led_out_temp <= '0'; -- Always has the value 'U'
end if;
end process;

当我通过它时,我可以检查值,但即使在退出过程后,信号 “led_out_temp”是“U” .有人能告诉我为什么吗?

谢谢!

最佳答案

检查设计的两种可能方法

  • 编写一个测试平台,将 reset_reset_n 赋值为零
  • 在没有测试平台的情况下在 Modelsim 中仿真设计,并在运行仿真之前将 reset_reset_n 的值强制为零

  • 在您的尝试中移位器是否变为零?如果它也不会为零,那么您可能没有进入 if 循环。
    [编辑:包括示例测试平台格式]
    LIBRARY ieee;
    USE ieee.std_logic_1164.ALL;
    USE ieee.std_logic_unsigned.all;

    ENTITY test_tb IS
    END test_tb;

    ARCHITECTURE behavior OF test_tb IS

    -- Component Declaration for the Unit Under Test (UUT)
    COMPONENT name_of_your_design
    PORT(
    reset_reset_n : IN std_logic;
    input2 : IN std_logic
    output : OUT std_logic_vector(3 downto 0);
    );
    END COMPONENT;

    -- Signal initializations
    signal reset_reset_n_sig : std_logic := '0';
    signal input2_sig : std_logic := '0';
    signal output_sig : std_logic_vector(3 downto 0);

    BEGIN

    -- Port mapping
    instance_name: name_of_your_design PORT MAP (
    reset_reset_n => reset_reset_n_sig
    input2 => input2_sig,
    ouput => output_sig
    );

    -- Give your test inputs here
    process_to_give_test_inputs: process
    begin
    wait for 7 ns;
    reset_reset_n <='1';
    wait for 3 ns;
    reset_reset_n <='0';
    wait;
    end process;

    END;
    引用: https://vhdlguru.blogspot.com/2011/06/vhdl-code-for-4-tap-fir-filter.html
    谢谢:@morteza kavakebi

    关于signals - Modelsim 信号声明问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33274980/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com