Forum: FPGA, VHDL & Co. DCF Uhr Fehlersuche


von ChristofRebmann (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin gerade etwas am verzweifeln, ich habe eine DCF Uhr in VHDL
beschrieben und die funktioniert auch ganz gut nach der Synthese.

Jedoch habe ich probleme mit dem Schieberegister, das die Daten
zwischenspeichert und an einen Ausgabeblock weiterleitet.

In der Simulation ergibt sich ein anderes Ergebnis zum Zeitpunkt der
Datenausgabe aus dem Schieberegister, als in der realen hardware.
(verschobenes Bitmuster) Findet von euch jemand den Fehler und kann
mein erstes VHDL Projekt für die FH-Heilbronn korigieren, damit
Simulation und realität zusammenpassen ?

Ich habe das gesamte Projekt für webpack 6.1 mit angehängt. in der
testbench datei : tb_dcf_uhr.vhd  habe ich unter Hinweise etwas mehr
zum problem beschrieben.

Habe auch einen Screenshot vom Simulator: Impulsbild.jpg mit eingezippt
;-)

Grüsse

Christof

von Jörn (Gast)


Lesenswert?

Hast du schon eine P&R Simulation gemacht?

von FPGA-User (Gast)


Lesenswert?

Bist Du identisch mit MarkusG oder verwendest Du nur
dieselben Sourcen ?

von ChristofRebmann (Gast)


Lesenswert?

@FPGA User
Das ist ein Kumpel von mir, mit dem ich das Projekt zusammen mache.

@Jörn
Ja hab ich schon mal aber da kommt irgendwie nur blödsinn heraus.


An was könnts bloß liegen ;-( ???

von Jörn (Gast)


Lesenswert?

Wenn bei der P&R schon Blödsinn rauskommt, kann läuft auf der HW auch
nur Blödsinn.

An deiner Stelle würde ich schauen, dass die P&R Simulation so
aussieht, wie du es dir vorstellst und dann auf der HW testen.

Gruß Jörn

von ChristofRebmann (Gast)


Lesenswert?

Also jetzt weiß ich soviel wie vorher ;-(

von FPGA-User (Gast)


Lesenswert?

Hallo,

ich glaube zumindest ein Problem gefunden zu haben:
in dcf_decoder.vhd gibt es die Signale
minClkOut und bitClkOut, welche anschließend
das Schieberegister steuern.
Beide Signale sind synchron zum 100Hz-Clock.

In der Funktion shift (shiftreg.vhd) wird nun bitClkOut
als Taktsignal verwendet und minClkOut als Ladesignal
für die Ausgaberegister.

Beide Signale ändern sich in der Simulation aber exakt
zur gleichen Zeit, d.h. bei einer steigenden Flanke
von bitClkOut kann sich auch minClkOut ändern.
Die Sache ist asynchron !!!! Was da nach der Synthese
passiert, ist Zufall.
Versuch doch mal, das 100Hz-Signal als Takt für das SRG
zu verwenden und bitClkOut als Enable-Signal.
Dann ist wieder alles synchron. bitClkOut darf jetzt
natürlich nur noch 1 Takt lang sein, was aber kein
Problem ist, Du schaltest einfach noch ein FF nach und
machst eine Flankenerkennung.

In der Simulation tb_dcf_uhr.vhd fehlt zu Beginn nach der
Minutenaustastlücke m.E. das Bit 0, so dass von vornherein
mit einem falschen Simulations-Input gearbeitet wird.

Nach Einfügen dieses Bits hat sich in meiner Simulation
allerdings auch nichts geändert :-(

von ChristofRebmann (Gast)


Lesenswert?

@FPGA-User

Hört sich gut an, hat es denn damit bei dir im Simulator hingehauen ?

von FPGA-User (Gast)


Lesenswert?

ich hatte gehofft, dass Du meine Idee mal ausprobierst ;-)
es wäre sicher auch keine schlechte Idee, die Bits
mal von oben ins Schieberegister einzuschieben, damit
könntest Du mit denselben Bit-Nummern wie in der DCF-Doku
arbeiten und müsstest nicht alles rumdrehen.
Der VHDL-Code der DCF-Uhr ist schon recht gut, aber
nochn Tip von mir:
versuch doch mal, einen Counter als "integer range 0 to 2**8"
oder so zu deklarieren und nicht als std_logic_vector.
Damit kannst Du bei den Vergleichen dann schön mit integer
arbeiten und musst nicht in Hex umrechnen. Außerdem musst
Du den Code nur an einer Stelle ändern, wenn der Counter mal
bis 2**16 zählen soll. Oder bis MAX_COUNTER_VALUE ...
Sorry, sind nur gut gemeinte Ratschläge aus der Erfahrung.

von Johnny (Gast)


Lesenswert?

hallo.
bin auch grad dabei eine dcf uhr zu programmieren.
bei mir das das bloß nicht so aufgeräumt wie bei euch.
hab alles in eine datei geschrieben.
bin noch anfänger in der sache.
ca 1 jahr dabei.
>>>mal ne frage mit welchen progi simuliert ihr?<<<
den code hab ich schon fertig, der chip fehlt bloß noch, dass ich den
code testen kann. xilinx läst auf sich warten.

noch was anderes.
kann ich einfach sonen schaltplan wie es im code ist einfügen und für
die einzelnen blöcke die dateien verlinken?
oder wie macht ihr das.
mir würde auch ne i-net seite reichen.
schon mal danke.
mfg

von Andreas Ehret (Gast)


Lesenswert?

Hallo Christof,

schöner Zufall ... ich muss auch eine Funkuhr in VHDL realisieren, auch
an der FH in HN. Ich vermute mal stark, dass Du EL studierst, ich mache
MM und will das im Rahmen eines Projekts machen.

Ich bin auch schon relativ weit, in Gedanken fast fertig, aber ebenso
wie Du habe ich Probleme. Im Simulator läuft einiges, in Wirklichkeit
jedoch eher weniger.

Du kannst mich ja mal direkt anschreiben, wir könnten uns ja ein wenig
austauschen bzw. unsere Projektstände mal gegenseitig real betrachten.

Ich habe ein Spartan-3E Board zur Verfügung und arbeite ebenso mit
Webpack 6.1

Grüße
   Andy

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
Noch kein Account? Hier anmelden.