Wir basteln uns ein Flipflop!
Zustand des Flipflops |
![]() |
Belegung von q, q' ( q= ![]() |
Zustand unverändert |
![]() |
(set, reset) = (1, 1) |
Veränderung |
![]() |
set = 0
![]() |
reset = 0
![]() |
Modellierung:
set, reset, q, q' | $=$ | unendliche Listen von Werten, wobei jede Position in Liste einem Zeit-Takt entspricht |
------------------------ 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]
-}