|
|
|
Anfang
zurück
weiter
Ende
|
Autor |
Beitrag |
Saja
Registrierter Benutzer
Beiträge: 2
|
Erstellt: 19.06.10, 22:08 Betreff: Zustandsproblem - Uhr
drucken
Thema drucken weiterempfehlen
|
|
|
Hallöchen!
Ich probiere mich derzeit am Programmieren einer digitalen Uhr, die Uhrzeit "hochzählen" und anzeigen lassen kann. Demhinzu will ich aber auch optional eine Uhrzeit einstellen können, die dann quasi den Startwert darstellt, und von wo aus sie weiter zählt. Diese Funktion hab ich mittels Zuständen programmiert und auf der Platine ausgetestet mit dem Fazit, dass meine Uhr zwar in der Lage ist, Zeiten einzulesen, allerdings passiert das mit leichter Verzögerung (im Schnitt 2 Sekunden).
Ich glaube, dass es daran liegt, dass ich in meinem Prozess bei einem Zustand (Uhr_stellen) einen kompletten neuen Zustandskomplex eingefügt habe, Zustände im Zustand sozusagen (Ich habe die Datei dazu mal in den Anhang gepackt.) Daraufhin versuchte ich nun, diesen Abschnitt etwas sauberer umzuschreiben, indem die beiden Zustandskomplexe in Form von zwei Prozessen parallel zueinander laufen, was allerdings nicht so klappen will, wie ich es gern hätte.
Habt ihr denn eine Idee, wie ich diese Zustände im Zustand anders schreiben kann und damit vielleicht sogar noch die Verzögerungen behebe? Ich bin für jeden Vorschlag offen
Liebe Grüße, Saja
Dateianlagen:
uhr_tickt.vhd (12 kByte)
anzeigen - speichern
Datei wurde schon 253-mal heruntergeladen.
|
|
nach oben |
|
|
Dr. Faustus
Administrator
Beiträge: 107 Ort: Aßling
|
Erstellt: 20.06.10, 07:09 Betreff: Re: Zustandsproblem - Uhr
drucken
weiterempfehlen
|
|
|
Hi,
hast Du mal eine Simulation gemacht? Kannst Du die Testbench bitte auch posten?
Noch ein Tipp:
- Für jede entity ein eigenes File erhöht die übersichtlichkeit.
- In die Sensitivity list eines getakteten Prozesses hehöhrt nur der takt und wenn vorhanden der reset.
Gruesse,
Michael
|
|
nach oben |
|
|
Dr. Faustus
Administrator
Beiträge: 107 Ort: Aßling
|
Erstellt: 20.06.10, 07:17 Betreff: Re: Zustandsproblem - Uhr
drucken
weiterempfehlen
|
|
|
Kann es sein das
count_next und clk_next im "Taktteiler" auch getaktet sein müssen?
Wie hoch ist dein Systemtakt? 25MHz? 50MHz?
Gruesse,
Michael
|
|
nach oben |
|
|
Saja
Registrierter Benutzer
Beiträge: 2
|
Erstellt: 20.06.10, 11:51 Betreff: Re: Zustandsproblem - Uhr
drucken
weiterempfehlen
|
|
|
Jap, ich hab schon einige Simulationen gemacht und dabei immer wieder festgestellt, dass mein Programm mit dem Einlesen nicht klar kommt. Er soll ja prinzipiell immer dann den eingegebenen Wert setzen, wenn das einstellen-Signal 1 ist und erst bei 0 dürfte das nächste Zeitfeld manipuliert werden. Aber wenn bei mir das einstell-Signal bereits 1 ist und ich ihm einen neuen Einlesewert gebe, stellt er den auch ein, was aber theoretisch nicht sein dürfte. In der Testbench hab ich so einen Fall drin (siehe Anhang).
Der Systemtakt ist im Übrigen 50 MHz groß. Mein Taktteiler ist ja dazu da, den Takt zu teilen, er kriegt also das Clock-Signal rein und gibt sein Ausgangssignal in meine Uhr hinein und auf dieses reagiert diese schlussendlich. Allerdings bekommt sie den Signaltakt selbst (also die Clock) überhaupt nicht rein. Könnte da der Fehler liegen?
Was die einzelnen Files angeht, so hab ich die prinzipiell nochmal alle entity für entity extra "vorhanden", rein aus Arbeitszwecken hab ich es nur lieber, wenn alles in einer Datei ist, aber trotzdem vielen Dank für den Tip
Liebe Grüße, Saja
Dateianlagen:
norm_uhr_tb.vhd (5 kByte)
anzeigen - speichern
Datei wurde schon 264-mal heruntergeladen.
|
|
nach oben |
|
|
|
powered by carookee.com - eigenes profi-forum kostenlos
Design © trevorj
|