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]"
}
}
]