programming of programmable devices, digital design methodologies, use of hardware