Examen febrero 2023 problema 2

Examen febrero 2023 problema 2

de Nicolas Brignoni Dardano -
Número de respuestas: 1

Buenas tardes, estaba haciendo el problema 2 de este examen y me surgieron algunas dudas.

  1. Es necesario memorizar los datos que me da la Sonda? Pensé que por el protocolo que mencionan en la letra la Sonda no pone datos nuevos hasta que la señal 'busy' se desactiva. O sea, la sonda saca los datos por DSonda[7..0] y los dejaba ahí estables hasta que baje 'busy'?  O solo son validos en el pulso de 'new'?
  2. Las señales que son un solo bit como  'casi_lleno' , 'vacío' y 'busy' las podría juntar todas para que me ocupen un solo espacio de E\S no?
  3. Leer el ultimo dato de la cola es independiente a borrarlo? En la solución plantean:


Primero leen el dato mas viejo de FIFO y después lo borran. Creí que la cola te daba el dato mas antiguo si tenia un pulso en unload. Cuando me puse a escribir ahora este mensaje me di cuenta que capaz el ultimo dato esta siempre disponible y unload solo lo borra. 

Ahora, estaría mal hacerme una señal de control IDSP_FIFO que se conecte al buffer triestado y que cuando lea la entrada (que es el primer dato cargado en FIFO) también lo borre de la cola (conectaria IDSP_FIFO a la pata 'unload') ? algo así:


Saludos,

Nicolas.

En respuesta a Nicolas Brignoni Dardano

Re: Examen febrero 2023 problema 2

de Julio Perez -
1. Sí, es correcto lo que decís. En la solución nuestra exageramos
2. Sí, se puede
3. Efectivamente, el dato más antiguo está siempre presente, la letra dice "La salida Dout[7..0] presenta el valor del dato más antiguo almacenado en el FIFO". Para saber si funciona la solución que proponés de hacer "unload" con el mismo pulso IDSP que habilita el buffer triestado hay que hacer un análisis más fino, porque corrés el riesgo que el dato cambie al siguiente valor cuando lo estás leyendo. Como te dicen que el FIFO retira el dato con el flanco de subida de "unload", en principio funcionaría, aunque faltaría verificar que el tiempo de hold que te garantice el FIFO (cuánto tiempo se mantiene el dato viejo después del flanco) sea suficiente para garantizar que se cumple el tiempo de hold que te pide el Z80 (t16: "Data hold time after /RD Rise" en la cartilla del Z80).

Saludos,
julio