packages feed

clash-ghc-0.4: primitives/CLaSH.Signal.Internal.json

[ { "BlackBox" :
    { "name"      : "CLaSH.Signal.Internal.register#"
    , "comment"   :
    "register# :: SClock clk     -- ARG[0]
               -> a              -- ARG[1]
               -> CSignal clk a  -- ARG[2]
               -> CSignal clk a"
    , "templateD" :
"register_~SYM[0] : block
  signal ~SYM[1] : ~TYP[1];
  signal ~SYM[2] : ~TYP[2];
begin
  ~SYM[1] <= ~ARG[1];

  process(~CLK[0],~RST[0],~SYM[1])
  begin
    if ~RST[0] = '0' then
      ~SYM[2] <= ~SYM[1];
    elsif rising_edge(~CLK[0]) then
      ~SYM[2] <= ~ARG[2];
    end if;
  end process;

  ~RESULT <= ~SYM[2];
end block;"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Signal.Internal.regEn#"
    , "comment"   :
    "regEn# :: SClock clk       -- ARG[0]
            -> a                -- ARG[1]
            -> CSignal clk Bool -- ARG[2]
            -> CSignal clk a    -- ARG[3]
            -> CSignal clk a"
    , "templateD" :
"regEn_~SYM[0] : block
  signal ~SYM[1] : ~TYP[1];
  signal ~SYM[2] : ~TYP[2];
  signal ~SYM[3] : ~TYP[3];
begin
  ~SYM[1] <= ~ARG[1];
  ~SYM[2] <= ~ARG[2];

  process(~CLK[0],~RST[0],~SYM[1],~SYM[2])
  begin
    if ~RST[0] = '0' then
      ~SYM[3] <= ~SYM[1];
    elsif rising_edge(~CLK[0]) then
      if ~SYM[2] then
        ~SYM[3] <= ~ARG[3];
      end if;
    end if;
  end process;

  ~RESULT <= ~SYM[3];
end block;"
    }
  }

, { "Primitive" :
    { "name"      : "CLaSH.Signal.Internal.signal#"
    , "primType"  : "Function"
    }
  }
, { "Primitive" :
    { "name"      : "CLaSH.Signal.Internal.mapSignal#"
    , "primType"  : "Function"
    }
  }
, { "Primitive" :
    { "name"      : "CLaSH.Signal.Internal.appSignal#"
    , "primType"  : "Function"
    }
  }
, { "Primitive" :
    { "name"      : "CLaSH.Signal.Internal.foldr#"
    , "primType"  : "Function"
    }
  }
, { "Primitive" :
    { "name"      : "CLaSH.Signal.Internal.traverse#"
    , "primType"  : "Function"
    }
  }
]