Source: https://www.emi.ac.ma/eleuldj/Cours/CAO_VLSI/Support_Cours/Conception_logique.pdf