📄 delaytransition.hs
字号:
-- | Transition delays of boolean signal.module Language.Atom.Common.DelayTransition ( delayRise , delayFall ) whereimport Language.Atomimport Language.Atom.Common.OneShotimport Language.Atom.Common.Timer-- | Delays the rise of a Term Bool by a given number of cycles. A fall is immediate.delayRise :: Name -> Int -> Term Bool -> System (Term Bool)delayRise name num input = scope name $ do assert "positiveNumber" $ num >= 0 t <- timer "timer" state <- bool "state" False rise <- oneShotRise "oneShot" input rule "start" $ do when rise start t num rule "set" $ do whenDone t when input state <== true rule "clear" $ do when $ inv input state <== false return $ input &&. value state-- | Delays the fall of a Term Bool by a given number of cycles. A rise is immediate.delayFall :: Name -> Int -> Term Bool -> System (Term Bool)delayFall name num input = do o <- delayRise name num $ inv input return $ inv o
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -