packages feed

clash-ghc-0.3.1: primitives/clash.sized.unsigned.json

[ { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.eqU"
    , "templateE" : "~ARG[0] = ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.gtU"
    , "templateE" : "~ARG[0] > ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.ltU"
    , "templateE" : "~ARG[0] < ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.geU"
    , "templateE" : "~ARG[0] >= ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.leU"
    , "templateE" : "~ARG[0] <= ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.maxBoundU"
    , "templateE" : "unsigned'((~LIT[0]-1) downto 0 => '1')"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.plusU"
    , "templateE" : "~ARG[1] + ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.minU"
    , "templateE" : "~ARG[1] - ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.timesU"
    , "templateE" : "resize(~ARG[1] * ~ARG[2], ~LIT[0])"
    }
  }
, { "Primitive" :
    { "name"     : "CLaSH.Sized.Unsigned.fromIntegerU"
    , "primType" : "Function"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.quotU"
    , "templateE" : "~ARG[1] / ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.remU"
    , "templateE" : "~ARG[1] rem ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.modU"
    , "templateE" : "~ARG[1] mod ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.toIntegerU"
    , "templateE" : "to_integer(~ARG[0])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.andU"
    , "templateE" : "~ARG[1] and ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.orU"
    , "templateE" : "~ARG[1] or ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.xorU"
    , "templateE" : "~ARG[1] xor ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.complementU"
    , "templateE" : "not ~ARG[1]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.bitU"
    , "templateD"  :
"~SYM[0]_bitU : block
  signal ~SYM[1] : ~TYP[1];
begin
  ~SYM[1] <= ~ARG[1];
  process(~SYM[1])
    variable ~SYM[2] : ~TYPO;
  begin
    ~SYM[2] := (others => '0');
    -- pragma translate_off
    if ~SYM[1] < ~SYM[2]'low or ~SYM[1] > ~SYM[2]'high then
      assert false report (\"Index: \" & integer'image(~SYM[1]) & \", is out of bounds: \" & integer'image(~SYM[2]'low) & \" downto \" & integer'image(~SYM[2]'high)) severity warning;
      ~SYM[2] := ~ERRORO;
    else
    -- pragma translate_on
      ~SYM[2](~SYM[1]) := '1';
    -- pragma translate_off
    end if;
    -- pragma translate_on;
    ~RESULT <= ~SYM[2];
  end process;
end block;"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.testBitU"
    , "templateD" :
"~SYM[0]_testBitU : block
  signal ~SYM[1] : ~TYP[1];
  signal ~SYM[2] : ~TYP[2];
begin
  ~SYM[1] <= ~ARG[1];
  ~SYM[2] <= ~ARG[2];
  -- pragma translate_off
  process(~SYM[1],~SYM[2]) begin
    if ~SYM[2] < ~SYM[1]'low or ~SYM[2] > ~SYM[1]'high then
      assert false report (\"Index: \" & integer'image(~SYM[2]) & \", is out of bounds: \" & integer'image(~SYM[1]'low) & \" downto \" & integer'image(~SYM[1]'high)) severity warning;
      ~RESULT <= ~ERRORO;
    else
    -- pragma translate_on
      ~RESULT <= ~SYM[1](~SYM[2]) = '1';
    -- pragma translate_off
    end if;
  end process;
  -- pragma translate_on
end block;"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.shiftLU"
    , "templateE" : "shift_left(~ARG[1],~ARG[2])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.shiftRU"
    , "templateE" : "shift_right(~ARG[1],~ARG[2])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.rotateLU"
    , "templateE" : "rotate_left(~ARG[1],~ARG[2])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.rotateRU"
    , "templateE" : "rotate_right(~ARG[1],~ARG[2])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.finiteBitSizeU"
    , "templateE" : "~LIT[0]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.toBitVector"
    , "templateE" : "std_logic_vector(~ARG[1])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.fromBitVector"
    , "templateE" : "unsigned(~ARG[1])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.resizeU"
    , "templateE" : "resize(~ARG[1],~LIT[0])"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.plusU2"
    , "templateE" : "~ARG[1] + ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.minusU2"
    , "templateE" : "~ARG[1] - ~ARG[2]"
    }
  }
, { "BlackBox" :
    { "name"      : "CLaSH.Sized.Unsigned.multU2"
    , "templateE" : "~ARG[1] * ~ARG[2]"
    }
  }
]