3.1.6. Tema 8: Problemas de aula

3.1.6.1. Representación de números negativos

  1. Transformar los siguientes números que se encuentran representados en signo-magnitud a complemento a 2: 10011001 y 01110100.

  2. Transformar los siguientes números que se encuentran representados en complemento a 2 a representación signo-magnitud de 8 bits: 11100110 y 1011.

  3. Un ordenador tiene una longitud de palabra de 8 bits (incluyendo el signo). Indicar qué rango de enteros se pueden almacenar en el ordenador si:

    1. Se utiliza notación de signo-magnitud

    2. Se utiliza notación en complemento a 2.

3.1.6.2. Operaciones en complemento a 2

  1. Realizar las siguientes restas utilizando el sistema de complemento a 2

    1. 00110011 – 00010000

    2. 01100101 – 11101000

  2. Suma los dos números siguientes representados en complemento a 2 e indica si existe desbordamiento: 11001 y 11110110. Indica el mínimo número de bits con el que se puede representar el resultado.

3.1.6.3. Sumadores

  1. Realizar un sumador/restador en complemento a dos usando un 74x283, puertas OR-Exclusiva e inversores. Explicar su funcionamiento.

    ../_images/tema8-1.jpg

3.1.6.4. Unidades Aritmético Lógicas (ALUs)

  1. Realizar una ALU que a partir de dos entradas M0 y M1 haga las operaciones de la tabla siguiente sobre los operandos de cuatro bits A y B que están en formato complemento a dos:

    M1

    M0

    Operación

    0

    0

    \(A + B\)

    0

    1

    \(A - B\)

    1

    0

    \(2·A + B\)

    1

    1

    \(A - 2·B\)

    1. Realizar el diseño con bloques genéricos y las puertas que sean necesarias.

    2. Realizar la descripción en VHDL.

      • opción CASE

      • opción WITH SELECT

3.1.6.5. Descripción VHDL de circuitos aritméticos

  1. Un sistema eólico dispone de dos anemómetros que tienen una salida digital en 8 bits. Las salidas se denominan viento1[7..0] y viento2[7..0]. Realizar la descripción VHDL de un circuito que realice el calculo de la velocidad media del viento:

    \[velocidad_{media} = \frac{viento1 + viento2}{2}\]

    Donde :math: velocidad_{media} es la velocidad media del viento, :math: viento1 es la medida del primer anemómetro y :math: viento2 es la medida del segundo anemómetro, cada uno de ellos valores binarios con 8 bits.

    Nota

    no usar el operador /