1 Anmerkungen zur Entwicklung von GALs mit LOG/iC 1.1 Generic Array Logic (GAL) - Prinzip Ein GAL (Generic Array Logic) stellt ein (wieder)programmierbares UND- Array mit einem festen ODER Array dar. Zusätzlich kann es ausgangsseitig z.b. mit D-FlipFlops konfiguriert werden. Eingänge UND-ARRAY ODER-ARRAY FF/ Logik Ausgänge x 1 UND-ARRAY x 2 x 3 ODER-ARRAY y 1 y 0 y 1 = x 1 x 2 x 3 x 2 y 0 = x 1 x 3 x 1 GAL 16V8 Der Baustein besitzt 10 feste Eingänge und 8 konfigurierbare Ausgangszellen. Die Ausgangszellen lassen sich auch als Eingang definieren bzw. können als Rückführung eines Signals in die Schaltung verwendet werden. Damit ist der GAL ein flexibler einsetzbarer Baustein mit 10-17 Eingängen und 8-1 Ausgängen. Der Pin 1 und der Pin 11 besitzen eine Sonderstellung beim GAL 16V8, weil an diese Pins der Takt bzw. der Out-
1.2 Anmerkungen zum Arbeiten mit LOG/iC 2 put Enable angelegt werden kann. Diese zwei Pins sind mit den internen D_FlipFlops verbunden und stuern somit die Registerausgänge des ICs. Weitere Informationen zu diesem Baustein finden Sie im Datenblatt unter: http://www.latticesemi.com/lit/docs/datasheets/pal_gal/16v8.pdf 1.2 Anmerkungen zum Arbeiten mit LOG/iC Die Basisform der LOG/iC Eingabe ist die Texteingabe. Bei dieser Eingabeform formulieren Sie Ihre Problemstellung mit Hilfe von Befehlen in LOG/iC Syntax. Sie schreiben also ein LOG/iC Programm. Ein LOG/iC Programm ist im Regelfall in zwei verschiedenen Dateien enthalten. Die erste Datei hat die Endung.dcb. Die dcb-datei enthält ausschließlich solche Programmteile, die sich mit der eigentlichen Logik ihrer Schaltung beschäftigen. Die zweite LOG/iC Programmdatei hat die Endung.ddv. In diese Datei kommen alle die Teile ihres LOG/iC Programmes, die vom ausgewählten Bauteil abhängig sind. Programme und Dateien des LOG/iC Compiler Texteditor.dcb Syntax Checker LOG/iC Compiler Optimize.ddv Syntax Checker Konsistenzprüfung Fitting Report Optimierung Output Prog.file Gen.
1.2 Anmerkungen zum Arbeiten mit LOG/iC 3 Die Überprüfung der Syntax, die Konsistenzprüfung bzgl. des ausgewählten Bauteils und die Optimierung wird als Optimierungsphase des Designablaufs bezeichnet. In der Ausgabe-Generierungsphase des Designablaufs wird ausschließlich die ddv-datei gelesen. Dies Datei wird zunächst auf korrekte Syntax geprüft. Danach werden in zwei Schritten die von Ihnen gewünschte Dokumentation sowie die eigentlichen Bauteildaten erzeugt. Downloads für Software findet man unter www.logic2.de Beispiel: Beschreiben Sie einen Binärzähler mit Hilfe eines Zustandsgraphen, der von 0 bis 3 zählt und in jedem Zustand angehalten und auf Null gestellt werden kann (Mealy-Automat). Wenn weitergezählt wird, gilt jedoch wieder der Zählerstand des entsprechenden Zustandes. Der Automat soll synchron zurückgesetzt werden. (vgl. Beispiele in der Vorlesung) Ablauftabelle: Z t X t Z t+1 Y t x0 sres y1,y0 0 1 z 1 z 1 0 1 z 2 0 1 z 3 0 1 z 1 z 2 z 2 z 3 z 3 0 1 1 0
1.2 Anmerkungen zum Arbeiten mit LOG/iC 4 Pinbelegung: clk GAL16V8 20 1 19 VCC y1 x0 4 sres 5 12 GND 10 11 y0 Aufbau des ddv-file: *IDENTIFICATION Beispiel - FSM / J. Baesig *PLD TYPE = GAL16V8 ; *PINS sres = 5, x0 = 4; y0 = 12, y1 = 19; qq0 = 18, qq1 = 17; *END Aufbau des dcb-file: *IDENTIFICATION Beispiel - Mealy-FSM / J. Baesig *X-NAMES sres, x0 ;! Eingaenge *Y-NAMES y1, y0;! Ausgaenge *FLOW-TABLE! Ablauftabelle $HEADER : X [sres,x0] : Y [y1,y0] ; S0 : X 1 0 : Y : F0 ;! S1 = aktueller Zustand 1 S0 : X : Y : F1 ;! F1 = Folgezustand 1 S0 : X 0 - : Y : F0 ; S1 : X 1 0 : Y : F1 ; S1 : X : Y 0 1 : F2 ; S1 : X 0 - : Y : F0 ; S2 : X 1 0 : Y : F2 ;
1.2 Anmerkungen zum Arbeiten mit LOG/iC 5 S2 : X : Y 1 0 : F3 ; S2 : X 0 - : Y : F0 ; S3 : X 1 0 : Y : F3 ; S3 : X : Y : F0 ; S3 : X 0 - : Y : F0 ; $HEADER : Q [qq1,qq0] ;! Zustandskodierung S0 : Q ; S1 : Q 1 0 ; S2 : Q 0 1 ; S3 : Q ; *BOOLEAN-EQUATIONS *SPECIAL-FUNCTIONS $QALL.REG = DFL ;! Verwendung von D-FF *END Beispiel: Beschreiben Sie einen Binärzähler mit Hilfe eines Zustandsgraphen, der von 0 bis 3 zählt und in jedem Zustand angehalten werden kann (Medvedev-Automat). Der Automat soll synchron zurückgesetzt werden. (vgl. Beispiele in der Vorlesung) Ablauftabelle: Z t X t Z t+1 Y t x0 sres y1,y0 0 1 z 1 z 1 0 1 z 2 0 1 z 3 0 1 z 1 z 2 z 2 z 3 z 3 0 1 1 0
1.2 Anmerkungen zum Arbeiten mit LOG/iC 6 Pinbelegung: clk GAL16V8 20 1 19 VCC y1 x0 4 sres 5 12 GND 10 11 y0 Aufbau des ddv-file: *IDENTIFICATION Beispiel - FSM / J. Baesig *PLD TYPE = GAL16V8 ; *PINS sres = 5, x0 = 4; y0 = 12, y1 = 19; *END Aufbau des dcb-file: *IDENTIFICATION Beispiel - Medvedev-FSM / J. Baesig *X-NAMES sres, x0 ;! Eingaenge *Y-NAMES y1, y0;! Ausgaenge *FLOW-TABLE! Ablauftabelle $HEADER : X [sres,x0] : Y [y1,y0] ; S0 : X 1 0 : F0 ;! S1 = aktueller Zustand 1 S0 : X : F1 ;! F1 = Folgezustand 1 S0 : X 0 - : F0 ; S1 : X 1 0 : F1 ; S1 : X : F2 ; S1 : X 0 - : F0 ; S2 : X 1 0 : F2 ; S2 : X : F3 ; S2 : X 0 - : F0 ;
1.2 Anmerkungen zum Arbeiten mit LOG/iC 7 S3 : X 1 0 : F3 ; S3 : X : F0 ; S3 : X 0 - : F0 ; $HEADER : Q [ y1,y0] ;! Zustandskodierung S0 : Q ; S1 : Q 0 1 ; S2 : Q 1 0 ; S3 : Q ; *BOOLEAN-EQUATIONS *SPECIAL-FUNCTIONS $QALL.REG = DFL ;! Verwendung von D-FF *END
1.2 Anmerkungen zum Arbeiten mit LOG/iC 8