if(rising_edge(clk)) then
count := count + 1;
if count = 3 then
enable <= 1;
elsif count = 6 then
enable <= 0;
count := 0;
end if;
end if;
if enable = 0 then
a0i <= a_0;
boi <= b_0;
end if;
if enable = 1 then
a0i <= a_1;
boi <= b_1;
end if;
除count之外的所有信号。一旦enable变为0或1,a0i和boi的值应该立即响应。我尝试使用该变量。但它不能让我在这个过程中使用。 I am getting the o/p as this. How ever I want to change the input as soon as enable signal change.如何不定期更改信号值?
您是否为'enable'和'count'设置了默认值?请发布完整的流程块。注意'enable'会被转换为一个寄存器,所以在比较和设置之间有一个延迟值。此外,启用的更改不能在同一个周期中进行评估,因为这是一个信号。 – Paebbels 2014-12-02 13:58:07
从你的仿真波形来看,我觉得你没有在你的灵敏度列表中包含'enable','a_0','b_0','a_1'和'b_1',但我无法确定,因为你没有没有发布完整的例子。因为你在'rising_edge(clk)'之外测试了它们的值,所以需要包含它们。另外,您可以使用'else'而不是''enable = 0'的单独测试。 – QuantumRipple 2014-12-02 16:33:30