data path with register