检查测试平台中模拟时钟的上升沿

时间:2017-05-10 23:59:56

标签: vhdl

我试图在测试台上的时钟上升沿做事件而且正常方法不起作用。似乎发生的事情是它无法评估语句所以永远不会进展,这是有道理的,因为它试图与时钟信号同时完成上升沿检查......我想...

我是否需要将do_stuff处理逻辑放在单独的实例中并将时钟信号输入其中?

为了简洁起见,本例除去了所有实际的UUT信号,实际测试逻辑和组件本身,同时仍然突出了基本问题。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
use ieee.math_real.all;

entity tb is
end tb;

architecture Behavioral of tb is

constant clk_period : time := 10 ns; -- 100 MHz clock
signal s_clk : std_logic := '0';
signal i : integer := 0;

begin

    ref_clk : process
    begin
        s_clk <= '0';
        wait for clk_period/2;
        s_clk <= '1';
        wait for clk_period/2;
    end process ref_clk;

    do_stuff : process
    begin  
        if(rising_edge(s_clk)) then
            if(i < 20) then
                i <= i + 1;
            end if;
        end if;
    end process do_stuff;

end Behavioral;

0 个答案:

没有答案