Para resolver un problema con un sistema digital, se puede usar sistemas combinacionales (compuertas logicas sin usar señales de reloj) o sistemas asíncronos (compuertas y memorias) o sistemas síncronos (usando adicionalmente señales de reloj)
Estos sistemas son digitales, no usan software pues el circuito tiene empotrado en su diseño su funcion.
Para poder hacer la optimizacion de un circuito digital, se usan mapas de karnoug (no recuerdo como se escribe, asi que perdon por el burricidio) o mejor conocidos como mapas "K".
Ya te di la pauta para que hagas tu investigacion, y si tienes dudas especificas sobre terminologia con gusto te podremos orientar.
Salu2!