delaytransition.hs

来自「Cores are generated from Confluence a mo」· HS 代码 · 共 40 行

HS
40
字号
-- | 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 + =
减小字号Ctrl + -
显示快捷键?