programmable pipeline