aboutsummaryrefslogtreecommitdiffstats
path: root/web/logiteca.html
diff options
context:
space:
mode:
Diffstat (limited to 'web/logiteca.html')
-rw-r--r--web/logiteca.html309
1 files changed, 309 insertions, 0 deletions
diff --git a/web/logiteca.html b/web/logiteca.html
new file mode 100644
index 0000000..0a31d20
--- /dev/null
+++ b/web/logiteca.html
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' lang='es-MX,en'>
+<head>
+<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
+<meta content='initial-scale=1.0, maximum-scale=1.0, user-scalable=yes' name='viewport'/>
+<link rel='stylesheet' href='./static/estilo.css'>
+<title>🥭 &mdash; logiteca</title>
+</head>
+<body>
+<header>
+<p><a href='./index.html'>{🥭}</a></p>
+<h1>logiteca</h1>
+</header>
+<nav><ul><li><a href='#acerca de'>acerca de</a></li>
+<li><a href='#multiplicador de 1 bit'>multiplicador de 1 bit</a></li>
+<li><a href='#contadores'>contadores</a></li>
+<li><a href='#half adder'>half adder</a></li>
+<li><a href='#full adder'>full adder</a></li>
+
+</ul></nav>
+<main><section><p>
+compendio de circuitos lógicos que pueden implementarse en las "danzas compuertas".
+</p>
+<p>
+material de referencia para las <a href='./compudanzas.html'>{compudanzas}</a>
+</p>
+</section><section>
+<h1 id='acerca de'>acerca de</h1>
+<p>
+este es un compendio de circuitos lógicos que pueden implementarse en las "danzas compuertas".
+</p>
+<p>
+están descritos en *verilog*, un lenguaje descriptor de hardware. esto con la idea de estandarizarlos, de facilitar simularlos e implementarlos en otros materiales, y de indicar su cualidad de *red abstracta*.
+</p>
+<p>
+utilizamos el lenguaje a nivel de compuertas lógicas solamente: cada compuerta se expresa como una función (`and()`, `not()`, `or()`, `nor()`, `nand()`, etc) donde el primer argumento es el nombre de la *salida* de la compuerta, y el o los otros argumentos son los nombres de las *entradas*.
+</p>
+<p>
+el número de participantes asignado por circuito está contado como el *número de entradas* más el *número de compuertas*, donde alguna(s) de ella(s) incluyen las compuertas cuyas salidas son también la(s) del circuito. si se tienen más participantes, se pueden agregar el *número de salidas*: persona(s) que copien el resultado de la compuerta correspondiente.
+</p>
+</section><section>
+<h1 id='multiplicador de 1 bit'>multiplicador de 1 bit</h1>
+<p>
+circuito que multiplica a dos números de 1 bit y da el resultado en 1 bit.
+</p>
+<h2 id='multiplicador de 1 bit con compuertas habituales (3 o 4 participantes)'>multiplicador de 1 bit con compuertas habituales (3 o 4 participantes)</h2>
+<pre>
+// multiplicador construido con compuertas habituales
+// entradas (2): a,b
+// salidas (1): r (resultado)
+// compuertas (1): 1 de 2 entradas
+
+module multiplicador( a, b, r);
+
+input wire a, b;
+output wire r;
+
+and C1(r, a, b);
+
+endmodule
+</pre>
+<h2 id='multiplicador de 1 bit con nor (5 o 6 participantes)'>multiplicador de 1 bit con nor (5 o 6 participantes)</h2>
+<pre>
+// multiplicador construido con nor's
+// entradas (2): a,b
+// salidas (1): r (resultado)
+// compuertas (3): 2 de 1 y 1 de 2 entradas
+
+module multiplicador( a, b, r);
+
+input wire a, b;
+output wire r;
+wire p1,p2;
+
+// negadas
+nor C1(p1, a);
+nor C2(p2, b);
+
+// resultado
+nor C3(r, p1, p2);
+
+endmodule
+</pre>
+</section><section>
+<h1 id='contadores'>contadores</h1>
+<p>
+circuitos que incrementan 1 al número binario colocado en la entrada, con el mismo número de bits a la entrada que a la salida.
+</p>
+<p>
+si la salida se "conecta" a la entrada, entonces con cada paso se obtiene el
+<br/>
+número siguiente en la secuencia, es decir se "cuenta".
+</p>
+<p>
+al llegar al último número, se regresa a 0.
+</p>
+<h2 id='contador de 2 bits con compuertas habituales (4 o 6 participantes)'>contador de 2 bits con compuertas habituales (4 o 6 participantes)</h2>
+<pre>
+// contador de 2 bits con compuertas habituales
+// entradas (2): a, b
+// salidas (2): x, y
+// compuertas (2): 1 de 1 y 1 de 2 entradas
+
+module contador(a, b, x, y);
+
+input wire a,b;
+output wire x,y;
+
+not C1(y, b);
+xor C2(x, a,b);
+
+endmodule
+</pre>
+<h2 id='contador de 2 bits con nor (7 o 9 participantes)'>contador de 2 bits con nor (7 o 9 participantes)</h2>
+<pre>
+// contador de 2 bits con nor
+// entradas (2): a, b
+// salidas (2): x, y
+// compuertas (5): 2 de 1 y 3 de 2 entradas
+
+module contador(a, b, x, y);
+
+input wire a,b;
+output wire x,y;
+wire p1, p2, p3;
+
+// negaciones
+nor C1(y, b);
+nor C2(p1, a);
+
+// para x
+nor C3(p2, a,b);
+nor C4(p3, y,p1);
+nor C5(x, p2,p3);
+
+endmodule
+</pre>
+<h2 id='contador de 3 bits con nor (13 o 16 participantes)'>contador de 3 bits con nor (13 o 16 participantes)</h2>
+<pre>
+// contador de 3 bits con compuertas habituales
+// entradas (3): a, b, c
+// salidas (3): x, y, z
+// compuertas (10): 3 de 1, 4 de 2, 3 de 3 entradas
+
+module contador(a, b, c, x, y, z);
+
+input wire a,b,c;
+output wire x,y,z;
+wire p1, p2, p3, p4, p5, p6, p7;
+
+// negaciones
+nor C1(p1, a);
+nor C2(p2, b);
+nor C3(z, c);
+
+// para y
+nor C4(p3, b,c);
+nor C5(p4, p2,z);
+nor C6(y, p3,p4);
+
+// para x
+nor C7(p5, a,b);
+nor C8(p6, p1, p2, z);
+nor C9(p7, a, p2, c);
+nor C10(x, p5, p6, p7);
+
+endmodule
+</pre>
+</section><section>
+<h1 id='half adder'>half adder</h1>
+<p>
+circuito que suma dos bits y da el resultado en dos bits (resultado y *carry*)
+</p>
+<h2 id='half adder con compuertas habituales (4 o 6 participantes)'>half adder con compuertas habituales (4 o 6 participantes)</h2>
+<pre>
+// half adder construido con compuertas habituales
+// entradas (2): a,b
+// salidas (2): r, c (resultado, carry)
+// compuertas (2): 2 de 2 entradas
+
+module halfadder( a, b, r, c);
+
+input wire a, b;
+output wire r,c;
+
+// carry
+and C1(c, a, b);
+
+// resultado
+xor C2(r, a, b);
+
+endmodule
+</pre>
+<h2 id='half adder usando nor (7 o 9 participantes)'>half adder usando nor (7 o 9 participantes)</h2>
+<pre>
+// half adder construido usando nor's
+// entradas (2): a,b
+// salidas (2): r, c (resultado, carry)
+// compuertas (5): 2 de 1 y 3 de 2 entradas
+
+module halfadder( a, b, r, c);
+
+input wire a, b;
+output wire r,c;
+wire p1,p2,p3;
+
+// negadas
+nor C1(p1, a);
+nor C2(p2, b);
+
+// carry
+nor C3(c, p1, p2);
+
+// resultado
+nor C4(p3, a, b);
+nor C5(r, c, p3);
+
+endmodule
+</pre>
+</section><section>
+<h1 id='full adder'>full adder</h1>
+<p>
+circuito que suma tres bits y da el resultado en dos bits (resultado y *carry*).
+</p>
+<h2 id='full adder con compuertas habituales (14 o 16 participantes)'>full adder con compuertas habituales (14 o 16 participantes)</h2>
+<pre>
+// full adder construido con compuertas habituales
+// entradas (3): a, b, c
+// salidas (2): carry, r (resultado)
+// compuertas (11): 2 de 1 y 9 de 2 entradas
+
+module fulladder( a, b, c, r, carry);
+
+input wire a, b, c;
+output wire r, carry;
+wire p1, p2, p3, p4, p5, p6, p7, p8, p9;
+
+// negadas
+not C1(p1, a);
+not C2(p3, p2);
+
+// diferencias b,c
+xor C3(p2, b, c);
+or C4(p4, b, c);
+and C5(p5, b, c);
+
+// armado de resultado
+and C6(p6, p1, p2);
+and C7(p7, a, p3);
+or C8(r, p6, p7);
+
+// armado de carry
+and C9(p8, p1, p5);
+and C10(p9, a, p4);
+or C11(carry, p8, p9);
+
+endmodule
+</pre>
+<h2 id='full adder usando nor (15 o 17 participantes)'>full adder usando nor (15 o 17 participantes)</h2>
+<pre>
+// full adder construido usando nor's
+// entradas (3): a, b, c
+// salidas (2): carry, r (resultado)
+// compuertas (12): 3 de 1, 3 de 2, 4 de 3 y 1 de 4 entradas
+
+module fulladder( a, b, c, r, carry);
+
+input wire a, b, c;
+output wire r, carry;
+wire p1, p2, p3, p4, p5, p6, p7, p8, p9, p10;
+
+// negadas
+nor C1(p1, a);
+nor C2(p2, b);
+nor C3(p3, c);
+
+// pa'l carry
+nor C4(p4, a, b);
+nor C5(p5, a, c);
+nor C6(p6, b, c);
+
+// pa resultado
+nor C7(p7, a, b , c);
+nor C8(p8, p1, b, p3);
+nor C9(p9, a, p2, p3);
+nor C10(p10, p1, p2, c);
+
+// salidas
+nor C11(carry, p4, p5, p6);
+nor C12(r, p7, p8, p9, p10);
+
+endmodule
+</pre>
+<p>
+enlaza aquí <a href='./compudanzas.html'>{compudanzas}</a>
+
+</p>
+</section>
+</main>
+<footer>
+<p><a href='./index.html'>{🥭}</a></p>
+<p>página actualizada en:
+<time datetime='2021-05-20'>sejmana-1660, día 1</time>
+ (12021-05-20)
+</p>
+<a href='https://endefensadelsl.org/ppl_es.html' rel=external target=_blank>ppl: licencia de producción de pares</a></p>
+</footer>
+</body>
+</html>
Un proyecto texto-plano.xyz