Hallo zusammen! Für ein Elektronik-Projekt an der FH müssen wir den PORT eines Mikrocontrollers mit einem GAL von binär nach BCD wandeln. Wir nutzen dazu ABEL im Texteditor von ISPlever, um letztlich die .jedec-Datei zu erzeugen. Die Wahrheitstabelle ist kein Problem, aber ich weiß einfach nicht, wie ich die Eingänge am GAL (also welches Bit an welchen PIN gelegt werden soll) festlegen kann. Bisher geschieht dies daher willkürlich, was die Erstellung des Platinenlayouts natürlich nicht gerade vereinfacht.. Das Programm bisher: ---------------------------------------------------------------- MODULE GALThermo TITLE 'GAL für Elektronik-Labor II' combi device 'gal22v10'; declarations i6,i5,i4,i3,i2,i1 pin; o8,o7,o6,o5,o4,o3,o2,o1 pin istype 'com'; truth_table([i1,i2,i3,i4,i5,i6]->[o8,o7,o6,o5,o4,o3,o2,o1]) [0,0,0,0,0,0]->[0,0,0,0,0,0,0,0]; [0,0,0,0,0,1]->[0,0,0,0,0,0,0,1]; . . . [1,1,1,1,1,0]->[1,0,0,1,0,0,1,0]; [1,1,1,1,1,1]->[1,0,0,1,0,0,1,1]; END GALThermo ---------------------------------------------------------------- Meine Frage also: Wie lege ich die Eingänge fest? Und: ist es vllt. sogar möglich, auch die Ausgänge festzulegen, oder ist das schon eine zu große Anzahl an Verknüpfungen? Vielen Dank für hoffentlich viel Hilfe :), FargoTof
Ich weiß dass bei (Haus)aufgabenthemen "warum"-Fragen nicht gerne gesehen sind, aber trotzdem: warum macht ihr das nicht gleich im Mikrocontroller?
Hehe... Also: Das Projekt sollte ursprünglich gar nicht mit Mikrocontroller gelöst werden. Bedingung dafür war, dass von der ursprünglichen Aufgabenstellung wenigstens ein paar Teile erhalten blieben.. Und dazu gehört zum Beipsiel eine Umcodierung mittels GAL. Letzlich wird es ein Thermometer mit LC-Display UND dreistelliger 7-Segment-Anzeige (Wo ja auch der Sinn eher fraglich ist).
Steht das nicht im ABEL Handbuch? Soviel ich mich erinnere gab es dazu eine ABEL directive.
Ganz willkürlich macht das der Fitter nicht, die Eingänge des 22V10 sind unterschiedlich groß. Die Belegung vorher festzulegen schränkt deshalb die Möglichkeiten des Fitters stark ein. Der 22V10 ist übersichtlich genug, um die als Zwischenergebnis ausgegebenen Minterme von Hand umzuverteilen.
Hier gibts noch ein dickes ABEL-Handbuch mit 268 Seiten von Lattice: http://www.latticesemi.com/lit/docs/manuals/abel_ref.pdf Seite 235: "Pin - Syntax: [!]pin_id [,[!]pin_id...] PIN [pin# [, pin# ]] [ISTYPE 'attr' ]; Purpose: The PIN keyword declares input and output signals that must be available on a device I/O pin.
also z.b so test_ff pin 3 istype 'reg_d'; //Ausgang auf Pin3 test1 pin 4 istype 'com'; Musst halt die richtigen Pinnummern eintragen.
Hier im Datenblatt sieht man, daß die Eingänge je 2* 8/10/12/14/16 Minterme enthalten können, das läßt sich nicht umverdrahten.
Eieiei... Das wird aber kompliziert jetzt... Vielen Dank erstmal! Ich hab jetzt woanders folgendes gefunden: statt: declarations i6,i5,i4,i3,i2,i1 pin; o8,o7,o6,o5,o4,o3,o2,o1 pin istype 'com'; schreibe ich: declarations i6,i5,i4,i3,i2,i1 pin 1,2,3,4,5,6; o8,o7,o6,o5,o4,o3,o2,o1 pin istype 'com'; Auch das ordnet einem deklarierten Eingang direkt einem Pin zu. Die gleiche Synthax scheint soweit auch für die Ausgänge zu funktionieren, allerdings kann beim Erzeugen der .jedec dann nicht mehr jede Verknüpfung berücksichtigt werden, weil er zu stark eingeschränkt ist. Allerdings hat sich damit auch schon mein eigentliches Problem erledigt, weil sich auch das gewisse Durcheinander am GAL-Ausgang noch einigermaßen auf der Platine umsetzen lässt.
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.