www.mikrocontroller.net

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


Autor: Mr Xyz (Firma: keine) (fargotof)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

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

Autor: Mr Xyz (Firma: keine) (fargotof)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Klaus Falser (kfalser)
Datum:

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

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Mr Xyz (Firma: keine) (fargotof)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.