Cache controller fur ATARI ST
Fur GAL 3: Syncrones Schaltwerk fur DTACK steuerung
(nur zum Entwurf)

*identification
CCDT3V8;

*type
GAL20V8;

*declaration
z-var = 4;
x-var = 9;

*pins

/AS     = 2,            % Address strobe                %
 CL8    = 3,            % 8 Mhz Takt                    %
 MEM    = 4,            % RAM/ROM-Zugriff               %
/SDT    = 5,            % System DTack                  %
 HIT    = 6,            % Cache-Treffer                 %
/WR     = 7,            % Read/Write                    %
 ENAB   = 8,            % Cache Enable                  %
/RESET  = 9,            % Reset                         %
/FCS    = 10,           % Fpu Chip Select               %
 ST0.R  = 15,           % Bit 0 der Zustandskodierung   %
 ST1.R  = 16,           % Bit 1 der Zustandskodierung   %
 ST2.R  = 17,           % Bit 2 der Zustandskodierung   %
/PAS.R  = 18;           % verzogertes AS-Signal         %

*x-names
 AS = 1, SDT = 2, CL8 = 3, 
 MEM = 4, HIT = 5, WR = 6, ENAB = 7,
 RESET = 8, FCS = 9;
 
*z-names
 ST2 = 1, ST1 = 2, ST0 = 3, PAS = 4;
 
*z-values;

 s1 = 000 0;
 s2 = 001 1;
 s3 = 010 1;
 s4 = 011 1;
 s5 = 100 1;
 s6 = 101 1;
 
 s8 = 101 1;
 
 s9 = 000 1;
 
*flow-table

 s[1..9], --- ---- 1 -, f1;         % RESET -> Anfangszustand %
 s[1..4], 0-- ---- 0 -, f1;         % nicht AS in S1-S4 -> Anfangszustand %

 s1, 1-- 0--- 0 0, f2;
 s1, 1-- -0-- 0 0, f2;
 s1, 1-- --0- 0 0, f2;
 s1, 1-- ---0 0 0, f2;
 s1, 1-- 1101 0 0, f8;              % cache hit -> Zustand S8 %
 s1, 1-- ---- 0 1, f9;              % FPU zugriff -> zustand S9 %
 
 s2, 1-- ---- 0 0, f3;
 s2, 1-- ---- 0 1, f9;              % FPU zugriff -> zustand S9 (zur Sicherheit) %
 
 s3, 1-- ---- 0 -, f4;
 
 s4, 10- ---- 0 -, f4;
 s4, 110 ---- 0 -, f4;
 s4, 111 ---- 0 -, f5;              % nur wenn DTACK und CL8 -> S5 %

 s5, --- ---- 0 -, f6;              % In S5 und S6 wird dtack (PDT) fur den %
                                    % Prozessor erzeugt %
                                    
 s6, --- ---- 0 -, f1;
                                     
 s8, 1-- --0- 0 -, f8;              % Cache hit -> solange AS anliegt und kein %
 s8, 0-- ---- 0 -, f1;              % WR erzeugt wird (read-modify-write zyklus) %
 s8, --- --1- 0 -, f1;              % ist PDT aktiv. %
 
 s9, 1-- ---- 0 1, f9;              % FPU Zugriff %
 s9, 0-- ---- 0 -, f1;
 s9, --- ---- 0 0, f1;
 

 
 
