Está en la página 1de 14

Pontificia Universidad Católica de Chile

Escuela de Ingenierı́a
Departamento de Ingenierı́a eléctrica
IEE2713-Sistemas digitales

Tarea teórica 2

Benjamin Farias

1
1. Problema 1
2. Problema 2
2.1. a)
Los códigos de Hamming son una clase de algoritmos de codificación y decodificación utilizados
para la corrección y detección de errores, gracias a esta funcionalidad, es posible encontrar este
tipo dfe códigos en diversos artı́culos de nuestra vida cotidiana por la gran cantidad de aplicaciones
prácticas que estos tienen[1]. Siendo un ejemplo de esto artefactos de la vida cotidiana tale como
memorias RAM, DVDs, en almacenamiento información, en modems, etc. [1].
El funcionamiento de este código se basa en dos principales áreas, la codificación y la decodificación,
para ambas se puede utilizar una tabla que facilite el proceso. Para esto en primer lugar hay que
observar la cantidad de bits de datos y bits de paridad que se va a trabajar, donde los bits de paridad
son todas las potencias de 2, como el 0, 1, 2, 4.... y los bits de datos son los bits en los que se codifica
la información, y corresponde a la posicion donde los bits no son potencias de 2. En base a esto, la
notación utilizada para estos códigos es Hamming(x,y) donde x corresponde a la cantidad de bits
totales, y a los bits de informacion y x-y corresponde a los bits de redundancia o bits de paridad.
Para el proceso de codificación, en primer lugar se parte con una tabla, donde la primera fila
corresponde a el tipo de bit, si es de dato o paridad, la segunda fila corresponde a el número
asociado a este tipo de bit, en la tercera es donde se posiciona la palabra original, poniendo los
digitos de la representación binaria de esta palabra únicamente en las posiciones de los bits de datos
(empezando del 3 que es el primer bit de dato), es decir por ejemplo si se tuviese la palabra 01010001,
el primer digito(0) se pondrı́a en el bit de dato 1 que es la posicion 3, el segundo dato (1) se pondria
en el segundo bit de dato, que en este caso seria la posición 5 ya que la posicion 4 corresponde a un
bit de paridad, el tercer digito se pondia en el bit de dato 3 que es la posicion 6 y ası́ sucesivamente.
El resto queda mejor explicado a partir del siguiente ejemplo:

Figura 1: Ejemplo codificación Hamming

Aquı́, en la tercera fila se posiciona la palabra 0101001 en los bits de datos d1,d2,d3,d4,d6,d7
y d7 que corresponden a la posición 3,5,6,7,8,10 y 11 respectivamente. Posteriormente se pasa a la
fila del primer bit de paridad, p1, que anteriormente dijimos que al ser el primero corresponde al
primer digito de derecha a izquierda del bit de dato, es decir, en el caso del primer bit de dato d1,
su posición es igual a 0011, observamos que alfinal tiene un 1, por lo que en (p1,d1) bajamos el
digito correspondiente a la palabra original. No ası́ por ejemplo en el caso de la paridad 1 con el bit
de dato d3, el que tiene posición 0110, y como tiene un 0 alfinal no se conserva el bit de dato en
(p1,d2). Posteriormente, se observa toda la fila correspondiente a p1, y se osbervan de los digitos de
la palabra original, que bajaron según lo explicado anteriormente, para contar la cantidad de ceros y
unos que se tiene en esta fila, ya que la paridad tomara valor 0 o 1 dependiendo de que es lo que falta
para que ambos sean pares; es decir, en la fila p1 bajaron 0 1 1 0 1 de la palabra orignal, observamos

2
que aquı́ hay 2 ceros y 3 unos, por lo tanto para que sean pares, la paridad tiene que tomar valor
1. Esto se hace para todas las otras paridades pero avanzando una posicion, por ejemplo para la
segunda paridad en el caso d2, que es 0101, la segunda posición de derecha a izquierda es un 0, por
lo tanto en (p2,d2) no bajará el dı́gito de la palabra original. Una vez realizado este proceso para
todas las paridades, el resultado codificado corresponde a la suma de la palabra + paridad, donde
entre medio de la palabra original se añadieron las respectivas paridades como se observa.
Por otro lado, un código bastante común en el contexto de la informática es el Código Estándar
Americano para Intercambio de Información, o por sus siglas en Inglés y como es más conocido, el
código alfanumérico ASCII, es una forma de codificación para representar los carácteres utilizados
en escritura y control, donde a cada carácter le corresponde un byte (conjunto de 8 bits). Esta
codificación básicamente consiste en que a cada carácter le corresponde un número según una tabla
estándar, este número posteriormente se pasa a binario y eso corresponde a la representación ASCII.
En un principio, se creo este código únicamente con carácteres de control, que no erán pensados en
imprimir la información en pantalla, estos iban del 0 al 31 y el 127, entre los que se encuentran la
nueva linea, inicio texto, suprimir, escape, etc. ; luego se añadieron los carácteres imprimibles los
cuales van del 32 al 126, en este se incluyeron las letras, dı́gitos, signos de puntuación, sı́mbolos,
etc. ; por úlitmo, y lo que es más utilizado en la actualidad es el ASCII extendido, el cual abarca
del carácter 128 al 255, donde se incluyen cosas como la ñ, el acento y diéresis[2]. A continuación se
presenta la tabla ASCII:

Figura 2: Tabla ASCII (American Standard Code for Information Interchange)

2.2. b)
Observando la figura 2, al carácter .A”le corresponde el número 65, y al ”{”le corresponde el 123.
Por lo tanto es necesario pasar estos a binario:

3
2.2.1. 65:

65 : 2 = 32, resto 1
32 : 2 = 16, resto 0
16 : 2 = 8, resto 0
8 : 2 = 4, resto 0
4 : 2 = 2, resto 0
2 : 2 = 1, resto 0
1, aquı́ se termina este procedimiento, pero se toma el 1
por lo tanto, en 7 bits 6510 = 10000012

2.2.2. 123:

123 : 2 = 61, resto 1


61 : 2 = 30, resto 1
30 : 2 = 15, resto 0
15 : 2 = 7, resto 1
7 : 2 = 3, resto 1
3 : 2 = 1, resto 1
1, aquı́ se termina este procedimiento, pero se toma el 1
por lo tanto, en 7 bits 12310 = 11110112
Ahora para hacer la resta, procedemos de la siguiente manera, agregando el bit de signo y aplicando
el complemento a 2 del número de menor módulo, en este caso el 65 y se transforma la operación en
una suma:
01111011
+10111111

Ahora, se procede a hacer la suma aplicando algebra booleana y recordando que 1+1 = 10 y 1+1+1
= 11. De esta manera:
1111111

01111011
+10111111
00111010
Ahora, observamos a que corresponde este número en decimal:

001110102 = (25 + 24 + 23 + 21 )10

001110102 = (32 + 16 + 8 + 2)10


001110102 = 5810
del cual, viendo la figura 2 observamos que corresponde al carácter ”:.en la tabla ASCII.

4
Figura 3: Hamming(11,7) de 0111010

2.3. c)
Necesitamos representar 0111010 mediante el código hamming, para esto utilicaremos 7 bits
de representación de los cuales 4 son bits de datos y 3 de paridad, esto ya que perfectamente se
puede representar el número binario al carácter asociado con 7 bits. De esta manera aplicamos
Hamming(7,4), y partimos poniendo los digitos asociados al carácter en los dı́gitos de información
de la siguiente manera: En primer lugar se posicionó el binario original en las posiciones de los bits
de datos. Posteriormente, y según se puede apreciar con los colores, en el caso de la paridad 1, al
ver los colores verdes de los bits de datos, notamos que bajaron en el d1 , d2 , d4 , d5 y d7 (los unicos
con 1 en ese color) en base a esto, como bajaron una cantidad impar de ceros, la paridad 1 es igual
a 0 para cumplir con la paridad de la fila. Se procedió de la misma manera para las otras paridades
y se llegó al número inicial codificado en Hamming que es 01011111010.

3. Problema 3
3.1. a)
Los multiplexores o selectores de datos son circuitos combinacionales en el que están disponibles
varios canales de datos, y solo el que se haya seleccionado es el que aparecerá en la salida, es decir,
permite seleccionar los datos que pasan por dicho componente[3]. a continuación se presenta un
selector de 4 entradas y 1 salida, con su respectiva tabla de verdad:

5
Figura 4: Representación en compuertas lógicas para selector de 4 entradas y 1 salida

Figura 5: Tabla de verdad del circuito anterior

En base a esto, según la topologı́a del circuito, notamos que la salida es I0 (cuando vale 1) solo
cuando S1 y S2 son 0, esto ya que entran a un inversor y ambos llegan como 1 al and de la entrada
I0 por lo tanto un and de tres unos es igual a 1, el resto de compuertas recibe las otras entradas
como 0, por lo que ante cualquier valor de S1 y S2 sus respectivas compuertas AND valdrám 0,
posteriormente entra al sumador la salida del AND correspondiente al I0 como 1 y las otras como
0, por lo que la salida es la misma que entro en I0 , osea 1.

3.2. b)
Para esto, hagamoslo con 3 entradas para la compuerta and. En primer lugar, veamos la tabla
de verdad:

6
Figura 6: Tabla de verdad compuerta AND tres entradas

aquı́ observamos que solamente vale 1 en la última fila, es decir en el canal 7 solamente vale 1,
en todos los demás vale 0. De esta manera:

Figura 7: Compuerta AND representada con un multiplexor

3.3. c)
Se tiene que Y = AC + CB + BAC. Aplicando minterrms, donde X = 1 y X = 0, y observando
la función Y, observamos que en el caso del último término BAC, de aqui corresponderia que Y
tome valor 1 cuando B=0, A=1, C=1. Por otro lado, del primer término notamos que A=1 y C =
0, pero nos falta el valor que toma B en esta situación, sin embargo por una propiedad sabemos que
AC = AC(B + B), por lo tanto en las filas donde A, tome valor 1, C valor 0 y B tome valor 0 y 1,
Y vale 1. Por otro lado, para el caso del segundo término se tiene CB = CB(A + A, por lo tanto
donde C=1, B=1 y A=0, A=1, la función Y toma valor 1. De esta manera, se construye la siguiente
tabla de verdad:

7
Figura 8: Tabla de verdad de la función Y

De aquı́ es posible observar que función Y corresponde a Y = A + B*C. Además,la salida será 0
solo en los canales 0, 1 y 2, osea las 3 primeras filas. En el resto de los canales valdrá uno. De esta
manera, se obtiene la siguiente representación de Y con multiplexores:

Figura 9: Y representada con multiplexores

4. Problema 4
4.1. a)
Una señal de reloj, o señal clock es un tipo de señal binaria utilizada en electrónica digital
que es utilizada para coordinar las acciones de varios circuitos en el tiempo[4]. Son especialmente
utilizados para la sincronización de biestables en sistemas digitales complexos, además, en base a la
aplicación que se le quiera dar, la señar de relok puede ser repetida con una frecuencia predefinida o
ser aperiódica[4]. Las señales de reloj suelen darse mediante un generador de reloj, en el que la señal

8
oscila entre valores altos y bajos, que corresponden a 1 y 0 en binario respectivamente, y además se
caracterizán por tener periodos de oscilacion o valores de cambio, frecuencia del reloj y el ciclo de
trabajo [4]. Se ven de la siguiente manera:

Figura 10: señal de reloj o señal clock

4.2. b)
En la práctica no es posible implementar pulsos perfectamente cuadrados, ya que es fı́sicamente
imposible cambiar algo en un mismo instante, mas bien esto demora cierto intervalo de tiempo, que
si bien puede ser lo suficientemente rápido para simular una señal rectangular perfecta, la mayor
velocidad con la que se puede pasar de un punto a otro, en distintos intervalos de tiempo, es la
velocidad de la luz. Por ejemplo, si la señal viajase a esta velocidad, a simple vista simulará que el
pulso es perfectamente rectangular, pero si se le hiciese zoom a esta señal, se verı́a que el cambio
no es instantáneo y que demora cierto intervalo de tiempo, lo que es igual a que los lados de los
rectángulos.estarı́an muy cerca de ser perfectamente rectos, pero tienen cierta inclinación, osea no
es un rectangulo perfecto.

4.3. c)
Los flancos de clock o de reloj corresponden a los momentos en los que una señal de reloj cambia
de estado, es decir cuando cambia de bajo a alto (flanco de subida), que es equivalente a pasar de
0 a 1, y cuando cambia de alto a bajo (flanco de bajada), que equivale a pasar de 1 a 0. Además,
según chat GPT, estos son esenciales en sincronizar circuitos digitales, ya que las acciones ocurren
en las posiciones en las que se encuentran estos flancos.

4.4. d)
La frecuencia de operación del clock de la BASYS 3 es de 100Mhz[5], y se encuentra en la siguiente
posición (donde dice CLK100MhZ):

4.5. e)
La oscilación en un cristal ocurre principalmente debido a la propiedad que estos poseen, llamada
efecto piezoeléctrico, la que consiste en que cuando un cristal, por lo general de cuarzo, es sometido
a un esfuerzo mecánico de presión o deformación, este produce una carga eléctrica oscilatoria a lo
largo de los ejes de corte del cristal [6], el que posteriormente tiene un comportamiento de un circuito
resonante con un factor de calidad muy alto, lo que se traduce en una alta eficiencia a la hora de
filtrar ya que es mas selectivo en su respuesta respecto a una frecuencia especı́fica [6].

5. Problema 5
5.1. a)
La modulación por ancho de pulso, más conocida por sus siglas en ingles (Pulse Width Modula-
tion), es una herramienta utilizada en inversores DC/AC monofásicos y trifásicos. Estas funcionan
comparando una señal de referencia, la que posteriormente se quiere modular con un tren de triángu-
los o señal diente de sierra; esta comparación generá un tren de señales rectangulares de un ancho

9
Figura 11: Ubicación del clock en la BASYS3

deerminado utilizadas posteriormente en la conmutación del puente inversor [7]. Esta señal es alta-
mente utilizada en electrónica ya que también ayuda a regular la cantidad de energı́a que reciben los
aparatos electrónicos, esto ya que según mas dure la modulación (mas largo el pulso) mas energı́a
es entregada a los aparatos.

5.2. b)
Las principales diferencias entre un PWM y un clock son, en primer lugar la forma y naturaleza
de la señal, ya que en el caso del clock, esta es periódica y todos los pulsos tienen el mismo ancho y
los tiempos entre flancos son constantes, por otro lado en la modulación por ancho de pulso no es
necesario tener un perı́odo ya que los pulsos pueden ir teniendo distintos anchos entre ellos. Por otro
lado, también difieren en el uso que se les da a estas ya que las PWM son utilizadas para regular la
cantidad de energı́a que llega a un aparato electrónico, por otro lado el clock tiene la finalidad de
sincronizar operaciones, en base al tiempo en un sistema digital.

5.3. c)
Si es posible generar una señal modulada por ancho de pulsos a partir de una señal clock, esto se
puede realizar utilizando las propiedades y compuertas que forman parte de la lógica combinacional,
además de otros componentes digitales. Este proceso se realiza en primer lugar, estableciendo un
valor de referencia con el que se comparará la señal clock, en base a este valor, y con la ayuda de

10
un compareador, se comparan, valga la redundancia, ambas señales y se determina si la señal del
reloj es mayor o menor que la referencia en cada ciclo. Posteriormente, en base a esta salida y con
la ayuda de circuitos digitales se establece la duración de los pulsos mediante lógica combinacional,
para lograr el ciclo de trabajo deseado, el cual no es más que nada la relación de tiempo entre que el
pulso está en su valor alto y el tiempo total de un ciclo del reloj. En base a esto, es posible controlar
la frecuencia de la señal PWM con la ayuda de la frecuencia de la señal de reloj original, ya que con
la ayuda de la lógica combinacional se activan o desactivan los pulsos en el tiempo en que dura un
pulso de la señal clock.

6. Problema 6
6.1. a)
En términos generales, un latch y un flip-flop son dispositivos de almacenamiento temporal de
dos estados (biestables), los que pueden permanecer en cualquiera de estos estados gracias a su
capacidad de realimentación[8]. Esta capacidad de realimentación ocurre debido a que tanto en un
latch como en un flip-flop, se conectan cada una de las entradas a las salidas de la entrada opuesta[8].
Si bien estos dos elementos son similares, la principal diferencia radica en el método que utilizan para
cambiar de estado; por su parte el latch esta asociado a entradas asincrónicas, como por ejemplo
una PWM, y su salida puede cambiar en cualquier momento en función de la entrada, además de
que los circuitos están activos en todo momento que la entrada sea alta (1) [8]. Por otro lado, un
flip-flop tiene un rango de operación que es constante, ya que la entrada que se utiliza en este caso
es una señal clock, la cual es sincrónica, y además el circuito solo estará operativo en los flancos
del clock, es decir cuando se pasa de alto a bajo y de bajo a alto en esta señal [8], además tienen
la caracterı́stica de que guardan tanto el estado anterior como el actual. En base a esto, la relación
que existe es que si bien su manera de construidos es igual, la diferencia existe respecto a la entrada
que se les entrega; a los latchs entradas asincrónicas, y a los flip-flops entradas sincrónicas como una
señal clock.

6.2. b)
1. En primer lugar, recordemos la tabla de verdad de una compuerta NAND:

Figura 12: Tabla de verdad de compuerta lógica NAND

11
De aquı́ observamos que esta vale 1 cuando una de las dos entradas es 0. En base a esto, en el
circuito del latch observamos dos entradas, el Set y el Reset. En base a lo anteriormente mencionado,
y guiandose según la segunda fila ( set = 0, reset = 1) observamos que si entra un 0 en la compuerta
de arriba, saldrá un 1= Q de este NAND. Posteriormente este 1 que sale ingresa a la compuerta con
el valor de reset que teniamos de antes, de esta manera ingresan un 1 y un 1 a la compuerta y por
lo tanto sale un 0. El procedimiento es análogo para la tercera fila donde set = 1 y reset = 0. Por
otro lado, en la del caso en que ambas valen 1, notamos que los valores de Q y Q complemento no
se verı́an afectados, por lo que el sistema tendrı́a una especie de memoria. Por último, en el caso en
el que ambas entradas valgan 0, se tendrı́a que Q y Q complementos son iguales, lo que es invalido
por que estas debiesen ser distintos. De esta manera la tabla de verdad del circuito es la siguiente:
2. En base a esta tabla de verdad, y el diagrama de tiempo entregado, encontramos las siguientes

Figura 13: Tabla de verdad latch tipo NAND

salidas para Q y Q, las cuales son:

Figura 14: Diagrama de tiempo

12
6.3. c)
Es posible encontrar distintas configuraciones de flip-flops, en las que encontramos la R-S, la
que adquiere su nombre debido a las entradas que recibe (Reset y Set), y en base a estas setea la
información ingresada o almacenada de la siguiente manera: si S está a nivel alto (1) y R a nivel
bajo (0), la salida Q se pone a nivel alto (1) con el flanco de la señal clock pasando el flip-flop al
estado SET, por otro lado si S está bajo (0) y R alto (1), la salida Q se pone a nivel alto (1), cuando
el flip-flop pasa al estado Reset en el flanco[8]. Cabe destacar también que cuando S y R están altos
(1) se produce una condición no válida o indefinida. La principal aplicacion de esto es en sistemas
de control o en circuitos donde se requiera un ajuste inicial o reajuste[8].A continuación se muestra
un ejemplo de este tipo de arreglo de compuertas:
Por otro lado el J-K es uno de los más utiilizados debido a su funcionamiento, el cual si bien es
idéntico al del flip-flop S-R, su diferencia radica en que el J-K no presenta condiciones no válidas
como el caso en el que S y R estaban altos. Esto lo hace conectando la salida a un retroalimentador
de una de las puertas de entrada. Sus principales aplicaciones son para circuitos secuenciales, donde
los cambios de estado tienen que ser paulatinos y en contadores binarios. A continuación se muestra
un ejemplo de este tipo de arreglo de compuertas:
Por último, el flip-flop tipo D, resulta muy útil cuando se necesita almacenar un único bit de datos
ya que este funciona solamente en los flancos de la señal clock, en base a esto, su funcionamiento
radica en que cuando se le aplica un impulso de reloj (flanco), si la entrada D está alta (1), se activa
el set del flip-flop y se almacena el nivel alto (1) de la entrada durante el flanco positivo del impulso
del reloj, es decir cuando pasa de bajo a alto; en el caso que la entrada D sea baja (0), se activa el
estado reset por que el flip-flop se va a cero y se copia la entrada D durante el flanco de bajada . En
base a esto, sus principales aplicaciones son las de registro de datos. A continuación se muestra un
ejemplo de este tipo de arreglo de compuertas:

6.4. d)
El flip flop tipo J-K tiene la siguiente topologı́a:

Figura 15: Circuito flip flop J-K

Para la tabla de verdad, basta saber que cuando J y K son 0, el sistema conserva el valor de Q,
osea tiene memoria. Para J = 0 y K = 1 se limpia el dato, para J=1 y K=0 fija el dato, y cuando
J=1 y K = 1 se complementan. De esta manera, la tabla de verdad es:

13
Figura 16: Tabla de verdad flip flop J-K

7. Bibliografı́a
1. Aldabas E, Corbalán M, Cisa J. Introducción a los códigos de Hamming. 2015. https://
example.com/codigo_hamming [Citado el 11 de septiembre de 2023].

2. Camazon J. Introducción a los sistemas informáticos (Sistemas operativos monopuesto). Edi-


tex; 2011.
3. Albesiano B, Augusto R. Multiplexores. 2013. https://repositorio.konradlorenz.edu.co/
handle/001/3931 [Citado el 11 de septiembre de 2023].

4. Miyara F, Edición -Año S. CONVERSORES D/A Y A/D. https://www.fceia.unr.edu.ar/


enica3/da-ad.pdf [Citado el 11 de septiembre de 2023].
5. Basys 3TM FPGA Board Reference Manual. 2016. https://digilent.com/reference/_media/
basys3:basys3_rm.pdf [Citado el 11 de septiembre de 2023].

6. Perez C. Amplificadores, Osciladores y Mezcladores. En: Electronica digital. https://personales.


unican.es/perezvr/pdf/CH4ST_Web.pdf [Citado el 11 de septiembre de 2023].
7. Posada J. Modulación por ancho de pulso (PWM) y modulación vectorial (SVM). Una intro-
ducción a las técnicas de modulación. 2005. https://www.redalyc.org/pdf/478/47802507.
pdf [Citado el 11 de septiembre de 2023].

8. Perea J. Logica computacional. RED TERCER MILENIO; 2012.

14

También podría gustarte