Gast
#390030
Hallo,
ich habe einen 32Bit Up/Down Counter. Bei diesem ist das Problem, dass
er zwar richtig zählt, nach oben von 0xFFFFFFFF nach 0x00000000
überläuft, aber nach unten zählend nicht von 0x00000000 nach 0xFFFFFFFF
unterläuft.
Was ist wohl das Problem? Hier der Code-Abschnitt:
-----------------------------------------
-- step counter
process(INT_CLK,COUNT_RESET,STEP_UP_sig,STEP_DOWN_sig)
begin
if rising_edge(INT_CLK) then
if COUNT_RESET = '1' then
STEP_COUNT_sig <= X"00000000";
else
-- no reset, count steps
if STEP_UP_sig = '1' then
-- count up
-- at overflow, change to 0
STEP_COUNT_sig <= STEP_COUNT_sig + 1;
elsif STEP_DOWN_sig = '1' then
-- count down
-- at underflow, change to FFFFFFFF
STEP_COUNT_sig <= STEP_COUNT_sig - 1;
end if;
end if;
end if; -- if rising_edge..
end process;
-----------------------------------------
STEP_UP_sig und STEP_DOWN_sig sind die Zählimpulse.
Ideen?