Diplomarbeit
GALs Auf der Controllerkarte
GAL 1: Interruptsteuerung des MC68020
Das GAL 1 dient der Steuerung der
Interrupt-Anforderungen der mit dem MC68020 kommunizierenden Baugruppen.
Der Baustein funktioniert wie ein Prioritätsencoder, d.h. die anstehenden
Interruptanforderungen werden nach ihrer Wichtigkeit verschlüsselt und dem
Prozessor MC68020 über eine Kombination der Signale IPL0\, IPL1\ und IPL2\
(Interrupt-Level 0 - 7) weitergegeben, wobei IPL0\ die niedrigste und IPL2\ die
höchste Wertigkeit besitzen. Level 7 zeigt einen
Nicht-Maskierbaren-Interrupt (NMI) an und hat die höchste Priorität.
Diese Interruptanforderung wird durch das Signal IRQEXT1\ ausgelöst.
Die zweithöchste Priorität wurde der Interrupt-Anforderung des
Serien/Parallel-Wandlers zugeordnet, damit gewährleistet wird, daß
die Daten aus dem Schieberegister möglichst schnell ausgelesen werden
können.
Die beiden nächstwichtigen Interrupt-Anforderungen sind die
des Parallelinterface/Timer MC68230 und die Interruptanforderung des MC68681,
dessen serielle Schnittstelle auf dem Controller nur zu Testzwecken benutzt
wird.
Der Interrupt-Level 2 wurden an den Timer des PI/T vergeben, der
allerdings in der Gesamtschaltung voraussichtlich keine Funktion erhält.
Level 0 bedeutet, daß keine Interruptanforderung anliegt und der Prozessor
seinen Arbeitszyklus fortsetzen kann (siehe auch Tabelle 10 im Kapitel 2.1.3.6.
Interruptbehandlung). Es folgen die Pinbelegung und die mit dem GAL-Assembler
erzeugte Datei (IRQ.PDS), welche die Pinbelegung des Bausteins und die
schaltalgebraischen Zusammenhänge enthält.
Bild 26: GAL 1 Pinbelegung
Sourcecode für die Programmierung von GAL 1
;PALASM Design Description ;---------------------------------- Declaration Segment --------------------------------------- TITLE INTERRUPTSTEUERUNG DES MC68020 PATTERN GAL 1 FILE:IRQ.PDS REVISION 1.0 AUTHOR HANSEN / HOLTBECKER COMPANY FH DÜSSELDORF DATE 09/03/93 CHIP GAL 1 PALCE16V8 ;---------------------------------- PIN Declarations -------------------------------------------- PIN 1 NC INPUT PIN 2 IRQSP INPUT PIN 3 IRQEXT2 INPUT PIN 4 IRQEXT1 INPUT PIN 5 IRQTI230B INPUT PIN 6 IRQTI230A INPUT PIN 7 IRQ230B INPUT PIN 8 IRQ230 INPUT PIN 9 IRQ68681 INPUT PIN 10 GND POWER PIN 11 PU INPUT PIN 12 IPL0 COMBINATORIAL ; OUTPUT PIN 13 IPL1 COMBINATORIAL ; OUTPUT PIN 14 IPL2 COMBINATORIAL ; OUTPUT PIN 15 AVEC COMBINATORIAL ; OUTPUT PIN 16 NC PIN 17 NC PIN 18 NC PIN 19 NC PIN 20 VCC POWER ;----------------------------------- Boolean Equation Segment ------------------------------- EQUATIONS /IPL2 = (/IRQEXT1 + (IRQEXT1 * /IRQSP) + (IRQEXT1 * IRQSP * /IRQ230A) + (IRQEXT1 * IRQSP * IRQ230A * /IRQ230B)) * PU /IPL1 = (/IRQEXT1 + (IRQEXT1 * /IRQSP) + (IRQEXT1 * IRQSP * IRQ230A * IRQ230B * /IRQ68681) + (IRQEXT1 * IRQSP * IRQ230A * IRQ230B * IRQ68681 * /IRQTI230A)) * PU /IPL0 = (/IRQEXT1 + (IRQEXT1 * IRQSP * /IRQ230A) + (IRQEXT1 * IRQSP * IRQ230A * IRQ230B * /IRQEXT2) + (IRQEXT1 * IRQSP * IRQ230A * IRQ230B * IRQ68681 * IRQTI230A * /IRQTI230B)) * PU /AVEC = IRQEXT1 * /IRQSP * PU
GAL 2: IACK-Steuerung des MC68020
GAL 2 übernimmt die Funktion eines
Binärdecoders und weist die vom Mikroprozessor MC68020 kommenden
Bestätigungen auf die Interrupt-Anforderungen den betreffenden Bausteinen
zu.
Die Decodierung erfolgt über die Adressen A1 - A3. Die Freigabe vom
Mikroprozessor erhält GAL 2, sodald die Funktionscode-Signale am MC68020
(FC0 - FC2) auf "high" gesetzt werden, wodurch ein
Interrupt-Acknowledge-Zyklus angezeigt wird. Die Bestätigungen werden nach
der gleichen Prioritätsfolge vergeben wie die der zugehörigen
Interrupt-Anforderungen. Dadurch wird gewährleistet, daß der
Baustein, der den Interrupt am Prozessor ausgelöst hat, auch dessen
Bestätigung erhält (siehe auch Tabelle 11 im Kapitel 2.1.3.6.
Interruptbehandlung).
Bild 27: GAL 2 Pinbelegung
Sourcecode für die Programmierung von GAL 2
;PALASM Design Description ;---------------------------------- Declaration Segment --------------------------------------- TITLE IACK-STEUERUNG DES MC68020 PATTERN GAL 2 FILE:IACK.PDS REVISION 1.0 AUTHOR HANSEN / HOLTBECKER COMPANY FH DÜSSELDORF DATE 09/07/93 CHIP GAL 2 PALCE16V8 ;---------------------------------- PIN Declarations -------------------------------------------- PIN 1 AS INPUT PIN 2 A1 INPUT PIN 3 A2 INPUT PIN 4 A3 INPUT PIN 5 NC INPUT PIN 6 NC INPUT PIN 7 NC INPUT PIN 8 NC INPUT PIN 9 NC INPUT PIN 10 GND POWER PIN 11 FC INPUT PIN 12 IACKSP COMBINATORIAL ; OUTPUT PIN 13 IACKEXT2 COMBINATORIAL ; OUTPUT PIN 14 IACKEXT1 COMBINATORIAL ; OUTPUT PIN 15 IACKTI230B COMBINATORIAL ; OUTPUT PIN 16 IACKTI230A COMBINATORIAL ; OUTPUT PIN 17 IACK230B COMBINATORIAL ; OUTPUT PIN 18 IACK230A COMBINATORIAL ; OUTPUT PIN 19 IACK68681 COMBINATORIAL ; OUTPUT PIN 20 VCC POWER ;----------------------------------- Boolean Equation Segment ------------------------------- EQUATIONS /IACKEXT1 = /A1 * /A2 * /A3 * /AS * FC /IACKSP = A1 * /A2 * /A3 * /AS * FC /IACK230A = /A1 * A2 * /A3 * /AS * FC /IACK230B = A1 * A2 * /A3 * /AS * FC /IACK68681 = /A1 * /A2 * A3 * /AS * FC /IACKTI230A = A1 * /A2 * A3 * /AS * FC /IACKTI230B = /A1 * A2 * A3 * /AS * FC
GAL 3: DTACK-Steuerung des MC68020
GAL 3 nimmt die DTACK\-Signale der Peripheriebausteine,
der Speicher und des Serien/Parallel-Wandlers sowie die beiden externen
DTACK\-Signale auf und teilt dem Mikroprozessor MC68020, codiert über
dessen Eingangssignale DSACK0\ und DSACK1\ mit, ob es sich bei dem anstehenden
Datentransfer um einen Transfer über einen 8 Bit-Port (MC68230, MC68681,
Dual-Port RAM) oder über einen 32 Bit-Port (Serien/Parallel-Wandler, EPROM,
RAM) handelt.
Der externe DSACK\ wird in Form von DTEXT0\ und DTEXT1\ direkt vom
GAL an den Prozessor weitergegeben. Er muß bei der momentanen
Programmierung des GALs extern codiert werden. Liegt kein DTACK\-Signal an, legt
der Prozessor einen Wartezyklus ein. Je nach anliegendem DTACK\ wird dem
Prozessor angezeigt, wieviele Bytes übertragen werden können, so
daß er die entsprechende Anzahl von Buszyklen durchführen kann.
Bild 28: GAL 3 Pinbelegung
Sourcecode für die Programmierung von GAL 3
;PALASM Design Description ;---------------------------------- Declaration Segment ----------------------------- TITLE DTACK - STEUERUNG PATTERN GAL 3 FILE:DTACK.PDS REVISION 1.0 AUTHOR HANSEN / HOLTBECKER COMPANY FH DÜSSELDORF DATE 08/02/93 CHIP GAL 3 PALCE16V8 ;---------------------------------- PIN Declarations --------------------------------- PIN 1 DT230A INPUT PIN 2 DT230B INPUT PIN 3 DT681 INPUT PIN 4 DTEXT0 INPUT PIN 5 DTEXT1 INPUT PIN 6 DTSP INPUT PIN 7 DTEPR INPUT PIN 8 DTRAM INPUT PIN 9 NC INPUT PIN 10 GND POWER PIN 11 DS INPUT PIN 12 DSACK1 COMBINATORIAL ; OUTPUT PIN 13 DSACK0 COMBINATORIAL ; OUTPUT PIN 14 NC PIN 15 NC PIN 16 NC PIN 17 NC PIN 18 NC PIN 19 NC PIN 20 VCC POWER ;----------------------------------- Boolean Equation Segment -------------------- EQUATIONS /DSACK0 = (/DT230A+/DT230B+/DT681+/DTEXT0+/DTSP+/DTEPR+/DTRAM) * /DS /DSACK1 = (/DTEXT1+/DTSP+/DTEPR+/DTRAM) * /DS
GAL 4: Byteauswahl in den Speicherbänken
GAL 4 ist für die korrekte Steuerung der
Byte/Wortzugriffe (siehe Kapitel 2.1.3.1.2 Busoperationen) innerhalb
der 32 Bit breiten RAM- und EPROM-Bänke zuständig.
Die Adressen A0 und A1 und die beiden Tri-State-Ausgänge des MC68020 SIZE0\ und SIZE\1 werden
innerhalb des GALs entsprechend der Schaltungsnachbildung in Bild 11
programmiert.
Bild 29: GAL 4 Pinbelegung
Sourcecode für die Programmierung von GAL 4
;PALASM Design Description ;---------------------------------- Declaration Segment --------------------------------------- TITLE SPEICHERADRESSIERUNG PATTERN GAL 4 FILE:MEMADR.PDS REVISION 1.0 AUTHOR HANSEN / HOLTBECKER COMPANY FH DÜSSELDORF DATE 08/25/93 CHIP GAL 4 PALCE16V8 ;---------------------------------- PIN Declarations -------------------------------------------- PIN 1 RAM INPUT PIN 2 S1 INPUT PIN 3 S0 INPUT PIN 4 A0 INPUT PIN 5 A1 INPUT PIN 6 EPR INPUT PIN 7 EPRB INPUT PIN 8 NC INPUT PIN 9 NC INPUT PIN 10 GND POWER PIN 11 DS INPUT PIN 12 LLDRAM COMBINATORIAL ; OUTPUT PIN 13 LMDRAM COMBINATORIAL ; OUTPUT PIN 14 UMDRAM COMBINATORIAL ; OUTPUT PIN 15 UUDRAM COMBINATORIAL ; OUTPUT PIN 16 LLDEPR COMBINATORIAL ; OUTPUT PIN 17 LMDEPR COMBINATORIAL ; OUTPUT PIN 18 UMDEPR COMBINATORIAL ; OUTPUT PIN 19 UUDEPR COMBINATORIAL ; OUTPUT PIN 20 VCC POWER ;----------------------------------- Boolean Equation Segment ------------------------------- UUDRAM = /A1 * /A0 */DS * /RAM UMDRAM = ((/S0 * /A1) + (/A1 * A0) + (S1 * /A1))* /DS * /RAM LMDRAM = ((/A0 * A1) + (/A1 * /S0 * /S1) + (S1 * S0 * /A1) + (/S0 * /A1 * A0)) * /DS * /RAM LLDRAM = ((A0 * S0 * S1) + (/S0 * /S1) + (A0 * A1) + (A1 * S1)) * /DS * /RAM UUDEPR = /A1 * /A0 */DS * (/EPR +/EPRB) UMDEPR = ((/S0 * /A1) + (/A1 * A0) + (S1 * /A1))* /DS * (/EPR +/EPRB) LMDEPR = ((A0 * S0 * S1) + (/S0 * /S1) + (A0 * A1) + (A1 * S1)) * /DS * (/EPR + /EPRB) LLDEPR = /A1 * /A0 */DS * (/EPR +/EPRB)
GAL 5: Adressierung der Speicherbänke
GAL 5 decodiert an Hand der Adressen A19 - A21 die
jeweiligen Speicherbänke und steuert sie an, wenn die beiden
Freigabe-Signale Adress Strobe (AS\) und RAM\ vorliegen.
Durch das Flipflop, gebildet durch IC14B und IC14D, wird gewährleistet, daß das Signal
RAM\ erst aktiviert wird, wenn der Prozessor sich nicht mehr in der Bootphase
befindet. Das Flipflop sorgt außerdem dafür, daß die EPROMs
während des Hochlaufens der Controllerkarte stets angesprochen werden.
Bild 30: GAL 5 Pinbelegung
Sourcecode für die Programmierung von GAL 5
;PALASM Design Description ;---------------------------------- Declaration Segment --------------------------------------- TITLE ADRESSIERUNG DER SPEICHERBÄNKE PATTERN GAL 5 FILE:BANK.PDS REVISION 1.0 AUTHOR HANSEN / HOLTBECKER COMPANY FH DÜSSELDORF DATE 09/03/93 CHIP GAL 5 PALCE16V8 ;---------------------------------- PIN Declarations -------------------------------------------- PIN 1 A21 INPUT PIN 2 A20 INPUT PIN 3 A19 INPUT PIN 4 RAM INPUT PIN 5 NC INPUT PIN 6 NC INPUT PIN 7 NC INPUT PIN 8 NC INPUT PIN 9 NC INPUT PIN 10 GND POWER PIN 11 AS INPUT PIN 12 BANK8 COMBINATORIAL ; OUTPUT PIN 13 BANK7 COMBINATORIAL ; OUTPUT PIN 14 BANK6 COMBINATORIAL ; OUTPUT PIN 15 BANK5 COMBINATORIAL ; OUTPUT PIN 16 BANK4 COMBINATORIAL ; OUTPUT PIN 17 BANK3 COMBINATORIAL ; OUTPUT PIN 18 BANK2 COMBINATORIAL ; OUTPUT PIN 19 BANK1 COMBINATORIAL ; OUTPUT PIN 20 VCC POWER ;----------------------------------- Boolean Equation Segment ------------------------------- EQUATIONS /BANK1 = /AS * /RAM * /A21 * /A20 * /A19 /BANK2 = /AS * /RAM * A21 * /A20 * /A19 /BANK3 = /AS * /RAM * /A21 * A20 * /A19 /BANK4 = /AS * /RAM * A21 * A20 * /A19 /BANK5 = /AS * /RAM * /A21 * /A20 * A19 /BANK6 = /AS * /RAM * A21 * /A20 * A19 /BANK7 = /AS * /RAM * /A21* A20 * A19 /BANK8 = /AS * /RAM * A21 * A20 * A19