def fix2real(uval, conv):
    """
    Convert a 32 bit unsigned int register into the value it represents in its Fixed arithmetic form.
    @param uval: the numeric unsigned value in simulink representation
    @param conv: conv structure with conversion specs as generated by I{get_conv}
    @return: the real number represented by the Fixed arithmetic defined in conv
    @todo: Better error detection and management of unsupported operations and arguments
    """
    res = 0
    int_val =  ((uval & conv["int_mask"]) >> conv["bin_point"])
    dec_val = conv["dec_step"] * (uval & conv["dec_mask"])
    if conv["signed"] and (uval & conv["sign_mask"] > 0):
        res = conv["int_min"] + int_val + dec_val
    else: 
        res = int_val + dec_val
    return (res / conv["scaling"])