Automated Design Space Exploration For Digital Hardware