Exponsor

CURSO TÉCNICO INSTALADOR DE ENERGÍA SOLAR TÉRMICA

Visita el siguiente enlace: http://enersolartermica.blogspot.com.es/ ¡No pierdas esta magnifica oportunidad de poder formarte en esta profesión con gran demanda de empleo! Ahora por oferta de lanzamiento y por tiempo limitado puedes adquirir este curso por solo 9,95€, cuando su valor de mercado es de 49€.

viernes, 3 de abril de 2009

PROBLEMAS RESUELTOS SOBRE OTRAS APLICACIONES DE LA LÓGICA DIGITAL EN LA ELECTRÓNICA MODERNA ( II ).

PROBLEMA: ¿Qué elemento lógico fundamental se puede utilizar como detector de la diferencia de fase entre dos señales digitales simétricas iguales entre sí pero desfasadas en sus diagramas de tiempos? Encontrar la constante de fase de ganancia Kp del elemento detector de fase, definida como el cambio en el voltaje promedio a su salida en función del ángulo de desfase entre las dos señales medido en radianes.

El OR-EXCLUSIVO es el elemento más adecuado, ya que produce una salida si las dos señales a su entrada son diferentes:




La salida del OR-EXCLUSIVO para dos señales iguales que no están perfectamente alineadas y sincronizadas una con respecto a la otra sino que están "fuera de tiempos", fuera de fase, se muestra a continuación:




En estos diagramas de tiempos, la señal B está retrasada con respecto a la señal A, y si ambas están alimentando las entradas de un OR-EXCLUSIVO, entonces a la salida del mismo aparecerán los "unos" mostrados como "picos" (con la duración de los mismos resaltada en color amarillo). Si ambas señales A y B estuvieran en sincronía perfecta la una con respecto a la otra, alineadas punto por punto, entonces la salida del OR-EXCLUSIVO no mostraría ningún "pico", sería un "cero" todo el tiempo.

Supondremos ahora que la salida del OR-EXCLUSIVO es de cero volts para un "0" lógico y de un voltaje máximo V0 (digamos, unos +5 volts) para un "1" lógico. Daremos ahora un "brinco" del mundo digital al mundo analógico. Cuando dos señales A y B llegan desfasadas al OR-EXCLUSIVO, entonces la salida del OR-EXCLUSIVO no será de cero volts ni será de V0 volts todo el tiempo, estará variando rápidamente entre cero y V0. Por lo tanto, si conectamos un medidor de voltaje a la salida del OR-EXCLUSIVO, su lectura del voltaje a la salida del OR-EXCLUSIVO estará variando rápidamente puesto que no permanecerá fija ni en cero ni en V0. La ausencia de una lectura estable se puede solventar con el uso de un medidor de voltaje que pueda darnos el voltaje promedio de una señal que está variando de esta manera. Así, dependiendo del grado de desfase entre las dos señales, el medidor de voltaje dará una lectura de voltaje promedio diferente que estará situada entre los cero y los V0 volts.

Es rutinario medir la cantidad de desfase entre dos señales periódicas en términos angulares. Si las dos señales periódicas están "en fase", el ángulo de fase entre las mismas es de cero grados. Conforme se van desfasando, el ángulo de fase va aumentando, hasta el punto en el cual las señales están completamente desfasadas (para un tren "cuadrado" de pulsos, esto implica que cuando la señal A tiene un valor de "1" la señal B tiene un valor de "0" y viceversa), punto en el cual decimos que hay un desfase de 180 grados (o bien de π radianes) entre ellas. Habiendo llegado al punto de desfase total, si la señal B se sigue retrasando con respecto a la señal A entonces se irá emparejando con los siguientes valores de la señal A hasta que, cuando el ángulo de fase recorrido es de 360 grados (o bien de 2π radianes) las señales estarán nuevamente en sincronía la una con respecto a la otra. Y esto es precisamente lo que nos puede detectar el OR-EXCLUSIVO con el voltaje promedio que nos dá de su propia salida.

Es obvio que el voltaje promedio a la salida del OR-EXCLUSIVO será mayor cuanto mayor sea la diferencia de fase entre las dos señales de entrada. Dos puntos de interés son los siguientes:

(A) Cuando las dos señales a la entrada están en fase, el voltaje promedio a la salida del OR-EXCLUSIVO es de v=0 volts.

(B) Cuando las dos señales a la entrada están fuera de fase 180 grados (π radianes), el voltaje promedio a la salida del OR-EXCLUSIVO es de v=V0.

Entre estos dos puntos, habrá una variación lineal del voltaje promedio que dependerá directamente del ángulo de desfase. El diagrama del voltaje promedio v a la salida del OR-EXCLUSIVO en función de la diferencia del ángulo de fase entre las señales de entrada se muestra a continuación:



La constante de ganancia Kp del OR-EXCLUSIVO la podemos obtener considerando la región entre los cero grados y los 180 grados (entre cero radianes y π radianes)

Kp = (V0 - 0)/(π - 0)

Kp = V0/π, para un OR-EXCLUSIVO.


PROBLEMA: Una forma de comprobar la eficiencia de un sistema de comunicación digital es introducir una secuencia de prueba en su transmisor y comparar la secuencia enviada con la secuencia obtenida en el receptor. El porcentaje de bits de error (BER o bits error rate) es igual a la cantidad de bits diferentes entre la secuencia de prueba original y la secuencia recibida, dividida entre el número total de bits empleados para la prueba. Determinar el factor BER para un sistema que arroja con la siguiente secuencia de prueba:



arroja los siguientes resultados:



Inspeccionando las posibles diferencias entre la secuencia recibida y la secuencia enviada, encontramos que hay nueve bits diferentes, los cuales están resaltados a continuación:



Se tiene entonces que:

Total de bits empleados = 9x4 = 126

Bits diferentes = 9

BER = (9/126)x100 = 7.14 %

En la práctica, para poder encontrar el mayor número posible de errores, la secuencia de prueba en lugar de ser una secuencia fija de "unos" y "ceros" es una secuencia binaria al azar. Existe equipo especializado que se encarga de generar este tipo de secuencias y que se encarga de encontrar las diferencias entre los datos enviados y los datos recibidos, calculando de manera automática el factor BER. Este es precisamente el tipo de equipo que utilizan en el campo los ingenieros de mantenimiento y de diseño de redes. A continuación tenemos el medidor del factor BER CSA907R fabricado por la empresa Tektronix:



y un medidor del factor BER fabricado por la emprea Agilent:



así como el siguiente probador manual portátil:



Asociado con la medición del factor BER están las gráficas conocidas como "BER en función de Eb/No", de las cuales se muestra la siguiente como ejemplo:



La definición clásica de Eb/No que casi siempre parece algo críptica para quienes la ven por vez primera es "el cociente de la Energía por Bit (Eb) entre la Densidad de Ruido Espectral (No, de la palabra inglesa Noise que significa "ruido"), lo cual en términos llanos más comprensibles es simplemente la medida de una señal teóricamente libre de todo ruido entre el ruido con el cual está asociada dicha señal, lo cual es medido en el lado receptor y es utilizado como la referencia básica de qué tan fuerte es la señal. Distintas formas de modulación de la señal (BPSK, QPSK, MSK, PSK de 8 bits, PSK de 16 bits, etc.) producen distintas curvas teóricas para estas gráficas del factor BER, y le proporcionan al ingeniero de telecomunicaciones información acerca del mejor desempeño que es posible lograr para cierta cantidad de energía de radiofrecuencia con la cual está siendo transmitida al aire una señal digital. Para quienes deseen mayor información sobre este tema, inclusive sobre cómo es posible utilizar el estándard USB empleado en las computadoras para una comunicación inalámbrica USB, se recomienda consultar la siguiente nota de aplicación de Intersil (este es un documento PDF):

http://sss-mag.com/pdf/an9804.pdf

Aunque se hace todo lo posible por reducir al máximo el factor BER en la transmisión de datos, no es posible reducir el factor BER hasta cero por causas que están fuera del control de los diseñistas de redes, lo cual incluye causas predichas teóricamente como lo indican las gráficas señaladas arriba. Es aquí en donde resulta valiosísima la capacidad de los sistemas digitales para poder detectar errores con la adición de bits de paridad que permitan solicitar de nuevo el envío de la información que llegó defectuosa, e inclusive con la capacidad de corregir errores para no perder tiempo en la solicitud de retransmisión de información.


PROBLEMA: Se desea construír un comparador digital de un bit. El comparador debe tener dos entradas A y B y dos salidas M y K. La salida M (que pudiéramos llamar salida A=B) deberá ser "1" cuando ambos A y B son iguales y "0" cuando son desiguales. La salida K deberá ser "1" cuando cuando A es mayor que B y "0" cuando A es menor que B. Diseñar una configuración con estas características.

La Tabla de Verdad basada en las propiedades requeridas debe ser como se muestra a continuación:



En función de minterms, las salidas estarán dadas por las siguientes expresiones Boleanas:

M = (Salida "A igual a B") = A · B + AB

K = (Salida "A mayor que B") = AB

La salida M la podemos reconocer de inmediato como la de un NOR-EXCLUSIVO.

El comparador de un bit tendrá entonces el siguiente aspecto:




PROBLEMA: Demostrar que es posible construír un comparador digital de dos palabras (siendo AA=A2A1) y B (siendo B=B2B1) de dos bits cada una usando el comparador digital de un bit del problema anterior como bloque fundamental.

Las propiedades del comparador digital de dos palabras A y B de dos bits cada una deben ser como se muestra en la siguiente Tabla de Verdad:



Ahora bien, si usamos dos comparadores digitales de un bit como base, usando los resultados del problema anterior vemos que las salidas del comparador digital de dos bits serán:

M1 = [Salida 'A1 igual a B1' del primer comparador] = A1B1 + A1B1

M2 = [Salida 'A2 igual a B2' del segundo comparador] = A2B2 + A2B2

K1 = [Salida 'A1 mayor que B1' del primer comparador] = A1B1

K2 = [Salida 'A2 mayor que B2' del segundo comparador] = A2B2

El siguiente paso es encontrar las salidas M y K del comparador de palabras de dos bits a partir de su Tabla de Verdad puesta arriba:

M = Salida 'A igual a B'

M = A2B2A1B1 + A2B2A1B1 + A2B2A1B1 + A2B2A1B1

M = A2B2(A1B1 + A1B1) + A2B2(A1B1 + A1B1)

M = (A1B1 + A1B1)(A2B2 + A2B2)

M = M1M2

K = Salida 'A mayor que B'

K = A2B2A1B1 + A2B2A1B1 + A2B2A1B1 + A2B2A1B1 + A2B2A1B1 + A2B2A1B1

K = A2B2K1 + K2A1B1 + K2A1B1 + K2A1B1 + K1A2B2

K = K1(A2B2 + A2B2) + K2A1 + K2A1

K = K1 M2 + K2

Puesto que las salidas del comparador de palabras de dos bits se pueden poner en función de las salidas de dos comparadores individuales de un bit cada uno, queda demostrado que es posible construír un comparador de palabras usando como bloque fundamental el comparador de un bit que ahora podemos empezar a tratar como otra "caja negra" en nuestro repertorio.

El circuito del presente problema toma la siguiente configuración:



Este problema demuestra que el comparador básico de un bit se puede conectar en "cascada" para comparar palabras binarias de varios bits. La metodología empleada en este problema la podemos extender para construír un comparador de tres bits. Naturalmente, el diseño será más elaborado. Y del mismo modo, podemos construír un comparador de cuatro bits, y el diseño será todavía mucho más elaborado. O podemos optar por ahorrarnos una buena cantidad de tiempo y esfuerzo procurando en el mercado un circuito integrado como el 4585 fabricado con tecnología CMOS:



o como el 7485 (fabricado con tecnología TTL), los cuales son comparadores de 4 bits, y los cuales incorporan precisamente todo lo que hemos visto. En el caso específico del 4585, al igual que otros comparadores de bits, se pueden conectar varios en "cascada" para aumentar el tamaño de las palabras binarias que pueden ser comparadas; todo lo que hay que hacer es conectar las tres salidas del primer comparador (terminales 3, 12 y 13 en este caso) a las entradas del segundo comparador (terminales 6, 5 y 4 respectivamente), de la manera como se muestra en el siguiente comparador de palabras de 4 bits construído a base de cuatro comparadores de un bit conectados en "cascada" (ampliar imagen):



Como puede apreciarse en este esquema, el primer comparador se convierte en los bits menos significativos (LSB) de la cadena de comparadores.

Es posible conseguir inclusive circuitos integrados capaces de comparar palabras binarias de ocho bits y de conectar estos circuitos en cascada. Sin embargo, la cuestión de la aplicación es importante, ya que si vamos a estar comparando palabras binarias grandes, es posible que sea más ventajoso y más económico recurrir a un microprocesador (véanse los suplementos anexos a este libro) que se encargue de hacer las comparaciones mediante procesos aritméticos especificados en un pequeño programa almacenado en una memoria ROM; esta es precisamente una de las especialidades del microprocesador.


PROBLEMA: Construír una tabla de secuencias en el orden Q4Q3Q2Q1 para el circuito mostrado, dando el equivalente decimal de cada estado.



Suponiendo que la configuración está inicialmente en el estado Q4Q3Q2Q1=0000, la tabla de secuencias requerida tomará el siguiente aspecto:



Podemos notar que la secuencia de los números 0, 8, 12, 14, 7, 11, 13, 6, 3, 9, 4, 10, 5, 2, y 1 constituye una secuencia de números al azar, y al decir "al azar" nos estamos refiriendo a que conforme el contador pasa de un estado a otro no es posible (sin ver el contador) predecir cuál será el siguiente número decimal generado con sólo ver los números previos que se han ido generando (por esto mismo, esta secuencia no serviría para aquellas preguntas que se formulan en los exámenes usados para determinar el cociente intelectural IQ de una persona, en donde se le pide que determine cuál es el número o los números que siguen a cierta secuencia de números que parece mostrar cierto orden). Puesto que esta secuencia de números al azar se vuelve a repetir idénticamente cada vez que el contador atraviesa el estado Q4Q3Q2Q1=0000, la secuencia se conoce como una secuencia pseudo-azar. Asimismo, este tipo de contador es conocido comúnmente como un generador de secuencia binaria pseudo-azar.

Existen diseños de este tipo de contador para generar secuencias binarias pseudo-azar de más de cuatro bits, la mayoría de los cuales son relativamente fáciles de implementar.

En rigor de verdad, toda secuencia debe ser sometida a un análisis estadístico riguroso antes de ser aceptada como una verdadera secuencia de números al azar. Sin embargo, sin llevar a cabo tal análisis, se encuentra que las secuencias generadas por este tipo de contadores son bastante útiles en la práctica. Resta decir que entre mayor sea el número de cifras en cada número al azar y entre mayor sea la cantidad de números al azar en la lista generada, más útil será la lista de números al azar para representar problemas matemáticos.

Una vez teniendo una lista de números al azar disponible, es relativamente fácil producir una lista de números al azar de diferente magnitud multiplicando o dividiendo la lista original por el factor adecuado. Por ejemplo, supongamos que deseamos una lista de números al azar del 0 al 2. Si dividimos cada número al azar obtenido en el presente problema entre 8, podemos obtener fácilmente la lista deseada:

0/8 = .00, 8/8 = 1.00, 12/8 = 1.50,

14/8 = 1.75, 7/8 = .87, 11/9 = 1.37,

13/8 = 1.62, 6/8 = .75, 3/8 = .37,

9/8 = 1.12, 4/8 = .50, 10/8 = 1.25,

5/8 = .62, 2/8 = .25, 1/8 = .12.

Esta técnica es conocida como escalamiento, porque la magnitud de los números originales es reducida o aumentada a "escala".

Si lo que queremos tener no es un circuito generador de una secuencia binaria pseudo-azar, la cual eventualmente se repetirá una y otra vez en forma idéntica después de cierto número n de estados, sino un verdadero generador aleatorio de números binarios cuyas secuencias siempre serán totalmente impredecibles (lo cual dicho sea de paso es un requisito fundamental para poder utilizar dichas secuencias en técnicas estadísticas refinadas tales como el diseño de experimentos, una rama aplicada de la estadística basada en el análisis de la varianza ANOVA de dos vías, o la simulación Monte-Carlo, otra técnica estadística útil para resolver problemas matemáticos para los cuales la solución analítica exacta puede ser muy difícil si no imposible de obtener), existen otras alternativas tales como el siguiente circuito:



El bloque fundamental para este generador aleatorio de cuatro bits está basado en el mismo circuito biestable que estudiamos en uno de los problemas resueltos del Capítulo 5: El Flip-Flop R-S. En este circuito biestable, al encenderse la máquina o al aplicarle energía eléctrica al sistema hay tantas probabilidades de que el elemento biestable se "encienda" en el estado Q=1 como en el estado Q=0, sin forma alguna de poder predecir en cuál de los dos estados caerá. Como puede verse, en el circuito mostrado hay cuatro elementos biestables independientes el uno del otro, excepto por el hecho de que los cuatro están conectados a la misma fuente de poder a través del circuito interruptor S. Cada vez que se cierra el interruptor S suministrando energía al sistema, Q1 entrará en un estado que puede ser "1" ó "0", ocurriendo lo mismo con Q2, Q3 y Q4. El interruptor S puede ser un relevador electromecánico o un interruptor electrónico. La simpleza de este diseño permite ir agregando más elementos biestables para construír fácilmente un circuito lógico generador de una secuencia totalmente aleatoria de números.

Lo que acabamos de ver es una forma de generar números al azar usando hardware. Podemos generar también números al azar usando software, por medio de algún programa computacional, el cual al ser ejecutado va proporcionando la lista de números. Pero considerando que el programa computacional es ejecutado por algo que está construído en su esencia con circuitos lógicos, a fin de cuentas los circuitos lógicos son los que se vienen encargando de todo.


PROBLEMA: ¿Cuáles son los dos métodos para llevar a cabo una multiplicación binaria? ¿Cuál de los dos métodos es el mejor? Usar los números 1101 (13) y 101 (5) como ejemplo.

Puesto que una multiplicación de un número m por un número n en cualquier sistema numérico, ya sea decimal, binario o cualquier otro equivale a sumar n veces el número m (o lo que es lo mismo, a sumar m veces el número n), este sería el primer método disponible para llevar a cabo una multiplicación:



Para que una máquina pueda realizar las operaciones requeridas bajo este método, se necesitan dos registros de memoria, uno que almacene el número que estará siendo sumado, y otro que contenga el resultado parcial de las sumas cumulativas conforme el número va siendo sumado varias veces en un Sumador Completo. Se requiere también de un contador binario (ascendente o descendente) que lleve la cuenta de cuántas veces hemos sumado el "multiplicando" para saber cuándo el número de adiciones iguala al número "multiplicador" deteniendo así la sumación repetitiva. Para cantidades pequeñas, en una máquina electrónica este proceso se puede llevar a cabo de una manera sumamente rápida; pero si vamos a efectuar una multiplicación de dos números como 1,058,342 y 345,856, las 345,856 sumas parciales tomarían un tiempo apreciable.

El segundo método es esencialmente el mismo procedimiento que el que usan los niños para multiplicar en la escuela primaria:



La gran ventaja de este método es que en vez de requerir de n sumas únicamente se requiere de tantas sumas como "unos" haya en el multiplicador. Si el multiplicador es un número como 10000001, entonces en vez de requerir 129 sumas sólo se requiere una sola, después de haber efectuado un corrimiento hacia la izquierda de uno de los sumandos parciales. Y en la multiplicación binaria llevada a cabo de esta manera, todos los sumandos parciales son iguales al multiplicando, de modo tal que las únicas operaciones involucradas son las operaciones de sumas y desplazamientos, lo cual requerirá del uso de un registro de transferencia construído muy posiblemente a base de flip-flops tipo D.


PROBLEMA: Suponiendo que vamos a dividir un número más grande entre un número más pequeño, ¿cuáles son los dos métodos para llevar a cabo una división binaria? ¿Cuál de los dos métodos es el mejor?

Esto es muy parecido al asunto de los dos métodos disponibles para llevar a cabo una multiplicación binaria. En el primer método para llevar a cabo una división, vamos restando el divisor del dividendo una y otra vez hasta que el número disminuído resulte ser menor que el divisor, en cuyo caso tendremos ya el cociente y el residuo. Pero al igual que como ocurre con la multiplicación, existe un segundo método que es esencialmente el mismo procedimiento que el que usan los niños para dividir en la escuela primaria, y es el que debe ocupar nuestra atención en el diseño de cualquier máquina que pueda efectuar la operación aritmética de división.


PROBLEMA: Dividir 01001110 entre 0110 utilizando lenguaje binario únicamente. En base al mecanismo utilizado, ¿cómo se podría llevar a cabo la operación aritmética de división mediante una máquina?

Imitaremos la rutina familiar de división decimal y escribiremos el procedimiento tal y como se acostumbra en el sistema decimal. Incluiremos cuatro ceros precedentes al frente del número que se irá poniendo en el cociente:



La división resulta ser una que produce un cociente exacto sin residuo. El resultado de la división, 1101 (13 decimal) es el mismo que el que esperaríamos obtener si hubieramos llevado a cabo la división entre los números decimales 78 y 6, que son los que corresponden a los números binarios proporcionados.

Este problema sugiere que el proceso de división se puede lograr mediantes substracciones sucesivas. Y también, al igual que en el caso de la multiplicación, se tiene la presencia de varias operaciones de "desplazamiento". Esto implica que un circuito para llevar a cabo la operación de división requerirá de un substractor con ayuda de algún secuenciador de control. Lo podemos hacer realidad diseñando algún circuito especial para ello. O podemos recurrir a un componente más sofisticado en el cual se pueda programar este tipo de operaciones, un componente como el microprocesador.


PROBLEMA: Diseñar un circuito que sea capaz de llevar a cabo la multiplicación de dos números binarios, a nivel del lenguaje de máquina.

Existen varias maneras de llevar a cabo un diseño de esta naturaleza. En el siguiente diagrama se presenta una de ellas:



Aunque a primera vista este parezca un circuito complejo, en realidad no lo es, ya que todo lo que hace es implementar la operación de multiplicación binaria por simples operaciones de desplazamiento y adición parcial como las que se requieren para poder llevar a cabo la multiplicación "a mano".

La acción del circuito empieza introduciendo los números binarios a ser multiplicados, A4A3A2A1 (el multiplicando) y B4B3B2B1 (el multiplicador), en los registros A y B, respectivamente, los cuales son registros de transferencia de entrada paralela hechos a base de flip-flops J-K ó de flip-flops D. Los números binarios son tomados por dichos registros de un "canal" de datos, del cual se toma primero el número A4A3A2A1 para ser depositado en el registro A y posteriormente el número B4B3B2B1 para ser depositado en el registro B.

Cuando la operación de multiplicación haya sido concluída, el resultado de la misma estará depositado en el doble registro formado por los bloques P1 y P2 de cuatro bits (flip-flops) cada uno, con una capacidad total de ocho bits para contener el resultado de la multiplicación. Al inicio de las operaciones, al ser cargados los registros A y B con los números binarios a ser multiplicados, el doble registro P1-P2 estará "limpio", en "ceros".

El flip-flop J-K que aparece en el borde inferior izquierdo del diagrama es el que se encarga de llevar a cabo el secuenciamiento alternado de las operaciones de desplazamiento y adición, a través de sus terminales complementarias Q y Q. Primero se llevará a cabo un desplazamiento, y tras esto una suma, tras lo cual se llevará a cabo nuevamente un desplazamiento y otra suma.

Al empezar las operaciones, a través de la terminal C2 el flip-flop J-K es puesto en el estado Q=1 iniciándose con ello la primera acción de desplazamiento. El primer bit multiplicador B1 es alimentado al flip-flop multiplicador, el flip-flop R-S que aparece en el diagrama. Si el primer bit multiplicador es "1", o sea B1=1, entonces el flip-flop R-S es puesto en el estado Q=1, de lo contrario será puesto en el estado Q=0. En la siguiente acción, la acción de "adición", también a través de la terminal C2, el flip-flop J-K es puesto en el estado Q=0, con lo cual su salida complementaria entra en el estado Q=1, lo cual se encarga de abrir las dos compuertas (la "compuerta 1" y la "compuerta 2", de color gris claro). Al abrirse la "compuerta 1", esto permite que los contenidos del registro P1 (inicialmente cero) entren al bloque sumador. Si el primer bit multiplicador B1 es un "1", entonces la "compuerta 2" también se abre, permitiendo que los cuatro bits del número A que están puestos en el registro A entren al bloque sumador. Como al empezar el contenido del registro P1 es 0000, el resultado de la suma será simplemente A4A3A2A1, puesta en el mismo registro P1, suponiendo que el bit B1 es un "1". Si hubiera sido un "0", entonces los contenidos del registro P1 seguirían siendo 0000.

Ahora el flip-flop J-K, tras recibir un "pulso" en su terminal de entrada C2, revierte al estado Q=1, iniciándose un nuevo ciclo, con lo cual el siguiente "bit multiplicador" que en este caso será B2 entrará al flip-flop multiplicador R-S, y al mismo tiempo los contenidos en el doble registro P1-P2 serán desplazados un bit hacia la derecha, consumándose así la segunda acción de desplazamiento (esta acción conjunta de desplazamiento en los contenidos del doble registro también ocurrió durante el primer desplazamiento, pero como todos los contenidos binarios de los registros P1 y P2 eran "0", no ocurrió nada que tuviese consecuencia alguna en ese momento). De nueva cuenta, si el segundo bit multiplicador es "1", o sea B2=1, entonces el flip-flop R-S es puesto en el estado Q=1, de lo contrario será puesto en el estado Q=0. Y en la siguiente acción, la acción de "adición", también a través de la terminal C2 el flip-flop J-K es puesto en el estado Q=0, con lo cual su salida complementaria entra en el estado Q=1, lo cual se encarga de abrir las dos compuertas. Nuevamente, al abrirse la "compuerta 1", esto permite que los contenidos del registro P1 (los cuales en esta ocasión ya no son necesariamente "ceros") entren al bloque sumador. Si el primer bit multiplicador B2 es un "1", entonces la "compuerta 2" también se abre, permitiendo que los cuatro bits del número A que están puestos en el registro A entren al bloque sumador, en donde serán sumados a los contenidos del registro P1, depositándose el resultado de la suma en el mismo registro P1.

Estas acciones se van repitiendo de modo idéntico, hasta que al final el resultado de la multiplicación binaria estará puesto en el doble registro P1-P2, con la mitad menos significativa del producto puesta en el registro P2 y la mitad más significativa puesta en el registro P1. El lector observador se dará cuenta de que, en aras de la simplificación didáctica, no se han incluído en el diagrama todos los alambres necesarios para construír el circuito, e inclusive se ha dejado pendiente un asunto importante en la construcción del multiplicador: una carrera crítica que ocurre en la acción de adición que involucra al registro P1, algo que invariablemente puede ocurrir siempre que hay una retroalimentación potencial de alguna señal en un circuito lógico. Es fácil ver el problema que se nos presenta aquí: al estar abierta la compuerta 1 para sumar los contenidos del registro P1 al número A que está proviniendo del registro A, depositando los resultados del sumador en el registro P1, la información es enviada de inmediato al sumador para ser sumada al número A, el cual enviará los nuevos resultados al registro P1, del cual saldrán dichos resultados al sumador para repetir el proceso. Es, en efecto, un círculo vicioso. Queda claro que entre las operaciones de sumar los contenidos del registro P1 al número proveniente del registro A y depositar el resultado de dicha suma en el registro A es necesario poner un dique, una compuerta y/o un registro adicional, posiblemente a la entrada del registro P1, que se cerrará cuando los contenidos del registro P1 se estén enviando al bloque sumador para llevar a cabo la adición, y que se abrirá para que el registro P1 pueda recibir los resultados de la suma a la vez que la compuerta 2 se cierra impidiendo que el depósito del nuevo resultado pueda ser reciclado. De este modo, la solución de los problemas de carreras críticas se reduce a la adición de compuertas y/o registros adicionales, siempre y cuando estos problemas potenciales puedan ser descubiertos a tiempo por los diseñistas.

Obsérvese que cada uno de los "pulsos" de reloj C1 y C2 encargados de llevar a cabo acciones de secuenciamiento van dejando de ser ya simples "pulsos de reloj" para convertirse en señales de control originadas desde algún secuenciador maestro, desde alguna unidad de control que va indicando el orden en el cual se deben ir activando cada una de estas terminales Ci.

El funcionamiento del circuito multiplicador puede ser entendido mejor viendo un ejemplo como el siguiente en el que se lleva a cabo en el mismo la multiplicación de los números 1101 (13) y 0110 (6):



A continuación tenemos una tabla que describe el funcionamiento del circuito multiplicador usando los números dados:

Align Center

En este caso, el número mayor (1101) es el multiplicando y el número menor (0110) es el multiplicador, lo cual requiere que en algún circuito o procedimiento previo los dos números binarios sean comparados para determinar cuál de ellos es el mayor y cuál de ellos es el menor. El multiplicando es puesto en el registro de memoria A dejándosele intacto todo el tiempo durante el cual se llevará a cabo la multiplicación, mientras que el número B es puesto en el registro de memoria B, asociado al "bit de multiplicación". El resultado final de la multiplicación, 1001110 (78) quedará como el número "0100 1110" puesto en el doble registro P1-P2 en donde se irá acumulando el resultado conforme se lleve a cabo la multiplicación con la adición de los productos parciales. En cada desplazamiento los contenidos del doble registro P1-P2 son recorridos un lugar hacia la derecha, mientras que en cada adición el contenido del registro P1 es sumado al número "0000" si el "bit multiplicador" es cero, o a "1101" si el "bit multiplicador" es "1". Obsérvese cuidadosamente en la tabla que el resultado del tercer ciclo dual produce un sobreflujo:

0110 + 1101 = 10011

Este sobreflujo debe ser guardado temporalmente en algún flip-flop (no mostrado en el diagrama) con el fin de que aparezca en el extremo izquierdo de P1 cuando ocurra el siguiente desplazamiento.

No presenta pues problema alguno el diseñar un circuito que sea capaz de llevar a cabo una operación de multiplicación de dos números binarios, como tampoco presentará problema alguno el diseñar un circuito que sea capaz de llevar a cabo la división de dos números usando substracciones sucesivas. Y si las operaciones aritméticas de multiplicación y división se pueden "grabar" en la microelectrónica de un circuito integrado, también se deben poder "grabar" operaciones más sofisticadas como la extracción de una raíz cuadrada o la obtención de alguna función trigonométrica con operaciones mateméticas que al fin y al cabo se pueden llevar a cabo con simples adiciones, substracciones, multiplicaciones y divisiones. Y de hecho esto fue precisamente lo que se hizo cuando aparecieron en el mercado los primeros microprocesadores; en apoyo de las operaciones básicas del microprocesador 8086 hizo su aparición el co-procesador de matemáticas 8087, el cual se encargaba de realizar operaciones matemáticas que de otro modo hubieran tenido muy atareado al "lento" (para nuestros tiempos actuales) microprocesador 8086; aunque eventualmente en diseños posteriores la microelectrónica del co-procesador de matemáticas terminó siendo incorporada a la microelectrónica de los microprocesadores posteriores tales como el 80386.

Google lanza servicio gratuito de descarga de música legal en China


En pos de combatir la piratería de música y monetizar en algo el gran mercado online de China, Google lanzó un servicio gratuito de descarga de canciones en ese país. El servicio será financiado con los ingresos producidos por publicidad y serán compartidos por Google con los sellos discográficos.

Por el momento el catálogo disponible corresponde a 350.000 canciones de artistas chinos y extranjeros de compañías como Sony Music, Warner Music, EMI y Universal Music, pero se espera que este crezca hasta alcanzar los 1,1 millones de unidades. No se espera que este servicio llegue a otros mercados.

Un 99% de la música que se distribuye actualmente en China es pirata, así que es probable que un servicio legal y gratuito, en algo logre revertir eso. A pesar de ser un mercado inmenso, el gigante asiático representa sólo un 1% de las ventas de música legal del mundo.