Beispiel: Modellierung von Schaltungen
Beispiel: Modellierung von Schaltungen
Wir basteln uns ein Flipflop!
Zustand des Flipflops | Belegung von q, q' ( q= q') | |
Zustand unverändert | (set, reset) = (1, 1) | |
Veränderung | set = 0 q = 0 | |
reset = 0 q' = 0 |
Modellierung:
-
set, reset, q, q' $=$ unendliche Listen von Werten, wobei jede Position in Liste einem Zeit-Takt entspricht - Verzögerung (3 Zeiteinheiten) damit Rückkopplung möglich
- Sonderfall: undefinierter Wert
------------------------ flip-flop model
data ThreeVal = U | L | H - undefined, low, high
deriving Show
nand :: ThreeVal->ThreeVal->ThreeVal
nand H H = L
nand L _ = H
nand _ L = H
nand _ _ = U
nandSeq :: [ThreeVal]->[ThreeVal]->[ThreeVal]
nandSeq = zipWith nand
q, q', set, reset :: [ThreeVal]
q = U : U : U : nandSeq set q'
q' = U : U : U : nandSeq reset q
set = [L,L,L,L,L,L,L,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H]
reset = [H,H,H,H,H,H,H,H,H,H,H,H,H,H,L,L,L,L,L,L,L,H,H,H,H,H]
{-
Main> q
[U, U, U, H, H, H, H, H, H, H, H, H, H, H, H, H, H, H, H, H, L,
L, L, L, L, L, L, L, L]
Main> q'
[U, U, U, U, U, U, L, L, L, L, L, L, L, L, L, L, L, H, H, H, H,
H, H, H, H, H, H, H, H]
-}
Next:Benutzerdefinierte Datentypen und TypklassenUp:ListenPrevious:Beispiel: Numerische Differentation und Ronald Blaschke
1998-04-19