summaryrefslogblamecommitdiff
path: root/tests/merge.scade
blob: 9e666a145ba94dc76025c82a743a1d2aa20dbc7c (plain) (tree)





















                                                                           
type t1 = enum { True, False, Error };

node #pragma kcg expand #end
  mm(clock clk: t1; v: int when (clk match True)) returns(r: int)
var lr: int;
let
  lr = 0 -> pre r;
  r = merge(clk;
        v;
        lr when (clk match False);
        -1 when (clk match Error));
tel

node test(i: int) returns (a, b, c: int; exit: bool)
var clock clk: t1;
let
  exit = i >= 30;
  clk = if i mod 5 = 0 then True else if i mod 9 = 8 then Error else False;
  a = mm(clk, i when (clk match True));
  b = if clk = True then 1 else 0;
  c = if clk = Error then 1 else 0;
tel