Está en la página 1de 4

Electrónica Digital 2 Examen: temas 1, 2 y 3

Programa de Ingeniería Electrónica Fecha: miércoles 19 de abril de 2023


Universidad de Antioquia Duración: una hora y cuarenta y cinco minutos (1h:45m)

NOMBRE: ______________________________ DOCUMENTO: ________________ HORARIO LAB: ___________

EJERCICIOS PARA RESOLVER

1) (15%) Relacione el valor de la columna izquierda con el equivalente de la derecha, teniendo en cuenta que
numéricamente son el mismo valor, pero tienen distinta representación:

Valor dado con determinada representación: Otra representación para el mismo valor:
a) -3 en signo y magnitud de 4-bits: 4’b1011 c 16’b0000_0000_1111_1011
___
b) -5 en complemento a dos de 4-bits: 4’b1011 a 16’b1000_0000_0000_0011
___
c) +251 sin signo de 8-bits: 8’hFB e 16’b0000_0000_1111_0011
___
d) -13 en complemento a dos de 8-bits: 8’hF3 b 16’b1111_1111_1111_1011
___
e) +243 en signo y magnitud de 9-bits: 9’hF3 d 16’b1111_1111_1111_0011
___

2) (15%) Una empresa de la ciudad lo quiere contratar a usted para que genere el código en SystemVerilog de
una memoria RAM con capacidad de 512 bytes y bus de datos de 16-bits. Para probar sus habilidades, se le
solicita a usted definir los puertos de entrada y salida del módulo RAM, así también como la definición del
arreglo de almacenamiento para la memoria llamado mRAM:

module ram (clk, we, address, datain, dataout);


// Definición de reloj (clk) y write-enable (we)
input logic clk, we
______________________________________________________
// Definición del bus de direcciones (address) [?:?] [?:?]
datain dataout
input logic [7:0] address
______________________________________________________
we RAM
// Definición del bus de datos de entrada (datain)
input logic [15:0] datain address
______________________________________________________
// Definición del bus de datos de salida (dataout) [?:?]
input logic [15:0] dataout
______________________________________________________
// Definición del arreglo (mRAM)
logic [15:0] mram [2**8-1:0]
______________________________________________________

endmodule
Electrónica Digital 2 Examen: temas 1, 2 y 3
Programa de Ingeniería Electrónica Fecha: miércoles 19 de abril de 2023
Universidad de Antioquia Duración: una hora y cuarenta y cinco minutos (1h:45m)

3) (20%) Un nuevo formato para representar números de punto flotante empleando solo 16-bits ha sido
generado. En este nuevo formato se reservó un bit para el signo, 6 bits para el exponente y 9 bits para la
fracción de la mantisa normalizada como se muestra a continuación:
Representación de punto flotante (16-bits)
S EXPONENTE FRACCIÓN
1b 6b 9b

Las siguientes son las características del formato:


a. Exponente sesgado. Al valor real se le debe sumar 31. Rango del exponente sesgado: [1, 62].
b. El valor se representa como: 𝑁 = (−1)𝑆 𝑥 1. 𝑓𝑟𝑎𝑐𝑐𝑖ó𝑛 𝑥 2𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡𝑒−31.
c. La mantisa está normalizada. En el formato se guarda la fracción en 9 bits.
d. Representación de los valores +/- cero: S (signo) = 0/1, exponente = 0, fracción = 0.
e. Representación de los casos +/- infinito: S (signo) = 0/1, exponente = 63, fracción = 0.
f. Representación del caso NaN: S (signo) = 0, exponente = 63, fracción ≠ 0.

Sabiendo lo anterior, relacione el valor de la columna izquierda con el valor en el formato de 16-bits de la
columna de la derecha.

Valor en representación decimal: Valor en punto flotante de 16-bits:


a) 9.75 c 16’b1100_0001_0010_0000
___
b) NaN e 16’b0100_0011_0101_0000
___
c) -3.125 b 16’b0111_1111_0000_0000
___
d) -Inf ___
a 16’b0100_0100_0111_0000
e) 9.75 + (-3.125) d 16’b1111_1110_0000_0000
___

Bonus
a) (2%) En la expresión del nuevo formato de 16-bits: 𝑁 = ± 𝑚𝑎𝑛𝑡𝑖𝑠𝑎 𝑥 2𝐸𝑋𝑃 , indique el rango de valores
para 𝐸𝑋𝑃: ________________
b) (2%) Valor máximo que se puede representar en el nuevo formato (decimal): _____________________
Electrónica Digital 2 Examen: temas 1, 2 y 3
Programa de Ingeniería Electrónica Fecha: miércoles 19 de abril de 2023
Universidad de Antioquia Duración: una hora y cuarenta y cinco minutos (1h:45m)

4) (20%) El siguiente programa en ensamblador para el procesador ARM debería inicializar todas las posiciones
del vector vec a cero; sin embargo, por un error de programación, la inicialización no es la correcta.

.text
.equ N, 4
MOV R0, #0
LDR R1, =vec // Carga la dirección en memoria de vec[0]
MOV R2, R0
For1:
CMP R0, #N
BHS EndFor1 // Si R0 >= N, salte a EndFor1
STR R1, [R1], #4 // Almacenamiento con modificación de registro base
ADD R0, R0, #1
B For1
EndFor1:
B EndFor1
.data
vec: .ds.l N // vec es igual a 0x0000_0060

Para este problema, indique:

a) (15%) El valor en cada posición del vector cuando el programa es ejecutado hasta encontrar por primera
vez la instrucción B EndFor1. Tenga en cuenta que el vector está ubicado a partir de la dirección
0x0000_0060.
vec[0] ___________ vec[1] ___________ vec[2] ___________ vec[3] ___________

b) (5%) ¿Qué línea de código cambiaría usted para solucionar el problema?

Línea original: __________________________ Línea corregida: __________________________


Electrónica Digital 2 Examen: temas 1, 2 y 3
Programa de Ingeniería Electrónica Fecha: miércoles 19 de abril de 2023
Universidad de Antioquia Duración: una hora y cuarenta y cinco minutos (1h:45m)

5) (30%) Una empresa de la ciudad lo contrata a usted para que genere un pequeño programa en ensamblador
para el procesador Simple CPU implementado en la Práctica No. 2, además de la correspondiente máquina
de estados. Dicho programa deberá:
a. Esperar a que el valor disponible en la dirección de memoria 0xFA cambie de 0x00 a 0x01.
b. Cuando se produzca el cambio, leer el valor de 8-bits disponible en la dirección de memoria 0xFB y
almacenarlo en uno de los registros.
c. A continuación, obtener el complemento a dos del valor almacenado en el paso anterior, sí su bit más
significativo es igual a uno (1). En caso contrario, no realizar transformación alguna.
d. Luego, escribir el valor obtenido en el paso anterior en la dirección de memoria 0xFC.
e. Finalmente, esperar a que el valor disponible en la dirección de memoria 0xFA cambie de 0x01 a 0x00
para luego repetir al paso a).

Para este problema, indique:

a) (20%) El programa en ensamblador que resuelve el problema dado (no requiere codificar las
instrucciones en binario o hexadecimal). Ejemplo:
#1 MOV R0, #0
#2 ADD R1, R2, R3
#3 ... ...

Programa propuesto por usted (su programa no requiere tener el número de líneas dado aquí):
#1 _____________________________ #8 _____________________________
#2 _____________________________ #9 _____________________________
#3 _____________________________ #10 _____________________________
#4 _____________________________ #11 _____________________________
#5 _____________________________ #12 _____________________________
#6 _____________________________ #13 _____________________________
#7 _____________________________ #14 _____________________________

b) (10%) El diagrama de la máquina de estados a introducir en la unidad de control, que establece el flujo
de ejecución de las instrucciones dadas por usted en el numeral anterior (no se requiere código en
SystemVerilog).

También podría gustarte