Forma común de describir una "espera a doble cara"

1

¿Existe un nombre de uso común para describir un protocolo de transferencia de datos de "espera a doble cara"?

Este es un esquema unidireccional en el que los datos se transfieren en el borde del reloj si tanto el remitente como el receptor (también llamado productor y consumidor ) indican que están listos para la transferencia al afirmar la correspondiente señal ready . Si solo hay un lado listo para la transmisión, normalmente debe ingresar un estado de espera .

"Una espera a doble cara" es el título de una sección que describe este esquema en el libro "Logic Design and Verification Using SystemVerilog" de Donald Thomas, pero no encuentro ese nombre usado en ninguna otra parte.

Creo que este es un protocolo de transacción muy utilizado, pero no sé dónde buscar texto descriptivo adicional sobre el tema, o cómo referirme a él cuando intento comunicarme sobre él.

    
pregunta nobar

1 respuesta

4

Un ejemplo de un bus de este tipo es el bus AXI , que se originó con el procesador ARM, pero cada vez se usa más. como una interfaz estándar para FPGA IP en general.

Las dos señales de protocolo de enlace se llaman TREADY y TVALID, y las transferencias solo se producen cuando se confirman ambas señales.

No sé si hay un nombre "estándar" para este protocolo. En ocasiones, me he referido a él como protocolo "listo para habilitar" en mis propios diseños.

El concepto más genérico es "control de flujo", y hay muchos protocolos que se utilizan para implementar el control de flujo en diversas circunstancias. El protocolo de impresora IEEE1284 que alguien mencionó es un ejemplo de un protocolo de enlace de 2 cables de 2 cables que se usa a menudo para la comunicación asíncrona a velocidades más bajas. Ocasionalmente he usado un protocolo de este tipo para transferir datos de bajo ancho de banda entre dominios de reloj dentro de un FPGA.

Para las transferencias de mayor ancho de banda entre dominios de reloj, a menudo se usa un FIFO asíncrono, y sus señales de estado lleno / vacío se convierten en las señales de control de flujo a la lógica en ambos lados, y esto se ajusta muy bien a TVALID / TREADY Protocolo del bus AXI.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas