Hardware description for software engineers.