Para la mayoría de los búferes FIFO, los bloques de arreglos integrados (EAB) FLEX 10K proporcionan un alto desempeño y grandes bloques de RAM sin un compromiso entre lógica y memoria. Debido a que Altera dispositivos son rentables, un búfer FIFO compuesto solo de elementos lógicos (LE) también puede proporcionar una solución competitiva.
Al utilizar búferes FIFO, debe tener en cuenta varios requisitos del sistema. Por ejemplo, debe considerar si un búfer FIFO debe leerse y escribirse simultáneamente. Algunos búferes FIFO requieren relojes de lectura y escritura separados, mientras que otros usan el mismo reloj para leer y escribir. Altera ofrece soluciones FIFO para satisfacer todos estos requisitos.
En este artículo se describen los siguientes diseños FIFO:
- Búfer FIFO de memoria entrelazada
- Búfer FIFO de ciclo compartido
- Búfer FIFO basado en LE síncrono
- Búfer FIFO basado en LE asíncrono
Búfer FIFO de memoria entrelazada
El búfer FIFO de memoria entrelazada es adecuado para búferes relativamente profundos que tienen un reloj de lectura/escritura. Para este tipo de búfer FIFO, se utilizan dos EAB por cada 8 bits de ancho. Puede implementar un búfer FIFO de hasta 512 palabras de profundidad sin utilizar EAB adicionales.
Cada EAB se puede leer o escribir en un ciclo de reloj determinado. Mediante el uso de dos EAB, puede implementar lecturas y escrituras simultáneas. Los datos se recuperan previamente del BEF no escrito, lo que evita conflictos que de otro modo se producirían si se necesitara una lectura y escritura simultáneas en el mismo BEF. Este búfer FIFO puede alcanzar un desempeño de 80 MHz en dispositivos FLEX 10KA.
Búfer FIFO de ciclo compartido
El búfer FIFO de ciclo compartido es adecuado para diseños que usan muchos EAB, ya que utiliza menos EAB que el búfer FIFO de memoria entrelazada. Este búfer FIFO tiene un reloj de lectura/escritura y sus EAB son multiplexados en el dominio del tiempo con un reloj doble. Es decir, un EAB se lee y escribe en ciclos de reloj duplicados posteriores. Con un reloj de 66 MHz, puede implementar un búfer FIFO de ciclo compartido con un rendimiento de 33 MHz. Este búfer FIFO puede alcanzar un desempeño de 40 MHz en dispositivos FLEX 10KA.
Búfer FIFO arbitrado
En algunas aplicaciones FIFO, no se requiere lectura y escritura simultáneas. Por ejemplo, un diseño de modo de transferencia asincrónica (ATM) puede tener búferes FIFO en los que se lee o escribe una celda completa de 53 bytes en una ráfaga. El diseño ATM puede tener múltiples búferes FIFO con un puerto escribiendo una celda en un búfer FIFO mientras que otro puerto lee una celda de un búfer FIFO diferente. En este caso, no se requiere lectura y escritura simultáneas. Una aplicación que no requiere lecturas y escrituras simultáneas puede utilizar un búfer FIFO arbitrado, que utiliza un EAB para almacenar los datos. Debido a que el FIFO arbitrado no requiere lecturas y escrituras simultáneas, no se requieren técnicas especiales para usar el EAB. Puede utilizar un parámetro para priorizar la lectura o la escritura. El búfer FIFO arbitrado utiliza un reloj de lectura/escritura, que funciona a más de 80 MHz en dispositivos FLEX 10KA.
Búfer FIFO basado en LE síncrono
A veces, se requieren más búferes FIFO de los que caben en los EAB de un dispositivo de destino. Alternativamente, es posible que se requiera un búfer FIFO en un diseño destinado a un dispositivo sin EAB (por ejemplo, dispositivos FLEX 6000). En este caso, un búfer FIFO sincrónico basado en LE, que utiliza registros de desplazamiento para almacenar datos en el búfer FIFO, proporciona una solución rentable. Este búfer FIFO es ideal para múltiples búferes FIFO anchos y superficiales con un reloj de lectura/escritura. El búfer FIFO síncrono basado en LE se utiliza mejor en aplicaciones de alta velocidad y puede lograr un desempeño de más de 100 MHz.
Búfer FIFO basado en LE asíncrono
Para aplicaciones que requieren distintos relojes de lectura y escritura, el búfer FIFO asíncrono basado en LE ofrece una solución ideal. Por ejemplo, un búfer FIFO puede almacenar en búfer datos provenientes de un bus PCI de 33 MHz a un back-end de 50 MHz. Estos búferes FIFO se denominan "asíncronos", "dos relojes" o "bisincrónicos". El búfer FIFO asíncrono basado en LE utiliza un banco de registros para almacenar datos. El contador de escritura se decodifica para determinar qué registros se escriben y se utiliza un multiplexor para determinar qué registros se leen.
Una estructura de memoria creada a partir de registros y multiplexores se puede leer y escribir simultáneamente, ya que el multiplexor de lectura es independiente de los decodificadores de escritura. Esta estructura se puede escribir y leer con diferentes relojes. El circuito de control de búfer FIFO evita cualquier perturbación metaestable en el sistema.
El búfer FIFO basado en LE asíncrono es ideal para aplicaciones con relojes de lectura y escritura independientes, y se puede combinar con otros búferes FIFO para crear búferes FIFO más grandes con relojes de lectura y escritura independientes. Puede alcanzar un rendimiento de 60 MHz en dispositivos FLEX 10KA.
Asistencia MAX PLUS II
Puede obtener los archivos de diseño para los búferes FIFO mencionados en este artículo en Altera Aplicaciones. Los búferes FIFO son parametrizables, lo que facilita establecer los parámetros para los requisitos del sistema y personalizar la función para su diseño. Además, los búferes FIFO se proporcionan con el software MAX PLUS II® de Altera (como el búfer FIFO de ciclo compartido, csfifo). Altera planea proporcionar funciones adicionales con futuras versiones del software MAX PLUS II.
Conclusión
Los dispositivos FLEX proporcionan excelentes soluciones para diseños con requisitos FIFO. Estas soluciones cumplen con una amplia variedad de requisitos de FIFO y ofrecen un alto desempeño y gran tamaño a bajo costo. Si tiene un diseño con requisitos FIFO, póngase en contacto con su ingeniero local de aplicaciones de campo para obtener más información.