las señales pueden cambiar en cualquier momento la sincronización y pasaje de datos se realiza...
TRANSCRIPT
![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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/1.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/2.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/3.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/4.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/5.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/6.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/7.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/8.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/9.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/10.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/11.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/12.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/13.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/14.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/15.jpg)
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](https://reader033.vdocumento.com/reader033/viewer/2022061222/54c1d8ec4979595c308b491b/html5/thumbnails/16.jpg)
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;