Turning Hardware Into Software