' OLMC 6:
!DTACK.OE = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
!DTACK = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
' OLMC 7:
CE = !RW * ROM2
+ !A23 * ROM2
+ !A22 * ROM2
+ !A21 * ROM2
+ A20 * ROM2
+ A19 * ROM2
+ A18 * ROM2
+ AS * ROM2;
----------------------------------------------------------------------
Error: Es konnte kein GAL-Modus gefunden werden!
Mode 'combinational' nicht realisierbar, weil ein Ausgang den 'tristate'-Mode ben”tigt.
Mode 'registered' nicht realisierbar, Signal 'A23' wird nicht rckgekoppelt!
Mode 'tristate' nicht realisierbar, Ausgang 'CE' braucht mehr als 7 Zeilen!
GAL-Logik NICHT erfolgreich aufgearbeitet!
Was mache ich falsch?
Ein GAL hat gewisse Beschränkungen..
Im Modus 'combinational' können die Gleichungen bis zu 8 Oder-Terme haben.
Dann sind aber alle Ausgänge immer aktiv.
Im Modus 'tristate' dürfen die Gleichungen max. 7 Oder-Terme haben.
Die achte Gleichung wird nämlich jeweils für den Enable-Term verwendet.
In o.g. Gleichungen hast Du definiert:
- DTACK ist ein Tristate-Ausgang -> GAL-Modus müsste dazu 'tristate' sein
- CE hat 8 Oder-Terme -> GAL-Modus müsste dazu 'combinational' sein
Beides gleichzeitig geht aber nicht, deshalb die Fehlermeldung!
Abhilfe: CE umschreiben, wie von Tuxie vorgeschlagen:
/CE = /AS * A23 * A22 * A21 * /A20 * /A19 * /A18
+ /ROM2;
Und DTACK sollte so aussehen:
DTACK.OE = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
/DTACK = GND; 'falls unter %PINS DTACK steht
Es geht auch:
DTACK.OE = RW * A23 * A22 * A21 * !A20 * !A19 * !A18 * !AS;
DTACK = VCC; 'dann muss unter %PINS /DTACK stehen