packages feed

clash-ghc-0.3: primitives/clash.sized.signed.json

[ { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.eqS"
    , "templateE" : "~ARG[0] = ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.gtS"
    , "templateE" : "~ARG[0] > ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.ltS"
    , "templateE" : "~ARG[0] < ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.geS"
    , "templateE" : "~ARG[0] >= ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.leS"
    , "templateE" : "~ARG[0] <= ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.minBoundS"
    , "templateE" : "signed'((~LIT[0]-1) => '1', (~LIT[0]-2) downto 0 => '0')"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.maxBoundS"
    , "templateE" : "signed'((~LIT[0]-1) => '0', (~LIT[0]-2) downto 0 => '1')"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.plusS"
    , "templateE" : "~ARG[1] + ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.minS"
    , "templateE" : "~ARG[1] - ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.timesS"
    , "templateE" : "resize(~ARG[1] * ~ARG[2], ~LIT[0])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.negateS"
    , "templateE" : "-~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.absS"
    , "templateE" : "abs ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.fromIntegerS"
    , "templateE" : "to_signed(~ARG[1], ~LIT[0])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.quotS"
    , "templateE" : "~ARG[1] / ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.remS"
    , "templateE" : "~ARG[1] rem ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.divS"
    , "templateD" :
"~SYM[0]_divS : block
  signal ~SYM[1] : ~TYP[1];
  signal ~SYM[2] : ~TYP[2];
  signal ~SYM[3] : ~TYP[1];
begin
  ~SYM[1] <= ~ARG[1];
  ~SYM[2] <= ~ARG[2];
  ~SYM[3] <= ~SYM[1] / ~SYM[2];
  ~RESULT <= ~SYM[3] - to_signed(1,~LIT[0]) when ~SYM[1](~SYM[1]'high) = not (~SYM[2](~SYM[2]'high)) else
             ~SYM[3];
end block;"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.modS"
    , "templateE" : "~ARG[1] mod ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.toIntegerS"
    , "templateE" : "to_integer(~ARG[0])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.andS"
    , "templateE" : "~ARG[1] and ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.orS"
    , "templateE" : "~ARG[1] or ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.xorS"
    , "templateE" : "~ARG[1] xor ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.complementS"
    , "templateE" : "not ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.bitS"
    , "templateD" :
"~SYM[0]_bitS : block
  signal ~SYM[1] : ~TYP[1] := ~DEFAULT[1];
begin
  ~SYM[1] <= ~ARG[1];
  process(~SYM[1])
    variable ~SYM[2] : ~TYPO;
  begin
    ~SYM[2] := (others => '0');
    ~SYM[2](~SYM[1]) := '1';
    ~RESULT <= ~SYM[2];
  end process;
end block;"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.testBitS"
    , "templateD" :
"~SYM[0]_testBitS : block
  signal ~SYM[1] : ~TYP[1];
begin
  ~SYM[1] <= ~ARG[1];
  ~RESULT <= ~SYM[1](~ARG[2]) = '1';
end block;"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.shiftLS"
    , "templateE" : "shift_left(~ARG[1],~ARG[2])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.shiftRS"
    , "templateE" : "shift_right(~ARG[1],~ARG[2])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.rotateLS"
    , "templateE" : "rotate_left(~ARG[1],~ARG[2])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.rotateRS"
    , "templateE" : "rotate_right(~ARG[1],~ARG[2])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.finiteBitSizeS"
    , "templateE" : "~LIT[0]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.toBitVector"
    , "templateE" : "std_logic_vector(~ARG[1])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.fromBitVector"
    , "templateE" : "signed(~ARG[1])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.resizeS"
    , "templateE" : "resize(~ARG[2],~LIT[1])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.plusS2"
    , "templateE" : "~ARG[1] + ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.minusS2"
    , "templateE" : "~ARG[1] - ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Signed.multS2"
    , "templateE" : "~ARG[1] * ~ARG[2]"
    }
  }
]