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

Post on 23-Jan-2015

9 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

Flip-flops y Metaestabilidad

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

Flip-flops y Metaestabilidad

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

Flip-flops y Metaestabilidad

Esquema general

Pautas para el diseño sincrónico

Estructura de la Cyclone (LE)

Pautas para el diseño sincrónico

Ejemplo:

Pautas para el diseño sincrónico

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

Pautas para el diseño sincrónico

Ej: gated clock

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

Implementación más eficiente del FF con enable

Pautas para el diseño sincrónico

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

Pautas para el diseño sincrónico

Maquinas de estado

Pautas para el diseño sincrónico

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

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

Sincronización entre dominios de clock

Solución: cadena de sincronización

Sincronización entre dominios de clock

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;

top related