Universidad del Valle de Guatemala Rodrigo Lara, 22866
Departamento de Ingeniería Electrónica Jacob Soto, 22143
IE2024- Electrónica Digital 1 Iann Grijalva, 23055
Hoja de Trabajo #01
Instrucciones
Esta hoja de trabajo se realizará en grupos aleatorios de 3 personas durante la sesión de clase y se
entregará al finalizar la misma. Deberá hacer la entrega en el espacio indicado en Canvas en
formato PDF. Incluya el nombre de todos los integrantes del grupo en su documento. Puede utilizar
cualquier recurso digital que usted desee (presentaciones, libro, en línea, etc).
Ejercicio #01
Describe en sus palabras qué quieren decir las palabras hierarchy, modularity y regularity. Provea
algún ejemplo que NO sea de electrónica digital.
• Jerarquía: se refiere al proceso de organizar las funciones, módulos y sistemas en
divisiones y subdivisiones organizadas dependiendo de su importancia dentro del sistema.
Ej. En una compañía primero esta el CEO luego la junta directiva, jefes de área,
administradores y trabajadores, que comprenden sus funciones y labores dentro de la
misma.
• Modularidad: consiste en la creación de módulos en los que se encapsulen las funciones
específicas, definiéndolas correctamente, de modo que cada una cumpla una función
especifica y no se presten a errores.
Ej. Como los lego, podemos desarrollar piezas complejas formadas por pequeñas piezas,
que luego serán incorporadas a partes mas grandes y complejas, pero siempre
manteniendo su función básica.
• Regularidad: dicta la practica de emplear los módulos de manera consistente y frecuente,
para mejorar la eficiencia y evitar la creación de nuevos módulos innecesarios.
Ejercicio #02
En el contexto de la electrónica digital: ¿Qué quiere decir la disciplina? ¿Cómo se aplica en este
contexto?
La disciplina se refiere a la practica consistente de emplear “las 3 y ´s” para el desarrollo de
sistemas de software y hardware o cualquier proceso de desarrollo, haciéndolo más eficiente y
practico. Dentro de este contexto podemos tomar el ejemplo del desarrollo de un teléfono, en el
que para desarrollarlo no podemos seguir una línea recta de fabricación, sino que debemos dividir
el proceso de fabricación en diversas areas/módulos, cada una cumpliendo funciones definidas sin
cambio, todo esto bajo una jerarquía de trabajo, en la que se priorizan algunas actividades por
sobre otras.
Ejercicio #03
Explique en sus palabras qué es el complemento a dos (recuerde que es tanto una representación
como un procedimiento). Provea ejemplos de al menos 6 bits.
Es un método que se emplea para representar números negativos en sistemas digitales, ya sea
hexadecimal o binario. Consiste en cambiar el valor del bit mas significativo dentro de la secuencia,
ya sea por un 0 (para representar un positivo) o un 1 (para representar un negativo), para usar el
método primero tenemos que cambiar al opuesto, todos los valores de la secuencia de números y
a ese resultado sumarle un 1.
Ejercicio #04
Describa qué es un byte, qué es un bit y qué es un nibble. Indique cuántos números diferentes
puede representar con 1 byte y cuáles son los números más grandes y pequeños que se pueden
escribir con 1 byte. También describa la relación que existe entre un nibble y los números
hexadecimales.
Un byte es un grupo de 8 bits, los cuales en conjunto representan un valor determinado.
Un bit es un valor que puede representar un 0 o un 1
Un nibble similar al byte representa un valor determinado, por medio de la unión de 4 bits
Con 1 byte se pueden representar 65536 números, dentro de 1 byte el número más pequeño que
se puede representar es: 00000000 = 0 y el numero mas grande: 1111 1111 = 255.
Y la relación entre hexadecimales y niveles, radica en que 1 byte almacena 1 nibble y 2 dígitos
hexadecimales, que sumados entregan 1 byte
Ejercicio #05
En la empresa en la que usted está trabajando le han asignado un proyecto en el que debe
convertir una señal analógica de 0 a 5V en un número digital. Necesita una precisión de al menos
5mV (es decir que debe poder medir de 5 en 5 mV). ¿Cuántos bits necesita para poder almacenar
toda la información? De acuerdo a su respuesta, ¿a cuántos mV equivale el bit menos significativo?
Ejercicio #06
¿De qué formas puede describir la relación que existe entre las entradas y salidas de un circuito
digital? Provea ejemplos de cada uno.
Las entradas representan los puertos donde llegan las diferentes señales y a partir de las mismas el
circuito trabajara y entregara una respuesta en función de lo que las entradas hayan entregado.
Un ejemplo sería una fábrica, por la entrada llegan los camiones con materia prima, con esta
materia prima la fabrica los procesa y por la salida sale un nuevo producto especifico, si un camión
no llegara o no tuviera la materia prima correspondiente, no saldría nada o saldría algo diferente.
Ejercicio #07
¿Qué es Product of Sums y Sum of Products? Provea un ejemplo de cada uno con una tabla de
verdad con al menos 3 entradas. ¿Cuándo hace más sentido utilizar uno o el otro? ¿El resultado de
estos procedimientos e es una ecuación minimizada?
Son 2 formas de representar funciones de ecuaciones booleanas.
El POS: es expresada como el producto de las sumas
Y la SOP: es la suma de los productos
El criterio para decidir cuando usar uno u otro dependerá de la cantidad de 0 y 1 en la tabla de
verdad y cual de ambos se encuentre mas presente en la misma. Donde si hay mas ceros en la
tabla es más útil usar POS, y si predominan mas los unos, es mejor usar SOP.
El resultado de ambos métodos, no los reduce como tal, mas sin embargo si simplifica la
comprensión del mismo.
Ejercicio #08
¿Cuáles son las características de un circuito combinacional? ¿Cuál es el circuito combinacional
más pequeño que conoce? Provea al menos un ejemplo.
Un circuito combinacional es un circuito en el que el valor de las señales de salida, dependen
únicamente del valor de las señales de entrada actuales y no de las pasadas.
Entre sus características están:
- No tiene memoria (solo toma en cuenta valores actuales)
- Usa un diseño modular
- Usan funciones lógicas
El circuito mas pequeño hasta el momento es “NOT”
Un ejemplo seria un circuito AND, de 2 entradas y 1 salida, en el que el valor de salida será 1, si y
solo si, ambos valores de entrada son 1.
Ejercicio #09
Explique qué es el teorema de De Morgan y cómo se utiliza. ¿Cuál es el propósito del teorema?
Invente un circuito con al menos 5 compuertas lógicas para demostrar el teorema.
El teorema de Morgan consiste en una serie de reglas y transformaciones que permiten reducir y
hacer mas eficiente un circuito.
Ejercicio #10
Explique en sus palabras qué es un mapa de Karnaugh y cuáles son sus reglas. Luego encuentre la
ecuación minimizada de las siguientes tablas de verdad:
Los mapas de Karnaugh son una forma mas compacta de representar las ecuaciones booleanas y
las tablas de verdad, a través de una tabla de valores en 2D. poseen una serie de reglas que es
importante tomar en cuenta para crear una tabla correctamente.
- usar la menor cantidad de círculos necesarios para cubrir 1 valor.
- Todos los cuadrados deben formar 1 circulo
- Cada circulo debe ser lo más largo posible
- Un círculo puede conectar extremos opuestos (como Pac Man)
A|B|C|D|Y
---+---+---+---+---
0|0|0|0|1
0|0|0|1|0
0|0|1|0|1
0|0|1|1|0
0|1|0|1|1
0|1|1|0|0
0|1|1|1|1
1|0|0|0|1
1|0|0|1|0
1|0|1|0|1
1|0|1|1|0
1|1|0|0|1
1|1|0|1|0
1|1|1|0|0
1|1|1|1|1
A|B|C|D|Y
---+---+---+---+---
0|0|0|0|1
0|0|0|1|X
0|0|1|0|1
0|0|1|1|0
0|1|0|0|X
0|1|0|1|1
0|1|1|0|0
0|1|1|1|1
1|0|0|0|X
1|0|0|1|0
1|0|1|0|1
1|0|1|1|X
1|1|0|0|1
1|1|0|1|0
1|1|1|0|X
1|1|1|1|1
Ejercicio #11
Explique qué es y cómo funciona un multiplexor 2×1, 4×1, 8×1. Luego explique cómo funciona un
demux 1×4. Por último, explique qué es y cómo funciona un decoder 2x4 y 3×8.
En general la gama de multiplexores son circuitos que cumplen con el propósito de conectar
señales de entrada y señales de salida, que, dependiendo de su estructura, será de múltiples
salidas o múltiples entradas.
Entre estos los multiplexores (2×1, 4×1, 8×1) son conocidos como MUXes, los cuales son
dispositivos que seleccionan una de varias señales de entrada y solo transmiten a 1 salida. Los
primeros números (2, 4, 8) son la cantidad de entradas que el MUX puede tener.
Por otro lado, los multiplexores (1x4) son conocidos como los DEMUXes, que siendo el opuesto de
los MUXes, son circuitos que seleccionan una señal de salida de varias, por medio de una única
entrada. Siendo los valores derechos los que indican la cantidad de salidas que el DEMUX posee.
Y por último los decoder son circuitos combinacionales que convierten una entrada codificada en
una señal de salida única. Su propósito es activar una única línea de salida basada en la
combinación de entrada. En el decoder 2x4 hay 2 señales de entrada y 4 de salida, y dependiendo
de cada combinación de señales de entrada, estas abrirán 1 salida, mientras que el resto
permanecerán en 0.
Ejercicio #12
Explique cómo implementar lógica (es decir una tabla de verdad) utilizando los componentes
descritos en el ejercicio anterior. Escriba una tabla de verdad genérica y demuestre su explicación.
Debe dar ejemplos de muxes y decoders.
Para implementar lógica, se reducen las tablas de valores en función del modulo que se este
implementando, además de los valores.
En un MUX en lugar de escribir un valor binario entre 0 y 1, se coloca únicamente el nombre de la
función que se ejecutará cuando la entrada brinde cierto valor, mientras que la otra función será
nula, y viceversa.
Y un decoder, convierte una entrada binaria en una única salida activa, que se puede usar junto
con puertas lógicas para implementar funciones lógicas más complejas
Ejercicio #13
Explique en sus palabras qué es un módulo en Verilog. Explique también para qué sirven las P
palabras reservadas assign, always e initial. ¿En que casos se debe utilizar cada uno?
En verilog, un módulo consiste en una unidad básica de diseño, a la cual se le pueden ingresar y
encapsular funciones lógicas, determinar entradas y salidas y crear subdivisiones de capsulas, esto
con el fin de cumplir con un propósito en específico. Y entre estas funciones hay algunas,
determinadas por palabras específicas, entre ellas:
- Assign: se usa para describir lógica combinacional, se usa para definir una salida que
depende de 1 o más entradas. Se usa cuando se elaboran muxxes, demuxes o decoders,
donde es necesario cambiar de entradas y salidas.
- Always: describe un módulo o función que siempre se tendrá que ejecutar, siempre que
ocurran determinados eventos, como cambios en el valor de las señales. Se nesecita
cuando se implemente lógica combinacional.
- Initial: se usa para ejecutar comandos o funciones que solo se ejecutaran una sola vez al
inicio de la simulación. Se usa cuando se realicen simulaciones, como pruebas de
testbench y diagramas de timing.
-
Ejercicio #14
¿Cuál es la diferencia entre un wire y un reg? ¿Qué implicaciones tiene cada uno? ¿En qué parte
del código se utiliza cada uno?
Un wire y un reg, en concepto son lo mismo, funcionan como cables, la diferencia radica en su
funcionamiento. El wire actúa directamente como un conector, capaz de conectar salidas y
entradas entre módulos, sin almacenar o recibir un valor directo, solo conectando. Mientras que el
reg, registra un valor entre ejecuciones de un bloque y lo conserva hasta que el valor del modulo
cambie.
El wire implica que el modulo esta creado en base a lógica combinacional, donde los valores
cambian conforme cambian las entradas. Este se usa en el modulo mas grande en el que se
establecen las diferentes entradas, salidas y conectores entre módulos y funciones.
El reg, se usa dentro de los bloques initial y always, en módulos funcionales donde se necesite
almacenar su valor. En módulos de lógica secuencial.
Ejercicio #15
¿Qué son los puertos en Verilog? ¿Dónde se declaran? ¿Qué tipo de datos se pueden utilizar al
declarar un módulo?
Los puertos en verilog funcionan como las entradas y salidas por medio del que los diferentes
módulos pueden interactuar entre si además de funcionar como la conexión entre los módulos y el
usuario y poder cambiar los valores.
Para poder declararlos se necesitan las palabras; Input: que se usa para declarar los nombres de las
entradas, y el output: que se usa para indicar el nombre de las salidas.
Y al momento de declarar un módulo, se pueden usar diversos datos, entre ellos están: el wire, el
reg, los nombres de las entradas y salidas, entre otros.
Ejercicio #16
Diseñe un circuito que tome una entrada de 3bits y entregue en su salida (de 3 bits también) el
valor de la entrada menos 1. Es decir:
Y=A–1
Donde Y es la salida del circuito y A es la estrada.
Implemente la tabla de verdad, mapas de Karnaugh (por cada salida), ecuaciones minimizadas y el
esquemático.
Ejercicio #17
Dibuje el esquemático detallado del siguiente código (en la siguiente página). Dibuje los módulos
triangle y square como una caja. Dibuje todos los demás componentes con compuertas. Explique
qué hacen los módulos triangle, square y circle.
module ejercicio (A,B,C,D,E,F,G);
input E, F;
input [3:0] A;
output B, D;
output [1:0] C;
output [3:0] G;
triangle U1 (E, A[1:0], C[0]);
square U2 (A, G);
circle U3 (.sparta(.D), .this(A[3]), .is(A[2]));
assign C[1] = (E & ~F) | (~E & F);
assign B = ~D;
endmodule
module triangle (input sel, input [1:0] data_in, output Y);
assign Y = (sel == 0) ? data_in[0] : data_in[1];
endmodule
module square (input [1:0] A, output reg [3:0] Y);
always @ (A) begin
case(A)
2’b00: Y = 4’b0001;
2’b01: Y = 4’b0010;
2’h2: Y = 4’d4;
2’d3: Y = 4’d8;
end
endmodule
module circle (input this, is, output sparta);
wire w1, w2, w3, w4;
and FA (w1, this, is);
not FB (w3, this);
not FC (w4, is);
and FD (w2, w3, w4);
or FE (sparta, w1, w2);
endmodule
El triángulo: es un módulo compuesto por un bit de entrada ‘sel’ y un bus de entrada de 2 bits data
in, en el que si sel da un valor de 0, será igual a data in(0) y si el sel, da un valor de 1, será igual a
un valor de data in (1), siendo básicamente otra forma de representar un MUX 2X1
el cuadrado: representa una manera de referirnos a un decoder 2X4, en el que por medio de una
combinación de ambos dígitos de entrada, se ejecutara una línea de señales mas grande y
especifica que no será igual entre combinaciones.
Y el circulo representa un módulo lógico combinacional, compuesto por las compuertas AND, OR y
NOT, sirviendo como un verificador de que la señal será 1 si y solo si, las 2 entradas son 1 o son 0.