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
@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 ;-( ???
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
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 :-(
@FPGA-User Hört sich gut an, hat es denn damit bei dir im Simulator hingehauen ?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.