我正在开发一个项目(VHDL)。我已经生成了顶级模块的测试平台,其中包含if (btnHold1.isEnabled()==false && btnHold2.isEnabled()==false && event.getSource()==btnRespin)
{
counter = 0;
counter2 = 0;
timer1.stop();
timer2.stop();
counter3 = 0;
timer3.start();
btnHold3.setEnabled(false);
btnRespin.setEnabled(false);
}
else if (btnHold1.isEnabled()==false && btnHold2.isEnabled()==false)
{
counter = 0;
counter2 = 0;
timer1.stop();
timer2.stop();
btnHold1.setEnabled(false);
btnHold2.setEnabled(false);
}
和clk
信号。当我在测试台的过程中不使用复位时,我的模拟器会一直显示时钟信号,最长可达1000 ns(此处需要)但是一旦我引入复位,它的长度就会减少到160纳秒。我无法理解这种行为。
这是第一个测试平台:
reset
在我的第二个测试平台中,我只是在LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY toplevel_tb1 IS
END toplevel_tb1;
ARCHITECTURE behavior OF toplevel_tb1 IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT pc_ins_cu_top
PORT(
clk : IN std_logic;
reset : IN std_logic
);
END COMPONENT;
--Inputs
signal clk : std_logic := '0';
signal reset : std_logic := '1';
-- Clock period definitions
constant clk_period : time := 10 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: pc_ins_cu_top PORT MAP (
clk => clk,
reset => reset
);
-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
--reset <= '0';
wait for clk_period*100;
-- insert stimulus here
wait;
end process;
END;
reset <= '0'
的行