Fehler in einer GAL Logik

1, 2

von Bernd » So 9. Sep 2007, 10:22
Hallo zusammen,

es ist zum verrückt werden. Da nehme ich mal statt einem GAL Typ22V10 ein GAL Typ16V8
und schon ist alles anders. Die eingesetzte Logik stimmt und was macht mein Modul nach dem
Einschalten? Es ist nicht vorhanden. Drücke ich die Resettasten am Modul und dem XL
schaltet es sich ohne Probleme ein. Es hat einige Zeit gedauert bis ich dahinter kam.
Anfangs hatte ich den Verdacht es liegt an dem gewählten Typenmodus - aber dies war es nicht.
Das GAL arbeitet im Sychron-Betrieb und wartet auf die erste Datenübernahme per Clock.
Bis dahin bleiben alle Ausgäng auf Tri-State gesetzt - also nicht vorhanden. Wieder was
dazugelernt. Das 22V10 GAL arbeitet anders. Die Ausgänge sind, wenn sie nicht in der
Logik als Tri-State definiert wurden, immer sofort gesetzt. Damit tritt das Problem erst
gar nicht auf. Demnächst werde ich nur noch 22V10 für den Synchron-Betrieb einsetzen.

Viele Grüße,
Bernd

von HiassofT » So 9. Sep 2007, 13:54
Hallo Bernd!

Kleiner Tip: Lade Dir mal die Datenblätter von Lattice runter, da drin ist die Arbeitsweise der GALs (bzw. der einzelnen Makrozellen) sehr detailliert beschrieben.

Beim 16V8 gibt's 3 Grund-Modi: Registered, Complex und Simple.

Im Registered Mode gibt's einen gemeinsamen Clock-Eingang (Pin 1), und einen gemeinsamen Output Enable Eingang (Pin 11) für alle Ausgänge.

Beim 22V10 ist das ganze tatsächlich ziemlich anders: hier gibt's Registered und Complex (den Simple Mode hat ohnehin kaum wer verwendet, ausser vielleicht wenn man ein altes PAL ersetzten wollte), und es gibt etliche neue Features:

Output Enable ist nun kein fixer Pin mehr sondern ein Logik-Term und kann getrennt für die einzelnen Pins gesetzt werden. Zusätzlich gibt's den Asynchronen Reset und einen Synchronen Preset. Das war mit dem 16V8 einfach nicht möglich.

Kurz zusammengefasst: Beim 16V8 im Registered Mode fällt Pin 11 als I/O weg und ich habe ihn immer fix auf GND gelegt (ansonsten bleiben die Outputs stumm...).

so long,

Hias

von mega-hz » So 9. Sep 2007, 20:20
@Hiassoft:

Ahhh, DAS ist also der Grund, warum alle Versuche mit FlipFLops/Latches oder Zählern bei den 16/20V8ern bei mir fehlschlugen bis jetzt?
OE MUSS also wie bei einem EPROM gesetzt sein, damit sich was tut?

Das werde ich gleich mal testen!

@bernd: das wäre die erklärung für dein Problem!
mach mal oe direkt auf gnd, dann müsste es gehen.

Gruß,
Wolfram.

von Bernd » Mi 12. Sep 2007, 16:02
HiassofT hat geschrieben:Hallo Bernd!

Kleiner Tip: Lade Dir mal die Datenblätter von Lattice runter, da drin ist die Arbeitsweise der GALs (bzw. der einzelnen Makrozellen) sehr detailliert beschrieben.

Beim 16V8 gibt's 3 Grund-Modi: Registered, Complex und Simple.

Im Registered Mode gibt's einen gemeinsamen Clock-Eingang (Pin 1), und einen gemeinsamen Output Enable Eingang (Pin 11) für alle Ausgänge.

Beim 22V10 ist das ganze tatsächlich ziemlich anders: hier gibt's Registered und Complex (den Simple Mode hat ohnehin kaum wer verwendet, ausser vielleicht wenn man ein altes PAL ersetzten wollte), und es gibt etliche neue Features:

Output Enable ist nun kein fixer Pin mehr sondern ein Logik-Term und kann getrennt für die einzelnen Pins gesetzt werden. Zusätzlich gibt's den Asynchronen Reset und einen Synchronen Preset. Das war mit dem 16V8 einfach nicht möglich.

Kurz zusammengefasst: Beim 16V8 im Registered Mode fällt Pin 11 als I/O weg und ich habe ihn immer fix auf GND gelegt (ansonsten bleiben die Outputs stumm...).

so long,

Hias


Hallo Hias,
hallo Wolfram,
die Datenblätter habe ich mir angeschaut. OE liegt bei mir auf Masse. Das Problem habe ich erkannt.
Wird das 16V8 Gal im synchronen Betrieb gefahren kann ein Reset nur mit einem Taktzyklus an Pin1
durchgeführt werden.
Ich habe den Typ 16V8 gegen 22V10 getauscht und benutze jetzt den asynchronen Reset. Das Modul
lässt sich ohne Probleme über die Resettaste wieder zurücksetzen.

Danke,
Bernd
1, 2