Beispiel: (Projektname: DFF)
" Takt (z.B. 1 Hz) am Takt-Eingang C (Clock) oder mit Taster " Schalter am Daten-Eingang D " Schalter am asynchronem Reset-Eingang (AR) DECLARATIONS "********** Ein- und Ausgänge *********************** takt PIN 11; "Takt vom Taktgernerator daten PIN 19; "Eingang Schalter1 heisst Daten reset PIN 18; "Eingang von Taster2 heisst Reset dff PIN 10 ISTYPE'BUFFER,REG'; "REG bedeutet: internes D-Flipflop verwenden, "das dff genannt wird und dessen Q-Ausgang "mit Pin 10 verbunden wird. EQUATIONS "********** Funktionsgleichungen *********************** dff.d = daten; "D-Eing. des FFs mit Schalter Daten beeinflussen dff.ar = reset; "Reset-Eing. des FFs mit Taster Reset dff.clk = takt; "Takt des D-FF vom Taktgenerator
"Untersuchung eines D-FFs " Takt (z.B. 1 Hz) am Takt-Eingang C (Clock) oder wahlweise mit Taster " Schalter am Daten-Eingang D " Schalter am asynchronem Reset-Eingang (AR) DECLARATIONS "********** Ein- und Ausgänge ****************************** takt PIN 11; "Takt vom Taktgernerator daten PIN 19; "Eingang von Schalter1 heisst Daten reset PIN 18; "Eingang von Taster2 heisst Reset dff PIN 10 ISTYPE'BUFFER,REG'; "REG heisst D-Flipflop verwenden, "das dff genannt wird und dessen "Q-Ausgang mit Pin 10 verbunden wird. EQUATIONS "********** Funktionsgleichungen **************************** dff.d = daten; "D-Eing. des Flipflops mit Schalter Daten beeinflussen dff.ar = reset; "Reset-Eing. des FF mit Taster Reset beeinflussen dff.clk = takt; "Takt des D-FF vom Taktgenerator TEST_VECTORS "********** Simulation ************************************** ([ takt ,daten,reset ] -> dff ) [ .c. , 0 , 0 ] -> .x.; ".c. ansteig. und abfallende Taktflanke [ .c. , 1 , 0 ] -> .x.; "FF setzen [ .c. , 0 , 0 ] -> .x.; "FF rücksetzen [ .c. , 1 , 0 ] -> .x.; "FF setzen [ .c. , 1 , 0 ] -> .x.; "FF bleibt gesetzt [ 0 , 1 , 1 ] -> .x.; "Ist asynchroner Reset dominant? [ .c. , 1 , 1 ] -> .x.; "Ist asynchroner Reset dominant? [ .c. , 1 , 0 ] -> .x.; "FF setzen END
(Berücksichtigung der Signallaufzeiten nur bei Timing-Simulation)
MODULE dfftog DECLARATIONS "************* Ein- und Ausgänge ***************************** takt PIN 11; "Takteingang Y0 reset PIN 18; "Rücksetzen mit Taster 2 bit0 PIN 10 ISTYPE'BUFFER,REG';"internes D-FF verwenden, FF heisst bit0 EQUATIONS "**************** Zähler-Gleichungen **************************** bit0.d = !bit0.q; "invertierten FF-Ausgang .q auf Dateneingang .d "zurückführen, d.h. das D-FF toggelt bei jedem Takt "alternative Darstellung: bit0 := !bit0 oder " bit0 := !bit0.fb; bit0.clk = takt; "Takt vom Taktgenerator bit0.ar = reset; "asynchroner Reset mit Taster2 TEST_VECTORS "************* Simulations-Vektoren ************************** ([takt,reset] -> bit0); "Eingäng Takt,Reset -> Ausgang bit0 @repeat 4 { [.c. , 0 ] -> .x.; } "das in { } folgende 4 mal wiederholen @repeat 2 { [.c. , 1 ] -> .x.; } "Takt ist low-high-low .c., reset 0,1 @repeat 4 { [.c. , 0 ] -> .x.; } "der Ausgang wird beobachtet, daher "don't care .x. END