Prueba Final 2014 - Cómo saber si poner o no un FF a la entrada

Prueba Final 2014 - Cómo saber si poner o no un FF a la entrada

de Alejandro Javier Goday Ruiz -
Número de respuestas: 6

Buenas a todos:
No me doy cuenta bien de cuándo es necesario poner un FF a la entrada en algunos casos.

En particular me parece extraña la solución del parcial de 2014.

En el ejercicio 2, para recibir los datos que vienen en forma serial en DATA, me hubiera parecido razonable poner un FF-D con el CLK_PS2 conectado en su entrada de reloj y con DATA conectado en su entrada D. Sin embargo, la solución no hace esto. En este problema por otro lado, no entiendo por qué nunca se hace alusión en el código al CLR del FF de interrupción, pero eso no me preocupa tanto.

Por otro lado, en el ejercicio 3, para recibir senDat, ponen un registro de FF-D en el cual la entrada de reloj está conectada a NuevoDat y la entrada D está conectada a SenDat.

¿Cuál es la diferencia fundamental entre estos dos ejemplos, que determina que en uno se ponga un FF y en el otro no?

Esta duda me surgió también con otros parciales. Agradezco cualquier ayuda.

Saludos,

Alejandro.

En respuesta a Alejandro Javier Goday Ruiz

Re: Prueba Final 2014 - Cómo saber si poner o no un FF a la entrada

de Alejandro Gustavo Bellati Barthes -

Hola Alejandro que tal? Paso a responderte.

Básicamente hay dos tipos de FF a la entrada. Los de handshake, y los puertos de entrada con memoria. Los handshake son simplemente una bandera que manejan el dispositivo externo y el Z80 de forma de "dar aviso" de algún evento, esta bandera es útil por ejemplo cuando la forma de avisar del dispositivo externo es un pulso que puede venir en cualquier momento. En general se usan para cuando uno decide hacer polling, como el caso del ejercicio del 2014 que comentas. Respecto a los puertos con memoria: son esencialmente iguales a un puerto normal solo que con un flip flop de por medio. ¿Con que motivo va este flip flop? Hay veces que no sabemos si el dispositivo de salida mantiene su estada estable o solo la da por un momento. Ejemplo, en este caso sabemos que cuando hay un flanco en clk la señal en data se mantendrá estable hasta el siguiente dato, por lo que no es necesario memorizarlo con un flip flop.  Distinto sería si lo único que sabemos es que en el flanco de clk el dispo pone sus datos pero no sabemos por cuanto. En ese caso habría que agregar el FF D que comentas vos. De esta forma el dato quedará memorizado en el momento correcto y cuando clk interrumpa estaremos tranquilos de que cuando llegue a preguntar por DATA en la rutina de atención estará el dato esperado ya que nos encargamos de mantenerlo estable. Volviendo un poco a este ejercicio, lo que tu dices "para recibir los datos que vienen en forma serial en DATA, me hubiera parecido razonable poner un FF-D con el CLK_PS2 conectado en su entrada de reloj y con DATA conectado en su entrada D" estaría bien esta solución pero sería redundante el FF de Data ya que los datos se mantienen por si solos.

Lo de CLR_FF la verdad me parece extraño, tendría que meterme a ver bien el ejercicio, pero me parece extraño, porque podrían limpiarlo con la señal INTA clásica, sino hay que tener algunos cuidados en la rutina de atención y demás.

El ejercicio 3: Respecto a este ejercicio primero comento el tema de la señal ready, la letra dice "Cuando llega el pulso de ready se debe leer el estado de la transmisión en la salida status de la radio" y si no leí muy rápido no dice mas nada respecto a status. Lo único que se es que necesito saber cuanto vale status en el momento exacto en el que hay un pulso en ready el tema es que no se si status se mantiene hasta que yo lo lea, por eso va el puerto con memoria cuyo clk va conectado a ready, para mantener el dato. 

Respecto al sensor, uno podría pensar exactamente lo mismo, no se si mantiene Sendat hasta que yo baje busy. Otra cosa es que dice que produce datos a una tasa variable, leyendo la letra a mi esto me genera la siguiente duda: Si me mando un dato y antes de que yo lo lea genera otro! ¿Me mantiene el dato anterior? Lo único que se es que no coloca ese dato nuevo en sendat y que no me manda un pulso en nuevo data hasta que yo le avise. Sin dudas si hubiera estado en ese parcial hubiera preguntado si el dispositivo mantiene o no su entrada, al final siempre es esto lo importante.

De todas formas esto es lo que creo yo, invito a un profe a comentar su opinión. Espero haber sido de ayuda, saludos!

En respuesta a Alejandro Gustavo Bellati Barthes

Re: Prueba Final 2014 - Cómo saber si poner o no un FF a la entrada

de Alejandro Javier Goday Ruiz -

Muchísimas gracias Alejandro por el tiempo que dedicaste y el detalle al que fuiste en tu respuesta. Me pareció muy bueno el estilo conversacional que le diste, es muy fácil de leer y muy entendible y es una buena ayuda.

Yo también pensé lo mismo del INTA. Me pareció extraño que no usara el OR de M1_n e IORQ_n.

Otra pregunta que me surgió es qué tan natural es en general en estos ejercicios, agarrar una entrada que tiene 1 bit como DATA, y en el Hardware poner una entrada que se llama igual pero que tiene 8 bits. Si bien se entiende que solamente se usa el bit menos significativo de DATA[7..0], me surge la pregunta de por qué lo hace, a lo mejor es un tema de los comandos que uno usa, o quizás así se ahorra el detalle de especificar a que bit del bus de datos conecta la entrada serial.

Saludos,

Alejandro.

En respuesta a Alejandro Javier Goday Ruiz

Re: Prueba Final 2014 - Cómo saber si poner o no un FF a la entrada

de Nicolas Enrique Violante Grezzi -
Hola, Alejandro.
Respecto a lo que mencionas de usar o no el OR de /M1 y /IORQ, ambas soluciones son válidas. La diferencia es que si no lo usas debes acodarte de hacer el clear tanto en la isr como en la inicializacion del sistema, por lo que me parece más práctico usar el OR conectado a un AND con /reset y dejar solucionado eso puramente por hardware.

Sobre lo otro, a mi me parece mejor hacer la entrada de 1 bit y luego especificar a qué bit del bus de datos lo conecto.

Saludos.
En respuesta a Nicolas Enrique Violante Grezzi

Re: Prueba Final 2014 - Cómo saber si poner o no un FF a la entrada

de Alejandro Javier Goday Ruiz -

Muchas gracias Nicolás. Me parece que en general voy a optar por el OR.

Saludos,

Alejandro.

En respuesta a Alejandro Javier Goday Ruiz

Re: Prueba Final 2014 - Cómo saber si poner o no un FF a la entrada

de Julio Perez -

Muy buena la explicación de Nicolás.

Sobre el borrado del FF de petición de interrupción en la prueba final 2014 es simplemente un error de la solución que omite poner un OUT para borrarlo dentro de la rutina de atención de interrupción.  También falta en la solución la parte (c) con la inicialización donde debería incluirse el OUT para borrar el FF de petición antes de habilitar interrupciones.

Saludos,

julio.