Examen Diciembre 2019 Problema 2 RTL

Examen Diciembre 2019 Problema 2 RTL

de José Pérez Mereles -
Número de respuestas: 2

Hola buenas, tengo unas dudas con respecto a la solucion del problema 2. Adjunto el ejercicio, la solucion y luego mis dudas:





Mi duda es: Cuando en la letra menciona que la salida Para(7..0) debe contener el último dato siempre que Busy=0, y que Para(7..0) es irrelevante si Busy=1, ¿no se deberían hacer transferencias de Mem(7..0) a Para(7..0) solo cuando Busy=0, y no hacer ninguna transferencia cuando Busy=1?

Luego, también me queda la duda de cómo se está usando el cont(3). Ya que, como en el paso 0 arranca con 001, en el paso 1. Mem solo podrá cargar hasta 7 bits de los 8 que son enviados en serie. ¿No debería arrancar cont(3) con 000?

También me llama la atención que no se cargue Mem(7..0) con "0" cuando termina el paso 3. y vuelve al paso 0. , sin embargo, sí se carga Msk(7..0) con 0. Si todas sus celdas se vuelven a cargar con valores nuevos de serie, ¿no debería ser innecesario "resetear" ninguno de los dos?

En respuesta a José Pérez Mereles

Re: Examen Diciembre 2019 Problema 2 RTL

de Juan Pedro Maestrone -
Buenas. Respondo por partes:

1) Justamente que diga que Para[7..0] es irrelevante cuando Busy=1 implica que no importa que hagas transferencias cuando Busy=1. Por eso mismo la conexión Para[7..0] = Mem[7..0] se pone luego del end sequence, ya que minimiza la lógica final (si se pusiera solo en los pasos en los que Busy=0 habría que agregar compuertas AND con esos pasos, y una compuerta OR si se pone en más de 1 paso). De todas formas si lo pusieras solo en los pasos en los que Busy=0 no habría problema, lo que sí además de lo anterior estarías imponiendo Para[7..0]=0 en los pasos en donde no indiques el valor de dicha salida (por convención de salidas en RTL).

2) Tienes razón, es un typo de la solución; debería ser cont[2..0] <-- 0.

3) También tienes razón, no es necesario poner Msk[7..0] <-- 0 ya que luego sobreescribes los 8 bits.

Saludos,
Juan Pedro.