我有这个信号应该为零,直到另一个信号 Start = 0。我怎样才能做到这一点?以下是相关代码:
din<=0;
wait until falling_edge(start);
for i in 0 to 63 loop
wait until clk = '1' and clk'event;
if i = 0 then
Start <= '1','0' after clk_period;
end if;
if (i < 24) then
din <= 255;
elsif (i > 40) then
din <= 255;
else
din <= 0;
end if;
end loop;
wait;
我想我可以让 din = 0 直到开始的下降沿,但它在开始的上升沿停止。我想在 start = 0 时开始读取 din 值。在此之前 din = 0。
这是一张照片:
编辑:实际上我让它从正确的信号值开始,但 dout 值总是有一个不必要的中间值。在这种情况下,它是 78450。我知道这与测试台代码有关,但我无法让它在正确的时间计算正确的值。可以对下面的代码进行哪些更改以摆脱中间值?
din<=0;
for i in 0 to 63 loop
wait until clk = '1' and clk'event;
if i = 0 then
Start <= '1','0' after clk_period;
elsif (i < 24) then
din <= 255;
elsif (i > 40) then
din <= 255;
else
din <= 0;
end if;
end loop;