Generando un circuito que coincida con una función booleana dada utilizando la bi-descomposición

4

Estoy buscando una explicación paso a paso de cómo obtener el circuito de una función booleana determinada mediante bi-recomposición .

Tengo una función dada como:

  

f (a, b, c, d) = abc ~ d + ab ~ cd + a ~ bcd + ~ abcd

Las formas normales que conozco son:

A.) Plan de Karnaugh:

k-map:

resultado:

  1. DNF:f=~abcd+a~bcd+ab~cd+abc~d
  2. KNF:(~a+~b+~c+~d)*(a+b)*(a+c)*(b+c)*(a+d)*(b+d)*(c+d)

DNSenpuertas(a~bcd):

B.)Segundométodo:minimizaciónporQuine&McCluskey:

Elresultadotambiénes:f=(~abcd)+(a~bcd)+(ab~cd)+(abc~d)

( herramienta ) con entrada 1: a, b, c, dy 2: [7,11,13,14]

13puertaslógicas

C.)Simplificandolafunciónen Wolfram Alpha

El resultado es: f = (abc) XOR (abd) XOR (acd) XOR (bcd)

11puertaslógicas

(herramientautilizadaparalavisualización: logic.ly )

D.) Con la bi-descomposición encontré este resultado:

7 puertas lógicas (el rendimiento debe ser probado por puntos de referencia)

¿Pero cómo llegar allí? Una explicación paso a paso / pseudo código es lo que estoy buscando.

    
pregunta kimliv

1 respuesta

4

El truco general para la solución de bi-descomposición es identificar XORs.

Una XOR de 4 variables de \ $ X \ oplus Y \ oplus X \ oplus W \ $ genera el siguiente mapa de Karnaugh (k-map). Observe el patrón de tablero de ajedrez.

Exceptolaúltimafilaycolumna,sealineacontuk-map.Porlotanto,podemosusarla4variableXORcomobaseyenmascararlasnodeseadas.Consutabla,deseaenmascararunoscuando\$\bar{A}\bar{D}\$o\$\bar{B}\bar{C}\$.Lainversa(cuandosepermiten)eslaecuación\$\overline{\bar{A}\bar{D}+\bar{B}\bar{C}}\$quesesimplificaa\$(A+D)(B+C)\$,pruebaacontinuación.

$$\overline{\bar{A}\bar{D}+\bar{B}\bar{C}}\\\equiv(\overline{\bar{A}\bar{D}})(\overline{\bar{B}\bar{C}})\\\equiv(\overline{(\bar{A})}+\overline{(\bar{D})})(\overline{(\bar{B})}+\overline{(\bar{C})})\\\equiv(A+D)(B+C)$$AgregueelXORyobtenga\$(A\oplusB\oplusC\oplusD)(A+D)(B+C)\$.Estoes4puertas;unXORde4entradas,dosORde2entradasyunANDde3entradas.Sitodoseconvierteenpuertasde2entradas,entoncesseconvierteen7puertas;tresXOR,dosORydosAND.Estocoincideconlabi-descomposiciónFig.2.

$$(A\oplusB\oplusC\oplusD)(A+D)(B+C)\\\equiv((A\oplusB)\oplus(C\oplusD))(A+D)(B+C)\\\equiv(((A\oplusB)\oplus(C\oplusD))(A+D))(B+C)\,\,\#\,as\,2-input\,gates$$

Labi-descomposiciónFig.3utilizaunenfoquequeagarraelXORmáspequeño;\$A\oplusB\$y\$C\oplusD\$,luegosaqueelresto.\$(A\oplusB)CD\$y\$AB(C\oplusD)\$.Finalmente,ordenándolosjuntos\$(A\oplusB)CD+AB(C\oplusD)\$.Luegoconviertaapuertasde2entradas\$((A\oplusB)C)D+A(B(C\oplusD))\$.EstoahoracoincideconlaFig.3.

$$grp0=(A\oplusB)CD\,\,\#\,primero\,máspequeño\,XOR\,grupo\\grp1=AB(C\oplusD)\,\,\#\,segundo\,máspequeño\,XOR\,grupo\\grp0+grp1=(A\oplusB)CD+AB(C\oplusD)\\\equiv((A\oplusB)C)D+A(B(C\oplusD))\,\,\#\,as\,2-input\,gates$$

Tuvequebuscarladefiniciónde"bi-descomposición", y mi explicación es demasiado grande para caber en un comentario. La "bi-descomposición" solía llamarse "agrupación"; que recuerdo vagamente que mi profesor lo llamó hace muchos años. El proceso consiste en tomar una función y componerla como sub-funciones. Este enfoque es piraticamente útil cuando los únicos 1s adyacentes en un mapa K son diagonales. XOR / XNOR luego expresa las subfunciones.

La mejor descripción en línea que encontré es:

respondido por el Greg

Lea otras preguntas en las etiquetas