Gast
#1415019
Hallo,
ich hab einen Zähler der bei einer Flanke auf dem Signal pstartcounter
hochzählen soll. Ist dirin pos, soll der Ausgangswert pos sein.
Funtkionieren tut das auch wunderbar, nur macht er bei der Synthes ca 30
Gatter extra für das Vorzeichen. In meiner Vorstellung sollte das
Vorzeichen 1 einem FF abgespeichert werden und nur minimal mehr Gatter
erzeugen.
Also lautet die Frage, warum soviele Gatter mehr?
taktzaehler: process (pstartcounter,reset,takt2)
variable i: integer range -(Vervielfacher * 4) to (Vervielfacher * 4):=
0;
variable pstartcounterold : std_logic := '0';
Begin
if Reset = '0' then
Ringzaehler <= 0;
i := 0;
pstartcounterold := '0';
elsif rising_edge (takt2) then
if pstartcounter = '1' and pstartcounterold = '0' then
i := Ringzaehler;
if abs(i) <(Vervielfacher * 4) then
i := abs(i) + Vervielfacher;
else
i := Vervielfacher;
end if;
If dirin = '1' then
i := -i;
else
i := i;
end if;
Ringzaehler <= i;
end if;
pstartcounterold := pstartcounter;
end if;
end process;
Danke
Malte