Bauen Sie Ihren Chip! (3) März 2013

Forum zum ELEKTOR-FPGA-Projekt

Postby klaus boda » Tue Feb 26, 2013 12:00 am

Hallo,

da ich einige Fehlermeldungen hatte, stellte mir Ag seine Dateien zur Verfügung.
Ich habe wie in seiner Idee Inverter vor die obufs
(Symbol: Logic -> inv) gesetzt.

Nun funktionieren auch Common Anode Module.

Ansonsten sei noch zu erwähnen, dass S1 gegen 3V3 geschaltet werden muss, um hochzuzählen.
Hängt der Eingang "in der Luft", kommt es zu Störungen beim Zählen.

Vielen Dank an Ag!

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

Postby ag » Sun Mar 03, 2013 12:00 am

Hallo an alle,

ich komme mit der Übungsaufgabe nicht klar und benötige Hilfe.

Ich habe mir die Umsetzung so vorgestellt: 7 LUT4 Symbole, je eine für jedes Segment im 7-Segment Anzeige. Nachdem ich die Schaltung entsprechend aufgebaut hatte, wollte ich dann für jedes Symbol die Bitwerte zuordnen, für die ein High am Ausgang gelten soll, damit das Segment zum leuchten gebracht wird. Als ich dazu die Properites angesehen habe, wüsste ich nicht weiter. Ich habe immer weider durchgelesen und nachgedacht, aber ich komme einfach nicht dahinter, wie die LUTs funktionieren, bzw. was ich für INIT Werte eintragen soll, oder ob mein erdachtes Lösungsweg überhaupt funktionieren kann.

Kann mir jemand auf die Sprünge helfen?

Nachtrag:
Inzwischen habe ich folgender Link gefunden, was mir besagt dass ich prinzipiell die richtige Lösungsweg eingeschlagen habe.

http://jimthecactus.livejournal.com/124123.html

Dennoch habe ich noch nicht begriffen, wie die 7 LUT4s zu pflegen sind.

Besten Dank für eine Aufklärung,
Ag
Ag
ag
 
Posts: 532
Joined: Thu Jan 02, 2014 10:37 am

Postby ag » Mon Mar 04, 2013 12:00 am

Hallo an alle,

Dennoch habe ich noch nicht begriffen, wie die 7 LUT4s zu pflegen sind.


Ich glaube, dass ich es nun kapiert habe, dank dieser Link:

http://www.markharvey.info/fpga/init/index.html

Beispiel: LUT4_1 soll das a-Segment ansteuern. Das a-Segment soll leuchten bei Ziffern 0, 2, 3, 5, 6, 7, 8, und 9. Also bei folgende Eingangswerte:

0 = 0000
2 = 0010
3 = 0011
5 = 0101
6 = 0110
7 = 0111
8 = 1000
9 = 1001

Das ergibt folgende truth table:

I3 I2 I1 I0 O

0 0 0 0 0
0 0 0 1 1 2
0 0 1 0 0
0 0 1 1 0

0 1 0 0 1
0 1 0 1 0 1
0 1 1 0 0
0 1 1 1 0

1 0 0 0 0
1 0 0 1 0 C
1 0 1 0 1
1 0 1 1 1

1 1 0 0 1
1 1 0 1 1 F
1 1 1 0 1
1 1 1 1 1

Ergibt also INIT Wert für LUT4_1 = FC12

Das werde ich mal ausprobieren

Nachtrag:

Es hat wunderbar funktioniert, nur ist die Schaltungslogik invertiert gegenüber die ursprüngliche Dekoder mit Logik Gattern. Die Logik passt also für common anode 7-segment Anzeigen. Für common cathod Anzeigen müssen entweder Inverter dazwischen geschaltet werden, oder aber beim Berechnen der INIT Werte 0 und 1 beim Output tauschen. Im Beispiel oben für a-Segment wäre das dann so:

I3 I2 I1 I0.........CA CC.....CA.........CC

0 0 0 0...............0 1
0 0 0 1...............1 0........2 ........D
0 0 1 0...............0 1
0 0 1 1...............0 1

0 1 0 0...............1 0
0 1 0 1...............0 1........ 1........E
0 1 1 0...............0 1
0 1 1 1...............0 1

1 0 0 0...............0 1
1 0 0 1...............0 1........ C........3
1 0 1 0...............1 0
1 0 1 1...............1 0

1 1 0 0...............1 0
1 1 0 1...............1 0........ F........0
1 1 1 0...............1 0
1 1 1 1...............1 0

Ergibt also INIT Wert für LUT4_1 = FC12 für common anode
............................................. = 03ED für common cathode

Wer es mag, hier ist die vollständige common anode Version.


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

Previous

Return to Rund um FPGAs

Who is online

Users browsing this forum: No registered users and 1 guest