4.14. GAL Programmierer

Einleitung

In der letzten Zeit findet man immer häufiger Schaltungen, die programmierbare Logikbausteine, kurz PLD (programmable logic devices) enthalten. Bei diesen handelt es sich um vom Anwender zu programmierende Bausteine, deren Funktion durch einen Programmiervorgang festgelegt wird. Inzwischen gibt es solche Bausteine von den verschiedensten Herstellern in unterschiedlichen Ausführungen und Bezeichnungen. Die gebräuchlichsten Bezeichnungen sind zur Zeit:

PLD: Programmable Logic Device
PAL: Programmable Array Logic
GAL: Generic Array Logik

Allen gemeinsam ist die Eigenart, dass sie für die kompliziertesten Logikschaltungen programmiert werden können, die sich aus den Grundverknüpfungen UND, ODER und NICHT realisieren lassen. Die meisten der am Harkt erhältlichen PLD enthalten programmierbare UND-, ODER- sowie ANTI VALENZ-Verknüpfungen. llm solche Bausteine sinnvoll programmieren zu können, sind gute Kenntnisse in der Digitaltechnik erforderlich. Für die Programmierung benötigt man ein entsprechendes Programmiergerät und die für den jeweiligen Baustein erforderliche Software. Im folgenden wird der Aufbau eines Programmierinterfaces als zusätzlichen Schnittstelle zum MFA-Mikrocomputer zur Programmierung von Bausteinen des Typs GAL 16V8 beschrieben.

Funktionsbeschreibung.

Das GAL-Programmierinterface basiert auf der Schaltung der Programmierbaren Parallelschnittstelle BFZ/MFA 4.3.Die Funktion der Programmierbaren Parallelschnittstelle ist in der zugehörigen Fachpraktischen Übung beschrieben, so dass hier lediglich auf die für den Einsatz als GAL-Programmierinterface notwendigen Schaltungserweiterungen eingegangen wird.

Diese Erweiterungen der Parallelschnittstelle sind:

  1. Ein bidirektionaler Bus-Treiberbaustein 74LS245.
  2. Einen Schaltungsteil, mit dem die Spannung von 5V elektronisch geschaltet werden kann.
  3. Einen Schaltungsteil zur Erzeugung der notwendigen Editierspannung.
  4. Für den Programmiervorgang die benötigte mechanische Aufnahme.

Aufgabe des bidirektionalen Bus-Treibers.

Aufgabe des bidirektionalen Bus-Treibers ist es, den Datenbus einerseits, sowie die Datenanschlüsse des programmierbaren Parallelschnittstellenbausteins andererseits beim Schreib- bzw. Lesevorgang zu entlasten. Seine Funktion ist im Zusammenhang mit den- Baugruppen 8-K-RAM/EPROM Speicherkarten bereits beschrieben und wird als bekannt vorausgesetzt. Der Baustein wird durch das Adressvergleichersignal ausgewählt. Die Übertragungsrichtung für die Daten -entweder vom Datenbus zum Schnittstellenbaustein, oder umgekehrt- wird mittels des Steuersignals IOW an dem Richtungssteuerungsanschluss DIR bestimm.

Der elektronische Schalter für die Versorgungsspannung

Bild 2 zeigt den Schaltungsausschnitt, der die Versorgungsspannung von 5V zum Anschlussstift 20 des
Aufnahmesockels für den zu programmierenden GAL-Baustein schaltet. Die so geschaltete Versorgungsspannung wird auch über einen Pull-up-Widerstand an den Anschlussstift 12 des Sockels gelegt. Über den Portanschluss PC5 wird die Basis von Transistor V2 angesteuert. Führt PC5 einen L-Pegel, so sperrt der Transistor. Als Folge davon fließt kein Kollektorstrom durch die Teilerwiderstände R7 und R8 und der Transistor V1 wird ebenfalls sperren. An seinem Kollektoranschluss stellt sich somit ein hochohmiger Zustand ein, Wird später das GAL-Programmierprogramm gestartet, so wird nach der Initialisierung des Schnittstellenbausteins an dem Portanschluss PC5 ein H-Pegel ausgegeben und damit der Transistor V2 über den Basisspannungsteiler RS und R6 leitend geschaltet. Bedingt durch den jetzt fließenden Kollektorstrom von V2, wird die Basis von V1 angesteuert. V2 schaltet ebenfalls durch und damit ist die Versorgungsspannung an den o.g. Anschlüssen vorhanden. Dieser Zustand wird auch durch die Leuchtdiode V3 angezeigt.

Bild 2: Elektronisches Schalten der Versorgungsspannung

Erzeugung der Editierspannung

Zur Gewinnung der beim Programmieren des GAL-Bausteins erforderlichen Editierspannung von 16,5V dient der nachfolgend beschriebene Schaltungsteil. Er besteht im wesentlichen aus drei Funktionsblöcken:

  • Einem Rechteckgenerator
  • einer Spannungsvervielfachungsschaltung
  • einem elektronischen Schalter

Der Rechteckgenerator

Der Rechteckgenerator wird mit dem Timer-Baustein 555 und ,der im Bild 3 dargestellten Beschaltung aufgebaut. Die Innenschaltung des Timers zeigt, dass er aus zwei Komparatoren aufgebaut ist, wobei von Komparator Nl der invertierende Eingang auf zwei Drittel und der nichtinvertierende Eingang von Komparator N2 auf ein Drittel der Versorgungsspannung intern vorgespannt sind. Die Ausgänge der Komparatoren wirken auf ein SR-Flipflop, dessen Ausgangszustand nach außen geführt ist. Am Q-Nicht-Ausgang des Flipflops ist die Basis des Entladetransistors angeschlossen, dessen Open-Collektor-Anschluss ebenfalls außen zur Verfügung steht.

Bild 3: Innenschaltung und äußere Beschaltung des Timerbausteins 555

Durch die äußere Beschaltung mit den Widerständen R11 und R12 sowie dem Kondensator C1 wird die Gesamtschaltung zum Rechteckgenerator. Die Versorgungsspannung für diesen Schaltungsteil wird aus der vorhandenen negativen Spannung von -12V als niedrigem und 0V als hohem Versorgungspotential gewonnen. Für die folgende Betrachtung gilt, dass der statische Rücksetzeingang (4) mit hohem Potential verbunden und damit wirkungslos ist. Geht man von dem Anfangszustand aus, dass das Flipflop zurückgesetzt sei, so ist der Entladetransistor im leitenden Zustand und damit der Ausgang (7) niederohmig nach dem niedrigen Versorgungspotential geschaltet. Hierdurch stellt sich an den beiden Komparatoren folgender Zustand ein: Der Ausgang von Komparator N1 wird einen L-Pegel annehmen, weil an seinem invertierenden Eingang ein höheres Potential anliegt, als an seinem nicht invertierenden Eingang und bei Komparator N2 steht -umgekehrt- ein H-Pegel an. An den FlipFlop eingängen ergibt
sich daraus die Signalkombination für das Setzen. Damit wird ger Ausgang (3) einen H-Pegel führen. Die Basis des Entladetransistors wird nicht mehr angesteuert, der Transistor sperrt.

Die Folge davon ist, dass ein Ladestrom über die Widerstände R11 und R12 in den Kondensator C1 fließen kann. Der Kondensator lädt sich mit der Zeitkonstanten (R11 + R12) * C1 auf. Übersteigt die Spannung am Kondensator den Wert von 1/3 der Versorgungsspannung, so wird der Komparator N2 seinen Zustand wechseln und nun L-Pegel führen. Das Flipflop geht in den Speicherzustand, d.h. es bleibt gesetzt. Der Ladestrom fließt weiter und die Spannung am Kondensator steigt weiter an. Nachdem dann die Kondensatorspannung 2/3 der Versorgungsspannung überschritten hat, schaltet Komparator N1 ebenfalls um. Er führt jetzt einen H-Pegel, der bewirkt, dass das Flipflop zurückgesetzt wird. Ausgang (3) führt nun L-Pegel und der Entladetransistor wird durchgeschaltet. Dadurch wird der Kondensator C1 über den Widerstand R12 und die Kollektor-Emitterstrecke des Entladetransistors entladen. Die hierbei wirksame Zeitkonstante ist R12 * C1. Die Entladung des Kondensators wird solange fortgesetzt, bis die Kondensatorspannung wieder 1/3 der Versorgungsspannung unterschreitet.

Das Ausgangssignal am Anschlussstift (3) des Timerbausteins bildet einen rechteckförmigen Spannungsverlauf. Die Pulszeit für den H- Pegel lässt sich aus dem Produkt

T1 = 0,66 * (R11 + R12) * C1
T1 = 0,66 * (33k + 3k3) * 22nF = 0,527ms

berechnen und die Pausenzeit aus:

Tp = 0,66 * R12 * C1
Tp = 0,66 * 33k * 22nF = 0,479ms

Hierdurch lässt sich auch Rechtecksignals, entweder aus oder aus der Gleichung die der Periodendauer
Summe von T1 + Tp oder aus der Gleichspannung

T = 0,66 * (R11 + 2 * R12) * C1
T = 0,66 * (3k3 + 66k) * 22nF = 1,006ms

bestimmen und damit ergibt sich auch die Frequenz der Rechteckspannung als Kehrwert der Periodendauer T zu ca. 1kHz. Siehe hierzu auch Bild 4.

Bild 4 : lmpulsverlauf am Timerausgang (3), Leerlauf

Die Spannungsvervielfachung

Die Erzeugung einer höheren Spannung, wie sie später für den Programmiervorgang der GAL-Bausteine benötigt wird, erfolgt im wesentlichen durch die beiden Kondensatoren C3 und C4, sowie den Dioden V4 und V5. Die Spannungsquelle liefert eine Spannung von 12V, die über die Diode V4 den Kondensator C3 auf diese Spannung auflädt. Ebenso wird der Kondensator C4 über die weitere Diode V5 aufgeladen.

Der Kondensator C3 wird zudem über den Widerstand R19 durch den Rechteckgenerator angesteuert. Der Rechteckgenerator liefert, wie bereits betrachtet, eine Rechteckimpulsfolge, deren beide Pegel 0V bzw. -12V betragen. Während der Ansteuerung mit -12V fließt also ein zusätzlicher Ladestrom über die Diode V4 in den Kondensator C3 und lädt ihn auf nahezu 24V auf. Wechselt dann der Pegel des Generators auf 0V, so kann der Kondensator sich nur über die Diode V5 zum Kondensator C4 entladen. Dieser Kondensator wird also auf die Spannung von ca. 24V aufgeladen. An ihm kann sie auch später abgenommen werden.

Bild 5 (links) zeigt die Stromrichtung Aufladevorgang für Kondensator C3 während Ansteuerung mit -12V über R19. Bild 5(rechts) zeigt Stromrichtung bei der Entladung von C1, die Aufladung von C4 zur Folge hat.

Bild 5a: Aufladung von C3 / Entladung von C3

Elektronischer Schalter und Stabilisierung für die Editierspannung.

Die durch die Spannungsvervielfachung gewonnene Gleichspannung von ca. 24V am ·Kondensator C4 wird mittels des Längstransistors V6 zum entsprechenden Anschluss des GAL-Bausteins durchgeschaltet.
Transistor V6 kann diese Spannung nur dann schalten, wenn seine Basis angesteuert wird. Hierzu dient der Transistor V7, der von den Portanschlüssen PC3 und PC4 des Schnittstellenbausteins angesteuert wird. Bild 6 zeigt diesen Teil der Schaltung. Liefern die Portanschlüsse einen L-Pegel, so wird V7 und damit
auch V6 sperren – die Editierspannung ist. abgeschaltet. Bei H-Pegel an den Portanschlüssen wird über den Basis-Spannungsteiler R13, R14 der Transistor V7 in den leitenden Zustand gebracht und damit auch V6 durchgesteuert. Durch den Widerstand R18 fließt. nun ein Strom über die Emitter-Kollektorstrecke des Transistors V6. Die Kondensatorspannung von nahezu 24V wird durch den Widerstand R18 und R17 geteilt und zudem durch die beiden in Reihe geschalteten Zenerdioden V5 und V9 auf 16,8V stabilisiert.
Diese so gewonnene Gleichspannung steht, gesteuert durch die Portanschlüsse des Schnittstellenbausteins am Anschluss (2) des Stecksockels für den GAL-Baustein zur Verfügung.

Bild 6 : Elektronischer Schalter und Stabilisierung für die Editierspannung

Bestückungspan

Bestückungsplan Frontplatine

Bedienung der Programmiersoftware

Einsatz der Programmiersoftware

Hardwarevoraussetzungen

Die Software liegt in Form einer Diskette (3, 5 oder 5, 25″ ) vor und muss ab Adresse C000H betrieben werden.

Zur Anwendung der Software benötigt man 4-KByte RAM ab Adresse D000H. Günstig ist hierbei die Verwendung der 64-K-Speicehrkarte mit dem MAT32k.


Programmaufruf

Die GAL-Programmiersoftware wird mittels des Go-Kommandos gestartet. Hierzu rufen Sie das GO-Kommando auf und geben die Startadresse der Programmiersoftware, C000H, ein. Hierdurch wird folgende Meldung auf dem Bildschirm erzeugt:

GAL 16V8, 16V8A V2.3

EDIT
PROG
DELETE
HELP
TEST
READ
LPRINT
VERIFY
CHANGE
NEW
QUIT
KMD*>

Dieses ist die Liste der unter dem GAL-Programmierer möglichen Kommandos. Das Prompt ist an dem zusätzlichen Zeichen “*” von den Kommandoaufforderungen KMD> (MAT 85) und KMD+ (MAT 85+) zu unterscheiden.

Beschreibung der GAL-Programmier-Kommandos

Das Editierkommando EDIT

Dieses Kommando dient zur Erstellung der dem Logikdiagramm entsprechenden Verbindungsliste. Die gewünschten Verbindungen können durch den Programmierer erzeugt werden und sie werden im RAM-Speicher abgelegt (fuse map)

Mit diesem Kommando können die UND-Verknüpfungsfelder 0 bis 7, das Ausgangs-Steuerwort, eine Bausteinbezeichnung sowie das Securitybit des GAL-Bausteins editiert werden.

Editieren der UND-Verknüpfungen

Nach dem Aufruf des Kommandos ·EDIT, durch Eingabe des ersten Buchstabens gefolgt von Carriage return, erfolgt die Meldung:

KMD*> EDIT? 

Um nun die UND-Verknüpfungen editieren zu können, muß das gewünschte UND-Verknüpfungsfeld 0, 1, 2 … 7 ausgewählt werden und die Auswahl mit (CR) bestätigt werden. Geben Sie deshalb das gewünschte Feld an (z.B. Feld 0).

KMD*> EDIT? 0(CR)

Hierauf erfolgt folgende Meldung:

AND-ARRAY 0

NR:0481216202428PTD
(OE)0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Die Kennzeichnung “X” bedeutet hierbei, dass eine Verbindung programmiert werden soll. Ein”-” bedeutet, dass hier später keine Verbindung programmiert wird. Die Software schlägt also die Programmierung aller möglichen Verknüpfungen vor. Der Vorschlag für jede Verbindung kann durch
Überschreiben mit dem Zeichen “-” geändert werden und auch, durch erneute Eingabe von “X” wieder zurückgeändert werden. Hierzu muss die Schreibmarke, das ist der blinkende Unterstrich, mit den Pfeiltasten auf die Stelle in der Tabelle bewegt werden, die geändert werden soll.

Steuerfunktionen innerhalb des Editiermodus:

Betätigung der Taste(n) :

Pfeiltastenbewegen die Schreibmarke
Buchstabe “P”führt zu den Produktterm-Verbindungen
(PTD = Produktterm disable).· Ein “X” an dieser Stelle sperrt die UND-Verknüpfung, unabhängig davon, wie deren übrige· Eingänge programmiert
sind.
Leerzeichenführt zum nächsten AND-Array, bzw. nach AND-Array 7 zum Ausgangs-Steuerwort.
Carriage Returnführt zurück zur KMD*>-Kommandoebene

Editieren des Ausgangs-Steuerwortes

Mit dem Ausgangs-Steuerwort wird die Makrozelle des GAL-Bausteins beeinflusst. Die Bedeutung der einzelnen Bits in dem Steuerwort wird hier nur kurz aufgeführt.

Um das Steuerwort zu editieren geben Sie, nach dem Aufruf des Editierkommandos, den Buchstaben A gefolgt von (CR) ein.

KMD* >' EDIT? A(CR)

Hierauf erscheint die folgende Meldung auf dem Bildschirm

SYNAC00 AC1 70 XOR 7
000000 00000000 0000

Im Rechnervorschlag sind alle Bits des Ausgangs-Steuerwortes auf 0 eingestellt. Änderungen können durch das überschreiben mit dem Wert 1, Rückänderungen durch überschreiben mit 0 durchgeführt werden. Die einzelnen Bits können mit den Pfeiltasten für rechts, bzw. links angewählt werden.

Kurzbeschreibung der Bedeutung der.Bits:

SYNSynchronbit
0 bedeutet, der Baustein arbeitet mit einem Takt
1 bedeutet, der Baustein arbeitet rein kombinatorisch.
AC0 und AC1Architecture Control Bit.
Die Kombination dieser Bits beeinflusst die Makrozelle des GAL-Bausteins so, dass z.B. Ausgänge zu Eingängen geschaltet werden, bzw. festgelegt wird, womit die Ausgangsfreigabe (Output Enable) erfolgen soll, woher ggf. Rückführungen kommen sollen.
AC0 existiert nur einmal für den gesamten Baustein, während AC1 für jede der 8 Ausgangsmakrozellen programmierbar ist.
XORExclusive OR
Hiermit können die Ausgangszustände der ODER-Verknüpfungen invertiert werden.
Eine 1 an der entsprechenden Position invertiert das Signal, eine 0 invertiert das Signal nicht.

Steuerfunktionen innerhalb des Editiermodus:

PfeiltastenSchreibmarke nach rechts bzw. links
Leerzeichenführt zur Bausteinauswahl
Carriage Return (CR)führt zurück zur KMD*>-Kommandoebene

Editieren der Bausteinbezeichnung

Als Bausteinbezeichnung kann ein Name oder eine Bezeichnung der Bausteinfunktion, sowie eine Nummer dienen. Insgesamt darf eine solche Bezeichnung maximal 8 Zeichen lang sein.

Um eine Bausteinbezeichnung zu editieren geben Sie, nach dem Aufruf des Editierkommandos, den Buchstaben B gefolgt von (CR) ein.

KMD*> EDIT? B(CR)

Hierauf erhalten Sie die Meldung

BAUSTEIN-BEZEICHNUNG
 … … … 

Jeder dieser 8 Punkte kann durch einen Buchstaben, eine Ziffer oder ein Leerzeichen überschrieben werden. Die Bausteinbezeichnung wird beim Programmiervorgang des GAL-Bausteins mit programmiert.

Steuerfunktionen innerhalb des Editiermodus:

PfeiltastenSchreibmarke nach rechts bzw. links
Carriage Return (CR)führt zurück zur KMD*>-Kommandoebene

Editieren des Security-Bit

Das Securitybit dient zur Programmierung eines Leseschutzes. Ist dieses Bit im Baustein gesetzt, so kann sein Inhalt nicht gelesen werden. Alle Funktionen, die einen solchen Lesevorgang erfordern (READ, VERIFY) sind nicht mehr durchführbar.

Um das Securitybit zu editieren, geben Sie nach dem Aufruf des Editierkommandos, den Buchstaben S gefolgt von (CR) ein.

KMD*> EDIT? S(CR)

Sie erhalten die Meldung

KMD*> EDIT? SECURITYBIT - _

Der Vorschlag ” – ” bedeutet,. dass kein Leseschutz programiert wird. Ein “X” bedeutet, Leseschutz wird programmiert.

Steuerfunktionen innerhalb des Editiermodus:

Deletelöscht die Eingabe vor Abschluss
Carriage Return (CR)führt zurück zur KMD*>-Kommandoebene

Das Programmierkommando PROG

Mit diesem Kommando wird der Programmiervorgang ausgelöst. Der durch das EDIT-Kommando in den RAM-Bereich für die “Fuse-Hap” eingetragene Inhalt für die UND-Verknüpfungsfelder, das Ausgangs-Steuerwort, die Bausteinbezeichnung und das Securitybit wird in den GAL-Baustein programmiert.

Ein GAL-Baustein des Typs 16 V 8 oder 16 V 8 A muss hierzu in die Fassung des GAL-Programmierinterface gesteckt sein.

Aufruf des Kommandos

KMD*> P(CR)

Es erfolgt die Meldung

KMD*> PROG
CHANGE, PROG, VERIFY

bei fehlerfreier Programmierung.

Bei fehlerhaftem Programmierversuch werden Fehlermeldungen erzeugt.

Das Kommando DELETE

Dieses Kommando dient zum Löschen des Inhaltes eines programmierten GAL-Bausteins. Es werden alle Programmierten Verbindungen, sowie Bausteinbezeichnung und Leseschutz zurückgesetzt.

Aufruf des Kommandos

KMD*> D(CR)

Es erfolgt die Meldung

KMD*> DELETE

Bei fehlerhaftem Versuch werden Fehlermeldungen erzeugt

Das HELP-Kommando

Mit Aufruf dieses Kommandos wird die Kommandoliste nochmals ausgedruckt.

Aufruf des Kommandos

KMD*> H(CR)
Edit
...
...
Quit

Es erfolgt die Meldung

KMD*>

Das TEST-Kommando

Das Test-Kommando dient dazu, dass die Baustein-Bezeichnung aus dem GAL ausgelesen und auf den Bildschirm dargestellt wird.

Aufruf des Kommandos

KMD*> T(CR)

Es erfolgt die Meldung

KMD*> TEST
BAUSTEIN-BEZEICHNUNG
AMPEL 03
KMD*>

Hierin ist die Bezeichnung AMPEL 03 ein Beispiel. Verfügt der Baustein über keine Bezeichnung, so wird diese Zeile als Leerzeile dargestellt.

Das READ-Kommando

Mit diesem Kommando wird der Inhalt aus einem im GAL-Interface eingesteckten Baustein als Fuse-Map ins RAM eingelesen. Der eingelesene Inhalt kann jetzt z.B. bearbeitet oder auch in einen weiteren Baustein programmiert werden.

Das READ-Kommando kann nicht verwendet werden, wenn im Baustein das SECURITY-BIT gesetzt ist. In diesem Fall können die Daten aus dem GAL-Baustein nicht gelesen werden!

Aufruf des Kommandos

KMD*> R(CR)

Es erfolgt die Meldung

KMD*> READ
KMD*>

Das Kommando LPRINT

Mit diesem Kommando können alle Programmierdaten ausgedruckt werden.

Aufruf des Kommandos

KMD*> L(CR)

Es erfolgt die Meldung

KMD*> LPRINT?

An dieser Stelle kann, genau wie beim Editieren, ein Teil des AND-Array ( 0 … 7 ), die Baustein-Bezeichnung bzw. das Ausgangssteuerwort ausgewählt werden. Der jeweils ausgewählte Bereich
wird auf Drucker oder Bildschirm ausgedruckt. Gibt man nichts weiteres an, sondern betätigt lediglich (CR), so wird der komplette Inhalt des RAM-Bereichs ausgedruckt also die Bausteinbezeichnung,
alle acht AND-Arrays und das Ausgangs-Steuerwort.

Das VERIFY-Kommando

Dieses Kommando dient zum Vergleich des RAM-Bereichinhaltes mit dem Inhalt eines im GAL-Programmierinterface eingesteckten GAL-Bausteins. Unterschiede werden hierbei gekennzeichnet.

Das VERIFY-Koaaando kann nicht verwendet werden, wenn im Baustein das SECURITYBIT gesetzt ist. In diesem Fall können die Daten aus dem GAL-Baustein nicht gelesen und damit auch nicht verglichen, werden !

Aufruf des Kommandos

KMD*> V(CR)

Es erfolgt die Meldung

KMD*> VERIFY

bei fehlerfreiem Vergleich, d.h. es besteht an keiner Stelle ein unterschied zwischen RAM- und Bausteininhalt.

Die Fehlermeldungen bei VERIFY-Kommando

Werden durch das Verify-Kommando Unterschiede erkannt, so werden sie wie folgt gemeldet:

Unterschied in der Bausteinbezeichnung

Nach Aufruf des VERIFY-Kommandos erfolgt die Meldung

KMD*> VERIFY
BAUSTEIN-BEZEICHNUNG
AMPEL 03
IC ... RE 2

RAM-Inhalt
IC-Inhalt

Die Meldung zeigt erstens, dass in der Baustein-Bezeichnung Unterschiede gefunden wurden und zweitens, worin diese Unterschiede bestehen. Die Zeile, die mit “IC” beginnt, symbolisiert den Inhalt des GAL-Bausteins. In dem Beispiel sind bei den ersten vier Buchstaben der Baustein-Bezeichnung keine Unterschiede ( … ) , aber bei den letzten vier sind im Baustein die Zeichen RE2 statt L03 (RAM) gefunden worden. Übereinstimmungen werden also durch Punkte und Unterschiede durch die entsprechenden
Zeichen gekennzeichnet.

Unterschied im Ausgangs-Steuerwort

Unterschiede im Ausgangs-Steuerwort werden genauso wie in der Bausteinbezeichnung dargestellt.
Fehlermeldung kann z.B. wie folgt aussehen:·
KMD> VERIFY

AUSGANGS-STEUERWORT

SYNAC00 AC1 70 XOR 7
IC100000 00001111 1111RAM-Inhalt
..…. ….0… …..IC-Inhalt

Unterschied im AND-Array

Nach Aufruf· des VERIFY-Kommandos erscheint zunächst die Fehlermeldung.

KMD*> VERIFY
*** AND-ARRAY UNGLEICH ***
KMD*>

Jetzt gilt es, die Unterschiede im AND-Array ausfindig zu machen. Hierzu muss das EDIT-Kommando aufgerufen werden und die einzelnen Arrays müssen nun auf Fehlermeldungen durchsucht werden. Die Unterschiede werden in den UND-Verknüpfungsfeldern durch die Kennzeichnungen “0” und “1” angezeigt.

Eine “0” besagt hierbei, dass im RAM eine Verbindung (X) eingetragen ist und im Baustein stattdessen keine Verbindung ( – ) programmiert ist.

Eine “1” signalisiert, im RAM ist keine Verbindung ( – ) eingetragen und im/Baustein ist an den Positionen, sind die herkömmlichen eingetragen.

An den Positionen an denen kein Unterschied besteht, sind die herkömmlichen Verbindungszeichen “-” und “X” eingetragen.

Das Kommando CHANGE

Mit diesem Kommando werden die Fehlerkennzeichnungen, die zuvor erzeugt wurden wieder gegen die ursprünglichen RAM-Programmierdaten ausgetauscht. Das Kommando wird bei einem Programmiervorgang automatisch aufgerufen, um evtl. noch vorhandene Fehlermeldungen nicht irrtümlich mit zu übertragen. Ebenfalls werden die alten Fehlermeldungen beim erneuten Aufruf des Kommandos VERIFY durch das CHANGE-Kommando rückgängig gemacht.

Aufruf des Kommandos

KMD*> C(CR)

Es erfolgt die Meldung

KMD*> CHANGE
KMD*>

Das Kommando NEW

Dieses Kommando dient dazu, die Programmierdaten in der Fuse-Map im RAM zurückzusetzen.

Aufruf des Kommandos

KMD*> N(CR)

Es erfolgt die Meldung

GAL 16V8, 16V8A V2.3

KMD*>

Das Kommando QUIT

Durch Aufruf dieses Kommandos wird der GAL-Programmierer verlassen und zur Kommandoebene des Betriebssystems zurückgekehrt.

Aufruf des Kommandos

KMD*> Q(CR)

Es erfolgt die Meldung

KMD*> QUIT
KMD*>

Hinweis:
Die Programmierdaten können mittels des SAVE und des LOAD-Kommandos des Betriebssystems
gespeichert und zurück gelesen werden. Hierbei gilt als Startadresse D000 und als Stoppadresse D89F.


Weitere Informationen

Dokumente