FPGAs Explained: Part III