Low Level Hardware Description; a foundation for building hardware design tools