adaptive SoCs