本帖最后由 情场探花 于 2012-5-2 09:26 编辑
我用VHDL写这样的代码:
SIGNAL cnt1K RANGE 1 TO 9999;
IF (RISING_EDGE(clk)) THEN
cnt1K <= cnt1K +1;
IF (cnt1K > 1000) THEN
cnt1K <= 1;
END IF;
END IF;
另外还要代码负责把cnt1K输送到计算机上,此处略去。
我认为:这样cnt1K会在变成1001后立刻变成1,因此计算机只能读到从1到1000的数
然而,实际读到的却是1, 2, ..., 999, 1000, 1001, 1, 2, ....
请问为什么会多出个1001呢? |