Hallo, guten Tag. Warum wird dieses Signal "c" nicht gleich auf "" gesetzt, es wird doch nachher hochgezählt? Danke. Gruss ------------------------ signal c : integer range 0 to 24999999 := 0; -- 0,5s bei 50MHz fosc signal x : std_logic:= '0'; begin process begin wait until rising_edge(clk); -- warten bis zum nächsten Takt if (c<24999999) then -- 0…24999999 = 25000000 Takte = 1/2 Sekunde bei 50MHz c <= c+1; -- wenn kleiner: weiterzählen else -- wenn Zählerende erreicht: c <= 0; -- Zähler zurücksetzen x <= not x; -- und Signal x togglen end if; end process; led <= x; -- Signal x an LED ausgeben end Behavioral; --------------------------
Welche Aufgabe übernimmt das : range 0 to 24999999 Hat eine Integer nicht einen festen bestimmten Zählbereich? Danke. Gruss
Alle Signale werden grundsätzlich nicht sofort bei der zuweisung aktualisiert, sondern erst bei "end prozess"
Danke. Das ist ja anders als wenn man normal programmiert mit C usw. Da muß ich jetzt umdenken. Gruss
VHDL beschreibt Hardware, das ist keine Programmiersprache, auch wenn es ähnlich aussieht. Da musst du eine ganz andere Denkweise lernen.
Peter Bierbach schrieb: > Da muß ich jetzt umdenken. Ja, genau. Es sieht aus wie Software ist aber eine Schaltplanbeschreibung in Textform. Duke
Ich glaube, es wird Zeit für ein gutes Buch, in dem man die Details einmal nachliest. z.B: Zahlenbereiche, Zuweisungen etc. Ich habe gute Erfahrungen mit Ashenden, Designers Guide to VHDL. Aber das ist Geschmackssache.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.