我正在尝试运行一个简单的计数器(v_bincount
),从0开始到s_saxis_tlast
变高的时间。当s_saxis_tuser_in
为高时,它开始计数。它从0开始,但计数器的值在一个时钟周期内保持为0,即使v_bincount
是共享变量而不是信号。
p_count: process(clk)
begin
if (rising_edge (clk)) then
if (s_saxis_tvalid_in = '1')and (s_saxis_tready_out = '1') then
if(s_saxis_tuser_in ='1') then
v_bincount1 := 0;
v_idcount1 := 0;
else
if (s_saxis_tlast_in = '0') then
v_bincount1 := v_bincount1 + 1;
else
v_bincount1 := 0;
v_idcount1 := v_idcount1 + 1;
end if;
end if;
else
v_bincount1 := 0;
v_idcount1 := 0;
end if;
end if;
end process p_count;