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

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

Embed Size (px)

Citation preview

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;