Describir: Hardware description languages and their applications