Describir: Designing with FPGAs and CPLDs