Bauen Sie Ihren Chip

Forum zum ELEKTOR-FPGA-Projekt

Postby domare » Sat May 11, 2013 12:00 am

Hallo,
zuerst mal ein Kompliment, diese Beiträge über das FPGA haben mir sehr gut gefallen. Ich hoffe, dass noch etliche darüber folgen werden.
Ich habe das FPGA Board gekauft und auch ein bisschen damit rumexperimentiert. Dem Zähler mit der Siebensegmentanzeige habe ich mit einer weiteren Stelle erweitert. Die beiden niederwertigeren Stellen haben da wie gewünscht schön auf und abgezählt. Die Hochwertige jedoch nicht. Bei den Übergängen der hochwertigen Stelle konnte ich den Zähler aus dem gewünschten Takt mit der UP/Down Taste bringen. 199, 000 (so in dieser Art). Dies habe ich darauf zurückgeführt, dass die 3 Stellen nicht zeitgleich den Wechsel vollziehen. Auch hat die Höchstwertigste Stelle nicht immer weiter gezählt. Also habe ich die Zähler auf synchron umgebaut. Die 3 Stufen haben nun denselben Takt, dasselbe UP/Down und Clear Signal
CE vom niederwertigsten Zähler auf 1 gesetzt,
CE vom mittleren Zähler aus 2 UND Verknüpfungen des niederwertigsten Zählers mit UP/Down (ein mal invertiert und enmal nicht) ODER Verknüpft
also (Q0 * Q1 * Q2 * Q3 * UP) + (nQ0 * nQ1 * nQ2 * nQ3 * nUP)
dieses Signal nenne ich Overflow.
CE vom Höchstwertigen Zähler habe ich aus einer UND Verknüpfung der Overflowsignale von den beiden niederwertigeren Zählerstufen gebildet. In einem 1. Schritt soll der Zähler von 000 bis FFF Up und Downzählen. Dafür habe ich den BCD Decoder auf HEX ausgebaut. Die beiden niederwertigen funktionieren prima. Doch beim höchstwertigen Zähler funktionieren nicht alle Übergänge. Von 000 bis 1FF funktioniert es einwandfrei, danach folgt aber leider nicht 200 sondern 000 was ich mir überhaupt nicht erklären kann. Rückwärts zählt er richtig von FFF bis 700 danach folgt ebenfalls 000, FFF usw bis 700
Das Aufwärtszählen habe ich simuliert, da funktioniert es einwandfrei. Jetzt stehe ich wie der Esel am Berg und kann mir das nicht erklären. Hat jemand eine Idee?
Liebe Grüsse
Do
domare
 
Posts: 4
Joined: Fri Jan 03, 2014 2:02 pm

Postby ag » Sat May 11, 2013 12:00 am

Hallo Domare,

CE vom mittleren Zähler aus 2 UND Verknüpfungen des niederwertigsten Zählers mit UP/Down


Ich verstehe nicht, warum du die Zählung der mittleren Zähler unterbrechen willst. Da liegt meines Erachtens schon mal ein Fehler.

Dasselbe gilt hier:

CE vom Höchstwertigen Zähler habe ich aus einer UND Verknüpfung der Overflowsignale von den beiden niederwertigeren Zählerstufen gebildet.


Wenn du die betroffene Projektverzeichnis als gezippte Dateianhang zur Verfügung stellen willst, schaue ich gerne mal genauer nach.

Viele Grüße,
Ag
Ag
ag
 
Posts: 532
Joined: Thu Jan 02, 2014 10:37 am

Postby domare » Sat May 11, 2013 12:00 am

Hallo Stammgast,
vielen Dank für Deine Antwort. Die CE Eingänge der höherwertigrn Zählerstufen sind aus den Ausgängen der niederwertigeren Zählerstufen und dem UP Signal gebildet damit sie nur zählen wenn dies auch notwendig ist. Bei Up also nur wenn die vier niederwertigeren Zähler auf 1 sind und das Up Signal 1 ist. Für den Höchstwertisten Zähler müssen die 4 Ausgänge von den beiden niederwertigeren Zählern sowie das Signal Up 1 sein. Beim Rückwärtszählen gilt genau dasselbe dies aber mit 0.
Alle 3 Zählerstufen haben dasselbe Clocksignal.
Auf diese Weise passieren die Übergänge synchron. Der Übergang nach 0FF müsste alsoauf einen Schlag 100 sein. Damit will ich Laufzeitunterschiede welche sich störend auswirken können verhindern. Ich habe Dir die Zip-Datei beigefügt.
Liebe Grüsse
Do
Attachments
ZaehlerSynchron-2.zip
(463.84 KiB) Downloaded 49 times
domare
 
Posts: 4
Joined: Fri Jan 03, 2014 2:02 pm

Postby ag » Sat May 11, 2013 12:00 am

Hallo Domare,

ich glaube das Problem liegt an dem fehlenden FDC. Siehe dazu den Beitrag zur FDC im März 2013 Artikel. Außerdem, denke ich dass es einfacher ist, da die Begrenzung auf 0-9 für Hexanzeigen 0-F nicht mehr erforderlich ist, CEO zu verwenden um deine "Over_Flow" Schaltung zu ersparen. Ich habe meine Lösungsvorschläge dafür angehängt.

Viele Grüße,
Ag
Attachments

[The extension vhf has been deactivated and can no longer be displayed.]

[The extension sch has been deactivated and can no longer be displayed.]

[The extension sch has been deactivated and can no longer be displayed.]

Ag
ag
 
Posts: 532
Joined: Thu Jan 02, 2014 10:37 am

Postby ag » Sun May 12, 2013 12:00 am

Hallo Domare,

um dein Projekt zu testen habe ich lediglich die Zuordung der Pins für die 7-Segment Anzeigen in top.ucf für meine Breadboard angepasst, und die 7-Segment Dekoder für meine common anode Anzeigen angepasst. Für mich läuft deine Schaltung soweit einwandfrei (siehe Anlage - höchstwertiger Zähler ist links oben und grün - leider nicht sehr gut zu sehen ). Ich habe hoch und runter zählen lassen, und konnte keine der von dir beschriebene Auffälligkeiten reproduzieren. Muss ich da eine ganz besondere Handhabung anwenden, um den Fehler zu forcieren?

Viele Grüße,
Ag
Attachments

[ Play Quicktime file ] 20130512-153811.mp4 [ 1.71 MiB | Viewed 1468 times ]

Ag
ag
 
Posts: 532
Joined: Thu Jan 02, 2014 10:37 am

Postby domare » Sun May 12, 2013 12:00 am

Hallo Stammgast,
das sind aber gute Neuigkeiten. Meine Schaltung zählt meist bei 1FF nach 000 bei Up. Seit neuestem zählt sie an dieser Stelle auch mal normal weiter (aber nicht regelmässig). Bei Down geht es bis 700 runter und dann nach 000. Theoretisch denke ich auch, dass die Schaltung funktionieren müsste, zumal ich die Simulation mit 3 Bussen von den Zählern erweitert habe und so die Übergänge viel effizienter überwachen kann. Da funktioniert es wirklich einwandfrei.
Als nächsten Schritt werde ich wohl die Hardware (Verdrahtung) nochmals unter die Lupe nehmen. Vielleicht hat sich da ein Fehler eingeschlichen.
Was machst Du überhaupt beruflich? Hast Du mit Elektronik resp. programmierbarer Logik was zu tun? Ich habe leider nichts mit programmierbarer Logik zu tun. Ich wollte dies aber schon seit längerer Zeit ausprobieren. Als ich dann das Board im Elektor sah wollte ich das unbedingt kaufen und so ein paar Schaltungen auszuprobieren. Interessant wäre für mich natürlich auch eine Logik wo ein Softcore raufgeladen werden kann.
Was hast Du mit Deinem Board geplant?
Vielen Dank für Deine Hilfe.
Liebe Grüsse
Do
domare
 
Posts: 4
Joined: Fri Jan 03, 2014 2:02 pm

Postby ag » Sun May 12, 2013 12:00 am

Hallo Do,

bin von Beruf Anwendungsentwickler, Elektronik ist eine meine Hobbies. Mit meinem Board wollte ich mich nur in die FPGA Welt hinein schnuffeln. Noch keine Ahnung was letztendlich damit sich ergeben wird.

Ich habe deine Schaltung nun ein Paar Stunden abwärts zählen lassen und habe keine Fehler bemerkt. Da bei dir beim simulieren auch kein Fehler auftreten, ist mir die Sache etwas rätselhaft. Ich habe mir überlegt, ob vielleicht deine Vorwiderstände zu den LED-Segmente zu klein berechnet sind, sodass die Stromversorgung an seine Grenze belastet wird. Nur dann würde ich erwarten, dass der Fehler sporadisch an mehr oder weniger willkürliche Stellen auftreten würde, und nicht immer bei 700. Zuerst dachte ich, dass du nicht alle Schematics sauber aktualisiert hast, aber dass wurde sich wieder bei der Simulation bemerkbar machen. Dann habe ich überlegt, ob vielleicht die höchstwertiger Anzeige bei Ziffer 6 derart falsch beschaltet ist, dass es eine art Kurzschluss kurzzeitig gibt, aber dass wurde sich auch während des Hochzählens bemerkbar machen. Also finde ich letztendlich keine plausible Erklärung für das Verhalten

Na ja, vielleicht findest du doch noch etwas am Verdrahtung.

Viel Glück,
Ag
Ag
ag
 
Posts: 532
Joined: Thu Jan 02, 2014 10:37 am

Postby klaus boda » Mon May 13, 2013 12:00 am

Hallo Domare, hallo Ag,

Ich habe derzeit die ISE nicht installiert, weil ich einen Festplattenumzug gemacht habe und von etwa 420000 Dateien etwa 300000 (!!) die ISE belegten. Werde diese Zahl noch mal beim Installieren überprüfen, kommt mir gewaltig vor.

Egal...

Ich werde also Eure Programme testen, dann ergibt sich zumindest eine Tendenz, wenn es bei mir funktioniert, oder ich eben auch Probleme habe wie Domare.

@Domare: Übrigens "Stammgast" ist der "Status" von Ag, bedingt durch die Anzahl seiner Beiträge, so wie Du "Neuer Benutzer" bist

Sein Name bzw. Nickname ist also Ag, musste da immer schmunzeln

Also bis spätestens morgen habt ihr auch Ergebnisse von mir, bin heute etwas im Stress, weiß nicht, wann ich zum Basteln komme.

LG Klaus
klaus boda
 
Posts: 120
Joined: Thu Jan 02, 2014 10:49 am

Postby ag » Mon May 13, 2013 12:00 am

Hallo Do,

ich habe mir die Sache noch mal überlegt, und komme doch zu meinen ursprünglichen Verdacht zurück. Auch wenn deine Schaltung bei mir einwandfrei funktioniert, schließt dies nicht aus, dass es Probleme wegen fehlende FDC ergeben können (siehe FDC im März 2013 Artikel). Ich habe daher ein FDC in deine Schaltung hinzugefügt (siehe Anlage). Auch mit FDC funktioniert deine Schaltung bei mir, und vermutlich auch bei dir, denn die Probleme die ohne FDC auftreten können sind vermutlich mindestens zum Teil Hardware abhängig. Das würde erklären warum du Probleme hast, die bei mir nicht auftreten. Eine bessere Erklärung finde ich nach wie vor nicht.

Also, falls du, wie ich vermute, keine Verdrahtungsfehler enteckst, versuche die angehängte Datei in deine Schlaltung zu übernehmen und dann teste es bei dir damit.

Viele Grüße,
Ag
Attachments

[The extension sch has been deactivated and can no longer be displayed.]

Ag
ag
 
Posts: 532
Joined: Thu Jan 02, 2014 10:37 am

Postby domare » Wed May 15, 2013 12:00 am

Hallo Ag und Klaus (ich habe etwas gelernt, nicht mehr Stammgast),
sorry dass ich mich erst jetzt melde. Die Woche hindurch bin ich leider nicht so häufig am Basteln.
Ich habe die Hardware ziemlich genau angeschaut und leider keinen Verdrahtungsfehler gefunden. Ich habe mir noch überlegt wieso denn der Zähler immer bei einem Fehler auf 000 springt. Dies könnte am Eingang Clear der Zählerstufen liegen. Ich habe also diesen Eingang mit einem Widerstand auf Masse gezogen (Hardwaremässig). Zuerst meinte ich, dass dies der Fehler wär aber auch damit trat der Fehler zeitweise auf (1FF - 000 anstatt 200). In der Schaltung habe ich dann auch noch einen Pulldown Widerstand eingefügt. Seither habe ich den Fehler nicht mehr gesehen, doch ich traue dem Frieden noch nicht.
Ich denke mit dem FDC vom März Artikel ist das Laden des Zählers gemeint nach 9 UP also mit 0 resp. mit 9 nach 0 DOWN. Dies habe ich extra weggelassen um an dieser Stelle mir sicher kein Ei zu legen. Sobald ich von der Zuverlässigkeit der Schaltung überzeugt bin werde ich dann den Zähler auf Dezimal umbauen.
Vielen Dank für die wertvollen Tips.
Liebe Grüsse
Do
domare
 
Posts: 4
Joined: Fri Jan 03, 2014 2:02 pm


Return to Rund um FPGAs

Who is online

Users browsing this forum: No registered users and 1 guest