PRÁCTICAS DE COMPUTADORES I

NOVENA SESIÓN


  1. Ejercicio

    Prográmese en Verilog el siguiente contador con posibilidad de cuenta ascendente o descendente. Verífiquese. Úsese una variable de cuatro bits en lugar de cuatro variables de un bit para la salida.
    Contador ascendente/descendente

    ¿Qué se observa si cambiáis a mitad de recorrido la línea de selección de modo (incremento o decremento), sin limpiar el contador?

    Añadid las líneas PRESET y CLEAR activas por bajo y asíncronas a los biestables del contador. Modificad el diseño añadiendo una línea adicional de HOLD, también activa por bajo, de modo que si esa línea está activa, el biestable no responda a la señal T. Auxiliaros de las entradas PRESET y CLEAR para ello, no modifiquéis el interior del biestable T.

    Haced una última simulación en la que, cada vez que cambiéis de modo de cuenta, activéis previamente HOLD y la desactivéis después, a fin de que la cuenta cambie de sentido normalmente, sin producirse saltos.

    Soluciones y comentarios
  2. Ejercicio

    Modificad ligeramente el circuito del ejercicio anterior para que realice continuamente una cuenta de 10 a 0, según el esquema de la figura:
    Contador de 10 a 0

    Al realizarlo, observaréis que no realiza la cuenta correctamente, sino que cuenta 10, 9, 8, 2, 1, 0, 10, 9, 8,... La razón es simple. Al tratarse de un contador asíncrono, las transiciones tardan en propagarse a todos los biestables. De hecho, la cuenta que lleva a cabo es:

    Los estados en rojo son estados transitorios que se producen mientras se va propagando la señal a todos los biestables. En la transición del 8 al 7 hay un transitorio que vale 15 y hace que la puerta NAND actúe cuando no debe. Probad varias soluciones:

    1. Añadid una entrada adicional a la puerta NAND y conectar la señal de reloj a ella. De este modo, la puerta actuará solamente en el nivel alto del reloj, cuando los biestables ya tienen el estado correcto.
    2. Una alternativa al punto anterior es introducir un pequeño retardo en la puerta NAND
    3. La solución más fetén, aunque no más económica pasa por distinguir las dos ocasiones en que aparece 11112 en la cuenta. Se puede hacer con un biestable que almacene el valor anterior de Q4 y agregar dicho valor como una entrada adicional de la puerta NAND. Un biestable D activo en flanco de subida es perfecto para este trabajo.

  3. Ejercicio

    Comprobad, mediante Verilog, el funcionamiento correcto de este contador síncrono:
    Contador ascendente/descendente
  4. Ejercicio

    Se trata de analizar el siguiente contador de cuenta arbitraria y construir su diagrama de transición de estados:

    Circuito para analizar


    Recordemos los pasos que hay que dar:
    1. Primero hay que escribir las ecuaciones de las jotas y kas de los biestables en función de las variables de salida Q2Q1Q0.
    2. Con ayuda de esas ecuaciones, construid una tabla con todos los estados y los valores de las jotas y kas de los biestables para cada estado
    3. Completad la tabla con el estado nuevo al que va a parar el estado de cada fila.
    4. Dibujad el diagrama de transición de estados a partir de la tabla.

    Comprobad que habéis realizado el ejercicio correctamente introduciendo el circuito en Verilog.

  5. Ejercicio

    En el año 2718, la humanidad ha sido capaz de explorar numerosos sistemas planetarios lejanos sin haber encontrado vida inteligente1. Los científicos deciden dejar dispositivos en los planetas visitados que den pistas de la localización de la Tierra a otros viajeros interestelares. Para que el visitante tenga constancia de que el objeto que ve es producto de vida inteligente y no del azar, se decide que debe llevar un contador que cuente según el inicio de la sucesión de Fibonacci, en la que cada término resulta ser la suma de los dos anteriores:

    0, 1, 1, 2, 3, 5, 8, 13, y vuelta a empezar.

    Nuestro cometido es diseñar tal contador. Después de mucho recapacitar, se decide que se va a realizar el dispositivo como un contador de cuatro bits de cuenta arbitraria. Sin embargo, nos encontramos con el problema de que hay un número que se repite (el 1). Se decide solucionarlo usando para el primer 1 otro número no usado (el 9) e intentar corregir esa salida con lógica combinacional añadida al final. De este modo, la cuenta que se debe generar es:

    0, 9, 1, 2, 3, 5, 8, 13, y vuelta a empezar.

    Veamos los pasos que hay que dar, recordando el ejemplo visto en teoría:
    1. Debemos construir el diagrama de transición de estados, haciendo que los estados no usados decaigan a cualquiera de los otros. De una elección acertada de estos decaimientos puede depender lo simple o complicado que resulte el circuito final y, dada la gran cantidad de planetas con posibilidad de vida, unos céntimos de ahorro puede suponer un gran pellizco al final. Este es el diagrama del ejemplo que veíamos en teoría:
      Diagrama de transición de ejemplo
    2. Con ayuda de la tabla de transiciones del biestable JK,
      Tabla de transiciones de JK
      se debe escribir la tabla de transiciones. En el ejemplo de la teoría, era:

      Tabla de transiciones
    3. Toca ahora escribir las jotas y las kas de los biestables en función de las variables binarias que determinan el estado. Estas variables son, en este ejercicio, las salidas de los biestables: Q3Q2Q1Q0. Nos podemos auxiliar de mapas de Karnaugh. Como muestra, parte del ejemplo visto en teoría:
      Ejemplo de Karnaugh para J y K
    4. Una vez deducidas las ecuaciones de excitación de las jotas y las kas de cada biestable, se puede construir el circuito. En el ejemplo de teoría, este es el circuito resultante:
      Contador de cuenta arbitraria
    5. Probad con Verilog el circuito que habéis obtenido. En caso de que no realice la cuenta: 0, 9, 1, 2, 3, 5, 8, 13, 0, ..., revisad los cálculos.
    6. Diseñad el circuito combinacional que cambie el 9 por un 1, dejando el resto de valores que importan como está. Si no sois capaces de diseñarlo sobre la marcha, construid la tabla de verdad y aplicad de nuevo los mapas de Karnaugh.
    7. Probad el diseño final y, de funcionar, disfrutad de vuestra obra: un flamante señalador de vida inteligente para extraterrestres2, marca ACME®.

    Nota: podéis mandar vuestros diseños, junto con el código Verilog al correo del profesor. Aquel diseño que funcione, esté realizado con el menor número de puertas y, en caso de empate, llegue antes, será publicado, bajo pseudónimo, en esta página web. Podéis usar biestables JK activos por flanco sin líneas de PRESET y CLEAR y puertas AND, OR, NOT, XOR, NAND, NOR y XNOR. Cada biestable cuenta como 6 puertas, se realice como se realice. Si se usan puertas AND, OR, XOR, NAND, NOR o XNOR de más de dos entradas, cada entrada adicional cuenta como media puerta más.

    Segunda nota: ¿Cómo quedaría de sencillo este circuito si lo realizásemos en Verilog con un modelo de comportamiento? ¿En qué circunstancia se usaría tal aproximación al problema?

    Soluciones y comentarios.

  6. Órdenes de la shell relacionadas.

    ls
    lista el contenido de un directorio
    cd
    cambia el directorio de trabajo
    rm
    borra un fichero
    man
    muestra la página de manual de una orden
    cat
    muestra el contenido de un fichero


  7. LPEs.

_____________________________
1 Esto supuso un duro revés para el proyecto encargado de la búsqueda de vida inteligente, al cual se dedicaron no pocos fondos. Para evitar la tragedia política, se votó y se aprobó, por ley, que se había demostrado que no había vida inteligente en el Universo. No se sabe bien si a propósito o no, no se hizo salvedad respecto al planeta Tierra...

2 En el año 3141 parece que el dispositivo tuvo éxito pues se recibió por radio cuántica un mensaje de respuesta. La celebración fue grandiosa, aun sin haber sido capaz de descifrar el mensaje. Por supuesto que se revocó la ley que afirmaba que no había vida inteligente en el Universo y se levantaron múltiples estatuas. El mensaje se vio que estaba compuesto por dos partes claramente diferenciadas. Lo que parecía un saluda y una segunda parte algo más extensa que podría ser un manual técnico avanzado con los descubrimientos científicos de la civilización alienígena.
   Al final, después de mucho esfuerzo, se logró descifrar el mensaje corto. Venía a decir: "Vayan ya dejando de abandonar chismes electrónicos. Nos estamos gastando un pastón limpiando los planetas por donde van pasando". La traducción de la segunda parte se abandonó al descubrir, justo al principio, las palabras: "En la oscuridad sonaba un teléfono, un sonido débil"...

© 2019 Guillermo González Talaván.