*IDENTIFICATION Wuerfel im PAL Version 2.0 H.Sattler *COMMENT Kombination von STATEMACHINE und COMBINATORIAL. Im Block STATE laeuft (mit CLK auf Pin 1) eine Statemachine, die einen synchronen Zaehler bis 6 bildet. Im Block COM ist durch Rueckkopplung ein Oszillator realisiert der sich mit dem Eingang RUN^ starten laesst. Ist RUN^ low, laeuft der Oszillator, sein Ausgangssignal wird auf Pin 1 gefuehrt und taktet so die Statemachine im Block STATE. Letzte Aenderungen: ------------------- -> 05.05.89, Sattler Blockstruktur eingearbeitet *X-Names RUN^ , ! Enable fuer Oszillator OSZI ; ! Rueckkopplung fuer Oszillator *Y-NAMES OSZI ; ! Oszillator-Ausgang *Z-NAMES LED[4..1] ; ! States fuer FSM und Ausgaenge *LINK RUN^ = OSZI:RUN^ ; Eingaenge OSZI = OSZI:OSZI , CNT:OSZI ; LED[4..1] = CNT:LED[4..1]; Ausgaenge ;=============================================================== @BLOCK = CNT *X-NAMES OSZI; *Z-NAMES LED[4..1] ; ! States fuer FSM und Ausgaenge *Z-VALUES S1 = 1110; Zaehlerstand 1 S2 = 1101; Zaehlerstand 2 S3 = 1100; Zaehlerstand 3 S4 = 1001; Zaehlerstand 4 S5 = 1000; Zaehlerstand 5 S6 = 0001; Zaehlerstand 6 S7 = 0000; nach Power On Reset *FLOW-TABLE RELEVANT = OSZI; S[1..5] , X - , F[2..6]; S6 , X - , F1; S7 , X - , F1; nach Power On Reset *STATE-ASSIGNMENT Z-VALUES @ENDBLOCK = CNT ;=============================================================== ;=============================================================== @BLOCK = OSZI *X-NAMES RUN^,OSZI; *Y-NAMES OSZI; *BOOLEAN-EQUATIONS OSZI = /OSZI & /RUN^; Funktion "GATED OSZILLATOR" @ENDBLOCK = OSZI ;=============================================================== *RUN-CONTROL LISTING = EQUATIONS, PINOUT; PROGFORMAT = JEDEC; *PAL-TYPE TYPE = GAL16V8_R; *PINS CLK = 1, RUN^ = 2, OSZI = 18, LED1 = 15, LED2 = 14, LED3 = 13, LED4 = 12; *END _