Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza...

16
Sistemas Sincrónicos vs. Asincrónicos • Las señales pueden cambiar en cualquier momento • La sincronización y pasaje de datos se realiza mediante handshakes • Hay un clock que rige el instante en que se pueden producir cambios • Todos los bloques se comunican mediante el clock y señales sincrónicas http://en.wikipedia.org/wiki/Asynchronous_circuit

Transcript of Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza...

Page 1: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Sistemas Sincrónicos vs. Asincrónicos

• Las señales pueden cambiar en cualquier momento

• La sincronización y pasaje de datos se realiza mediante handshakes

• Hay un clock que rige el instante en que se pueden producir cambios

• Todos los bloques se comunican mediante el clock y señales sincrónicashttp://en.wikipedia.org/wiki/Asynchronous_circuit

Page 2: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Las señales deben permanecer “quietas” en las proximidades de los flancos de clock

Flip-flops y Metaestabilidad

Page 3: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

De no cumplirse esta premisa, se entra en un estado de metaestabilidad

Flip-flops y Metaestabilidad

Page 4: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Especificaciones de la Cyclone (nosotros usamos speed grade -6)

Flip-flops y Metaestabilidad

Page 5: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Esquema general

Pautas para el diseño sincrónico

Page 6: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Estructura de la Cyclone (LE)

Pautas para el diseño sincrónico

Page 7: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Ejemplo:

Pautas para el diseño sincrónico

Page 8: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

No es buena idea colocar lógica en el camino del clock

Pautas para el diseño sincrónico

Ej: gated clock

Page 9: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Por más que el diseñador se asegure el comportamiento de la señal enable, se genera clock skew

Pautas para el diseño sincrónico

tCO – tDELAY < tHmin

Page 10: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Implementación más eficiente del FF con enable

Pautas para el diseño sincrónico

Page 11: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Registered outputs◦ Se eliminan glitches◦ Se agrega un clock de latencia adicional

Pautas para el diseño sincrónico

Page 12: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Maquinas de estado

Pautas para el diseño sincrónico

Page 13: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Maquinas de estado: implementación◦ El “state memory” son FF que almacenan el

código del estado actual◦ La LC calcula las salidas y el próximo estado

Pautas para el diseño sincrónico

Page 14: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Cualquier señal que ingrese del mundo exterior es asincrónica respecto al clock de la FPGA

Sincronización entre dominios de clock

Page 15: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Solución: cadena de sincronización

Sincronización entre dominios de clock

Page 16: Las señales pueden cambiar en cualquier momento La sincronización y pasaje de datos se realiza mediante handshakes Hay un clock que rige el instante en.

Implementar usando VHDL:◦ Contador up/down de N bits con clear asincrónico,

load sincrónico programable y clock enable

◦ Maquina de estados para responder a un handshake asincrónico

Ejercicios

Tip:type state_type is (idle, … ); signal state : state_type := idle;