def fixed_to_int_low(value, point):
    if point < 0:
        raise ValueError('point must be more than 0')
    
    if point == 0:
        return 0
    
    if isinstance(value, (int, float)):
        if not isinstance(point, int):
            raise TypeError('point field must be int')
        mag = 2 ** point
        return (float(value) / mag) % 1.0
    
    return vtypes.And(value, vtypes.Repeat(vtypes.Int(1, 1), point))
dataset/ETHPy150Open PyHDI/veriloggen/veriloggen/utils/fixed.py/fixed_to_int_low/original