Inhaltsverzeichnis
- 1 Einleitung
- 2 Funktionsbeschreibung.
- 3 Bestückungspan
- 4 Bestückungsplan Frontplatine
- 5 Beschreibung der GAL-Programmier-Kommandos
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:
- Ein bidirektionaler Bus-Treiberbaustein 74LS245.
- Einen Schaltungsteil, mit dem die Spannung von 5V elektronisch geschaltet werden kann.
- Einen Schaltungsteil zur Erzeugung der notwendigen Editierspannung.
- 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: | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | PTD | |
---|---|---|---|---|---|---|---|---|---|---|
(OE) | 0 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | – |
1 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | – | |
2 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | – | |
3 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | – | |
4 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | – | |
5 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | – | |
6 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | – | |
7 | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | – |
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) :
Pfeiltasten | bewegen 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. |
Leerzeichen | führt zum nächsten AND-Array, bzw. nach AND-Array 7 zum Ausgangs-Steuerwort. |
Carriage Return | fü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
SYN | AC0 | 0 AC1 7 | 0 XOR 7 |
0 | 0 | 0000 0000 | 0000 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:
SYN | Synchronbit 0 bedeutet, der Baustein arbeitet mit einem Takt 1 bedeutet, der Baustein arbeitet rein kombinatorisch. |
AC0 und AC1 | Architecture 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. |
XOR | Exclusive 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:
Pfeiltasten | Schreibmarke nach rechts bzw. links |
Leerzeichen | fü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:
Pfeiltasten | Schreibmarke 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:
Delete | lö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
SYN | AC0 | 0 AC1 7 | 0 XOR 7 | ||
IC | 1 | 0 | 0000 0000 | 1111 1111 | RAM-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.