Ciências da computação dia 27
diminuindo circuitos
Para esta aula você precisará lembrar da aula 25
Um circuito simplificado é feito para diminuir a quantidade de componentes, que, por consequência, diminui o tempo de execução, custo para ser construido (tanto em mão de obra, como em dinheiro) e também economiza espaço em um chip.
Um fator importante a se saber,é que nem sempre o circuito que tem menos componentes ele é necessariamente melhor
veja esses dois circuitos.
Muitos dirão que o circuito 1 é o melhor (lembrando que estou pensando em tempo de execução, e não em espaço ou custo)
Mas na realidade os dois possuem o mesmo desempenho
analisando o primeiro, podemos ver que temos apenas duas portas, uma que será executada depois da outra, já que a porta OR que está no final depende da execução da porta AND que está no começo, sendo assim pensando em 10ns de execução para cada temos 20ns para a execução do circuito 1 no total.
já no circuito 2, temos uma porta a mais, no entanto, repare que as duas portas OR serão executadas simultaneamente, uma vez que elas não possuem nenhuma dependência e estão ligadas diretamente a entrada de corrente elétrica, sendo assim, designamos 10ns para essas duas portas e mais 10ns para a AND que está no final.
sendo assim, os dois circuitos possuem o mesmo desempenho, ou seja você não poderá pensar em tempo de execução na hora de escolher o circuito que você vai usar (apenas nesse caso)
para diminuir um circuito, você primeiro precisará ter a equação que o descreve
exemplo:
f(a, b, c) = (a + b) * (a + c)
depois você precisará lembrar dos axiomas e suas duais (disponível aqui → aula 25)
resolvendo o circuito acima
f(a, b, c) = (a + b) * (a + c)
axioma 7' --- distributiva
axioma 7 → x * (y + z) = x * y + x * z
axioma 7' → x +(y * z) = (x + y) * (x + z)
sendo assim
f(a,b,c) = a + (b * c)