Forum: Mikrocontroller und Digitale Elektronik Frage zu GAL16V8D


von Tobias P. (hubertus)


Lesenswert?

N'Abend ihr,
So ich bin mal wieder an einem Projektchen. Nun - diesmal muss ich aus 
Platz- und Timinggründen ein GAL einsetzen (es soll bestimmte 
Bussteuer-Signale, die ein Mikroprozessor liefert, decodieren, und das 
darf max. 10 ns dauern).
Ich dachte mir, dazu eignet sich das GAL16V8D sehr gut. Im PLCC-20 
Gehäuse.
Hab jetzt mal mein Schema gezeichnet, aber ich bin mir nicht so sicher 
ob das so geht:

Darf man unbenutzte Eingänge des GAL offen lassen? Oder muss ich die mit 
oder ohne Widerstände mit Vcc bzw. GND verbinden?

Darf ich den I/CLK-Pin des GALs unbeschaltet lassen? Oder braucht es 
einen Takteingang?

Dann wäre da noch das folgende:

Kann ich irgendwie eine Wahrheitstabelle oder ein Schema direkt ins GAL 
runterladen? Ich verstehe diese kryptischen GAL-Gleichungen nicht. Und 
wie generiere ich danach das JEDEC-File? Hab kurz gegoogelt, aber keinen 
gescheiten GAL-Assembler gefunden.

von Tishima (Gast)


Lesenswert?

Hallo!

Laut Datenblatt (Lattice) können Eingänge offen bleiben (interner 
Pull-Up) , es wird empohlen jedoch externe zu verwenden oder auf High 
bzw Low zu legen.

Der I/CLK Input kann als Clock Eingang genutzt werden, muss aber nicht. 
Ein reiner Adressdecoder brauch eigentlich keinen extra Takt.

Als GAL Assembler kann ich WinCUPL empfehlen, sehr viele Beispiel 
Samples und ne ABEL angelehnte Syntax, mit der Tabellen etc zu machen 
sind.

gruß,
Bjoern

von Tobias P. (hubertus)


Lesenswert?

Danke @Björn, werde gleich mal googeln....

Übrigens habe ich schon vor einiger Zeit mal hier gemerkt, das GALs 
immer weniger beliebt sind. Oft wird einem vom GAL abgeraten... Nun: Du 
weisst nicht zufälligerweise eine alternative, die auch sehr schnell ist 
(wie gesagt: 10 ns, sonst wird der Bus des uCs gebremst) und klein (Ich 
brauch ja nur ca. 10 Signale)? Stromsparend wäre auch gut, muss aber 
nicht sein. GAL war halt das einzige was mir auf die schnelle einfiel...

von Holger (Gast)


Lesenswert?

Schau dir mal den Thread an.
Da ist ein GAL-Asm drin.
Beitrag "Freeware für GAL-programmierung"
Gruss Holger.

von Tobias P. (hubertus)


Lesenswert?

@Holger: Das ist auch gut, danke.
Ich versuche mich grade an WinCUPL.... Die Software ist ja von Atmel und 
unterstützt deshalb nur Atmel-Chips. Kann es trotzdem funktionieren, 
dass ich in WinCUPL meine Gleichungen compilieren lasse und die dann auf 
ein Lattice-GAL brenne?

von Tishima (Gast)


Lesenswert?

Ja, das habe ich auch gemerkt das von GAL's ebgeraten wird, aber ICH 
nutze sie trotzdem. Gibt ja mittlerweile auch GAL Typen (z.B. Atmel, 
Lattice Quarter Power)die weitaus weniger als der üblichen 80mA 
verbrauchen.
Ausserdem hatte ich bereits ein GAL Programmer rumliegen.

Also warum ein 3 EU CPLD alla Xilinx 9536 der ebenfalls eher als Heizung 
dient nehmen, wenn alles in ein 16V8 passt der 1 EU kostet.
Ansonsten hab ich bisher noch mit den Lattice M4A5 CPLD gearbeitet, 
weniger Stromverbrauch und mehr Macrozellen, als verwandte Xilinx 
Produkte, dafuer bekommt man die Entwicklungsumgebung und ISP Programmer 
aber nicht an jeder Ecke.
Die Geschwindigkeiten der M4A5 hab ich grade nicht im Kopf.

http://freenet-homepage.de/x1541/hardware/petram.html

Hier findest Du unter Downloads, ein anschauliches Projekt mit nem 16V8 
als Adressdekoder, incl. Source fuer WinCUPL.

gruß,
Bjoern

von Tishima (Gast)


Lesenswert?

Ja, die Software funktioniert hier auch bestens mit andren 
Herstellern.....

von Tobias P. (hubertus)


Lesenswert?

Danke @Tishima für den Link. Ich benutz' zwar nicht den 6502, ist aber 
dennoch eine intressante Seite! Werde sie mir aber erst später zu Gemüte 
führen, da ich gleich weg gehe. Und wenn WinCUPL auch mit anderen 
Herstellern funzt ist das ja prima... übrigens finde ich in der 
Device-Liste alle GAL-Typen vom 16V8 bis zum 16V8C. Aber das 16V8D, das 
ich verwenden möchte, ist nicht drin... spielt das ne Rolle?

von Tishima (Gast)


Lesenswert?

Hab in meiner Schaltung nen 16V8B und 16V8D  getestet und hab als Device 
in WinCUPL g16v8as gewaehlt und es funktioniert. Hab mir ehrlich gesagt, 
aber auch noch nicht die Mühe gemacht herauszufinden, wo da die 
Unterschiede sind.

gruß,
Bjoern

von Pieter (Gast)


Lesenswert?

moin,

zum GAL-Brennen verwende ich eine Minmalschaltung nach
http://www.geocities.com/mwinterhoff/program.htm

Aufpassen muss man mit der Prog-Spannung und da wirklich ins Datenblatt 
sehen. Hatte noch alte GALs rumliegen die musten mit 16,5V geprogt 
werden. Neuere habe ich damit zerschossen. Bei denen war dann 14V 
angegeben.

Als GAL-Assembler verwende ich PALASM, der kann auch eine Simulation 
ausgeben. Gut zur Kontrolle. Boolsche Gleichungen schreiben ist gar 
nicht so schwer, optimierung macht der Assembler.

Warum ich GALs verwende..versuche mal was kleines, so als Decoder o.ä. 
noch im DIL Gehäuse zu bekommen. Der Stombedarf ist meist 2.Rangig.

mfg
Pieter

von Holger (Gast)


Lesenswert?

Die Gleichung wird mit z.B mit WINCUPEL gemacht.
Entscheident ist der Brenner und die Software, der für den Grundtyp z.B 
GAL16V8 der dem JEDEC-File auf den z.B GAL16V(A),oder GAL16V(B)..16V(D) 
in die Typspezifischen Adressen der Zellen brennt.

Hier so eine Beispiel fur den Brenner,und ....
http://users.ntua.gr/el01741/MyWebPage/Contructions/Programmers/GalBlast.htm
Ich habe mir so einen Brenner von diesem Link (GalBlast )nachgebaut.
Den SourceCode für den Brenner ist da auch offengelegt.
Berichte mal ob du die Gleichung mit WINCUPEL bis zum JED File 
übersetzen
kanst.
Gruss Holger.

von holger (Gast)


Lesenswert?

Interessant zum erstellen von GAL Programmen ist auch LOG/iC2

http://www.logic2.de/

von Peter D. (peda)


Lesenswert?

Tishima wrote:

> Ansonsten hab ich bisher noch mit den Lattice M4A5 CPLD gearbeitet,
> weniger Stromverbrauch und mehr Macrozellen, als verwandte Xilinx
> Produkte, dafuer bekommt man die Entwicklungsumgebung und ISP Programmer
> aber nicht an jeder Ecke.

Ich weiß ja nicht, was die Lattice verbrauchen, aber die Xilinx 
Coolrunner sind echt CMOS (wenige nA bei 0Hz), also nichts mit Heizen.
Man muß daher nicht wie bei anderen CPLDs die Geschwindigkeit 
einstellen, sie laufen immer mit Full-Speed.

Bis zum XCR3064 gibts die auch im bastelfreundlichen PLCC-44.

Sehr schön ist, daß man sie in der Schaltung programmieren kann (JTAG).
Ich mach dazu nen 10-pol. Pfostenstecker mit auf die Boards.
Das Programmierkabel geht direkt an die LPT (keine Schaltung nötig).
Mehrere CPLDs werden einfach in Reihe geschaltet.

Der einzige Wermutstropfen, die 5V-Coolrunner wurden eingestampft, jetzt 
gibts die nur noch für 3,3V. Wenigstens sind sie aber 5V-tolerant.

Seit den Coolrunnern nehme ich jedenfalls keine Heizungs-GALs mehr.


Peter

von Tobias P. (hubertus)


Lesenswert?

@Holger:
Ja ich hab mal ein paar Gleichungen erstellt mit WinCUPL, compilieren 
ging auch noch, aber das Simulationstool hat rumgebockt. Versuche es 
morgen nochmals ;))

Logic2 muss ich nachher mal näher betrachten.
Am besten wäre natürlich eine Software, mit der man CPéDs und PLDs 
machen kann; als CPLD verwende ich oft die MAX7000S von Altera. Aber das 
ist ein anderes Thema....

@Peter Danegger:
Die GAL scheinen leider einen recht hohen Strom von ca. 70 mA zu 
benötigen. Was zwar nicht so toll ist, aber auch nicht weiter tragisch.
Du würdest also eher zu den Xilinx CoolRunners tendieren, auch für eine 
solch einfache Anwendung?
Irgendwie passt mir das GAL schon nicht so recht, aber einen CPLD zu 
verwenden (von denen ich noch ein paar im PLCC44 rumliegen habe), 
scheint mir doch etwas übertrieben....

von Pieter (Gast)


Lesenswert?

moin moin,

bei den GALs gibt es auch Typen mit "Quarter Power" die brauchen "nur" 
maximal 45mA.
Ein PLCC44 ist mir viel zu groß..wenn der Rest in DIL ist.

mfg Pieter

von Peter D. (peda)


Lesenswert?

Tobias Plüss wrote:

> @Peter Danegger:
> Die GAL scheinen leider einen recht hohen Strom von ca. 70 mA zu
> benötigen. Was zwar nicht so toll ist, aber auch nicht weiter tragisch.
> Du würdest also eher zu den Xilinx CoolRunners tendieren, auch für eine
> solch einfache Anwendung?

Wenn alles in nen GAL paßt, ist ein CPLD nicht nötig.

Es sein denn, der Strombedarf ist wichtig (Batteriebetrieb) oder man 
will kein extra Programmiergerät kaufen/bauen.

Vielleicht kann man dann aber noch mehr in den CPLD packen, damit sichs 
lohnt.

Ich hab z.B. neben der Adreßdekodierung auch das Adreßlatch mit 
reingepackt und ein paar zusätzliche Ein- und Ausgänge (memory mapped).


Es gab auch mal GAL22V10, die wurden im SO-28 Gehäuse hergestellt, 
nannten sich ISP-GAL22V10, die 4 zusätzlichen Pins waren dann das JTAG, 
um sie ohne Programmiergerät zu brennen.


Peter

von Tobias P. (hubertus)


Lesenswert?

So endlich habe ich es jetzt fertiggebracht im WinCUPL ein JEDEC-File zu 
erzeugen. Aber mit WinSIM komme ich nicht klar... Kann mir jemand von 
euch Profis erklären, wie man das Programm bedient? Scheint mir eine 
äusserst komplizierte Software zu sein; Irgendwie lässt sich das Teil 
überhaupt nicht intuitiv bedienen und die mitgelieferte Hilfe ist 
ziemlich nutzlos ;))

Grüsse
 Tobias

von Holger Harten (Gast)


Angehängte Dateien:

Lesenswert?

@Tobias

Ich möchte mich bedanken für den Tips
mit WinCupl,und auch den anderen Leuten
die hier gepostet haben.
Habe gerade schon damit experimentiert.

Ich mache Run-Simulator im Menu.
Dan werden die Ausgänge in abhängigkeit von den
Eingängen neu logisch durchsimuliert bzw. berechnet.

Die "rechte" Maus-Taste drücken.
Und im jeweiligen Kästchen-Feld kan ich
die Eingänge z.B High oder Low machen ... oder trst ect..

Ich mache wieder Run-Simulator im Menu.
Und so habe ich die neuen Ausgangs-Ergebnisse für den
neuen Eingangszustand.


Als Beispiel habe ich Gates.si die aus der Gates.jed bzw.
Gates.pld kommt.
Da kan man noch einfach nachrechnen.
Eingang: A,B
Ausgang: Not-(A) NotB,AND A&B ... XOR usw.
Berichte mal ob du mit den Tools jetzt zurechtkommst.


Ich habe x mal versucht mir die ca. 220MB isp-Classic von der
LATTICE Home-Page zu laden.
Nach ca. 50 MB hatte ich immer einen Abbruch der Verbindung.

Mit kostenlosen isp-Classic kan man ua. GALS u. auch die
Prototypen-freundlichen ispGals usw. ... machen.

Berichte mal ob du mit den Tools jetzt zurechtkommst.

Gruss Holger Harten.

von Tobias P. (hubertus)


Angehängte Dateien:

Lesenswert?

@Holger:
Ja die Gates.PLD kann ich auch simulieren, aber mit meinem eigenen File 
klappt das einffach nicht.

Im Anhang meine Datei.

Ich mache erst mal "Device dependent compile", danach sollte ich ja eine 
JEDEC-Datei haben. Anschleissend öffne ich WinSim und werde da mit 
diversen errors begrüsst, dass meine Datei (*.si) korrupt sei.
Im Anhang eine billige Testdazei, mit der ich das ganze mal versucht 
habe. scheint nicht zu klappen :(

Grüsse
 Tobias

von Holger Harten (Gast)


Angehängte Dateien:

Lesenswert?

@Tobias
Ich habe die Simulation mit einer selbst erstellten
z.B  A1.PLD nach einigem rumprobieren zum laufen bekommen.
Ich habe mit da ein eigenes Verzeichniss unter dem Wincupl z.B Ex1 
erstellt.
Wichtig hierbei ist im Tool das
Menu (Wincupel) Abteilung: Settings die Einstellung für das
Working Directory. zB. "C:\Wincupl\Ex1"...
Ich vermute die Tools müssen den genauen Pfad für die einzelnen
Module genau kennen. ( und auch z.B Device den speziellen Typ z.B g16V8x 
)
Da laufen den die einzelnen Files *.Si,*.PLD ....*.SIM ect.
rein.
Die *.Doc hat damit auch das Pinning-Bild für den z.B g16V8..
in z.B 20pol.P-Dip-Gehäuse dabei.
Die "Kopplung" mit der PLD-Gleichung u. dem Simulator habe ich
mit dem mini-Menu gemacht. ( recht spartanisch ist das da gehalten...  )
Damit wird dan die *.PLD Gleichung angedockt, an das Tool mit
Signal-Logic-Plotter..???

Achtung:
( Im der pdf-Datei Bug-Report darf der
Name im Feld [Name...}für das Simu-Toool nicht gleich dem PLD-File sein,
--sonst kann das Tool abstürzen .
Abhilfe: _A1.PLD wird A1.si usw. )

Press Compile ... Sim ect.
Vector auf z.B 11 stellen. Input-Signale alle 11 vorgeben 1 oder 0.
Danach die Signale einzeln noch auf 101xx11.... modifizieren.


Und dan danch Compile Sim ect.

Und danach das Sim-Ergebnis "explizit" nochmal zuweisen.

Dan werden die Ausgänge in Abhängigkeit der PLD-Gleichung
neu und frisch ausgeplottert.

( Bei Änderungen an der PLD-Gleichung, einfach die neue PLD-Gleichung 
nochmals
 mit den obigen Schritten neu andocken und somit ankoppeln.
Sonst stellt sich das Tool bockig an,und wirft nur Error's raus.
Ist also nicht so für das versuchsweise rantasten u. entwickel gedacht )

Dynamische Erweiterungen u. Änderungen auf der orginal PLD-Gleichung 
sind
im Plott nicht sofort sichtbar. Also nicht das gelbe vom Ei.
Auch ist der Bild-Refresh für die neuen Plot-Results nur
durch Klicken in ein anderes Fenster u. wieder zurück dynamisch
möglich.

Ich habe benerkt das das Tool mit den Datei-Pfaden ect. nicht so recht 
klarkommt.
Auf der Desktop-Veknüpfung habe ich zusätzlich  noch die Ausführen
"C:\Wincupl\Ex1" gelegt.
Project-Management ist u.a nicht die Stärke von den Tools.
Muss aber auch noch etwas mehr die Infos dazu lesen.
Ich werde mit mal in Zukunft das kostenlose isp-Lever Classic zulegen.
Habe aber mit den ca. 220 MB DSL download immer Abbrüche der Verbindung.

Berichte mal ob du damit zurecht kommst.
Gruss Holger.

von Holger Harten (Gast)


Angehängte Dateien:

Lesenswert?

Bild dazu.

von Tobias P. (hubertus)


Lesenswert?

@Holger:
Danke für deine Bemühungen. Nun, nachdem ich das working directory 
gesetrzt hab, tut sich wenigstens irgendwas im Simulator. Es 
funktioniert zwar überhaupt nicht, aber ist ja im Prinzip egal, ich kann 
das GAL ja dann hardwaremässig testen.

könntest du mir noch schnell sagen, was für dich das mini-Menu ist?

und: recht hast du, spartanisch ist das Programm allemal! aber zum 
erstellen eines simplen JEDEC-Files langts. Für CPLDs würd' ich sowas 
allerdings nicht nehmen... Da ist mir Quartus II von Altera lieber ;)

Grüsse
   Tobias

von moin (Gast)


Lesenswert?

jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjooooooooooooooo 
ooooooooooooooooooooooooooooooooooooojjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjoo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjooooooooooooooooooooooooooooooooooooooooojjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjooooojjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjooooooooooooooooooo 
oooojjjjjjjjjjjjjjjjjjjjjjjjjjooooooooooooooooooooooojjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooojjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjoooooooooooooooooooooooooooooooooooooooooooo 
oooooooooooooooooooooooooooooojooooooooooooooooooooooooooooooooooooooooo 
ooooooooü

von Tobias P. (hubertus)


Lesenswert?

hach, du bist aber lustig. ich lach mich krank.

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.