我有一个触发器,它使用clk输入信号来处理其他信号。这意味着,我没有使用系统的时钟既不是输入。因此,当我这样做时:
architecture sampler_a of sampler_e is
signal S0_s : std_logic := '0';
begin
-- In my block this is not only a not. I put this to simplify things.
S0_s <= not(S0_i);
S0_o <= S0_s;
process(S0_i)
begin
--Also with rising edge does not work
if (S0_s'event and S0_s= '1') then
BitReady_o <= '1';
end if;
end process;
end sampler_a;
BitReady在模拟中没有变化(在modelsim中)。这里std_logic的使用是否不正确? 请注意,我不想生成一个时钟周期宽的脉冲,因为我的电路以异步方式工作。
答案 0 :(得分:2)
该过程仅对S0_i
敏感,但仅对S0_s
上的事件进行测试(这些事件永远不会与S0_i
事件处于相同的增量周期内)。因此,这个过程永远不会做任何事情。
将其敏感度列表更改为S0_s
,如果应该有效。
但是,正如目前所写,BitReady_o
成为'1'
后,无法将其返回'0'
。