Forum: FPGA, VHDL & Co. ISPlever ABEL: Eingänge für GAL22v10B festlegen


von Mr X. (Firma: keine) (fargotof)


Lesenswert?

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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ich weiß dass bei (Haus)aufgabenthemen "warum"-Fragen nicht gerne 
gesehen sind, aber trotzdem: warum macht ihr das nicht gleich im 
Mikrocontroller?

von Mr X. (Firma: keine) (fargotof)


Lesenswert?

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).

von Klaus F. (kfalser)


Lesenswert?

Steht das nicht im ABEL Handbuch?
Soviel ich mich erinnere gab es dazu eine ABEL directive.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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.

von Volker (Gast)


Lesenswert?

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.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

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.

von Mr X. (Firma: keine) (fargotof)


Lesenswert?

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