Artikel-ID: 000081218 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 11.09.2012

Welche First-in-First-Out(FIFO)-Lösungen bietet Altera für FLEX 10K® (non-E) Geräte an?

Umgebung

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung Ein FIFO-Puffer (First-in-First-out) wird verwendet, um Daten zu puffern, die in einem Design von einem Subsystem zu einem anderen übertragen werden. Beispielsweise halten FIFO-Puffer Daten, die von mehreren Quellen zu einem gemeinsam genutzten Bus fahren. Wenn der Bus beschäftigt ist, werden Daten im FIFO-Puffer gespeichert; wenn der Bus frei ist, sendet der FIFO-Puffer die Daten an den Bus. Altera bietet mehrere FIFO-Pufferdesign-Lösungen für FLEX® Geräte.

Für die meisten FIFO-Puffer bieten FLEX 10K Embedded Array Blocks (EABs) hohe Leistung und große RAM-Blocks ohne Logik-/Speicher-Kompromiss. Da Altera Geräte kosteneffizient sind, kann ein FIFO-Puffer, der nur Logikelemente (LEs) umfasst, auch eine Konkurrenzlösung bieten.

Bei der Verwendung von FIFO-Puffern sollten Sie verschiedene Systemvoraussetzungen berücksichtigen. Sie müssen beispielsweise überlegen, ob ein FIFO-Puffer gleichzeitig gelesen und geschrieben werden muss. Einige FIFO-Puffer erfordern separate Lese- und Schreib-Takte, während andere den gleichen Takt für Lesen und Schreiben verwenden. Altera bietet FIFO-Lösungen, die alle diese Anforderungen erfüllen.

Dieser Artikel beschreibt die folgenden FIFO-Designs:

  • Verschachtelter FIFO-Speicherpuffer
  • FIFO-Puffer mit gemeinsam genutzten Zyklus
  • Synchroner LE-basierter FIFO-Puffer
  • Nichtflüchtiger LE-basierter FIFO-Puffer

Verschachtelter FIFO-Speicherpuffer

Der verschachtelte FIFO-Speicherpuffer ist für relativ tiefe Puffer mit einem Lese-/Schreib-Takt geeignet. Für diesen FIFO-Puffertyp werden für jede Breite von 8 Bit zwei EABs verwendet. Sie können einen FIFO-Puffer mit bis zu 512 Wörtern tief implementieren, ohne zusätzliche EABs zu verwenden.

Jedes EAB kann in einem bestimmten Taktzyklus gelesen oder geschrieben werden. Durch den Einsatz von zwei EABs können Sie gleichzeitige Lese- und Schreibvorgänge implementieren. Aus dem nicht geschriebenen EAB werden Daten vorab abgerufen, was Konflikte verhindert, die andernfalls auftreten würden, wenn ein gleichzeitiges Lesen und Schreiben in das gleiche EAB erforderlich wäre. Dieser FIFO-Puffer kann bei FLEX-10KA-Geräten eine Leistung von 80 MHz erreichen.

FiFO-Puffer für Zyklus freigegeben

Der zyklusbereite FIFO-Puffer ist für Designs geeignet, die viele EABs verwenden, da er weniger EABs verwendet als der verschachtelte FIFO-Speicherpuffer. Dieser FIFO-Puffer verfügt über einen Lese-/Schreib-Takt, und seine EABs sind Zeitdomänen-multiplexiert mit einem doppelten Takt. D. h. ein EAB wird in nachfolgenden doppelten Taktzyklen gelesen und geschrieben. Mit einem Takt von 66 MHz können Sie einen vom Zyklus gemeinsam genutzten FIFO-Puffer mit 33-MHz-Durchsatz implementieren. Dieser FIFO-Puffer kann bei FLEX-10KA-Geräten eine Leistung von 40 MHz erreichen.

Nicht lackierter FIFO-Puffer

In einigen FIFO-Anwendungen ist das gleichzeitige Lesen und Schreiben nicht erforderlich. Ein AtM-Design (Standby Transfer Mode) kann beispielsweise FIFO-Puffer haben, bei denen eine gesamte 53-Byte-Zelle in einem Burst gelesen oder geschrieben wird. Das ATM-Design kann mehrere FIFO-Puffer haben, wobei ein Port eine Zelle in einen FIFO-Puffer schreibt, während ein anderer Port eine Zelle aus einem anderen FIFO-Puffer liest. In diesem Fall ist das gleichzeitige Lesen und Schreiben nicht erforderlich. Eine Anwendung, die keine gleichzeitigen Lese- und Schreibvorgänge erfordert, kann einen nichtflätigen FIFO-Puffer verwenden, der ein EAB zum Speichern der Daten verwendet. Da das verschwenkte FIFO keine gleichzeitigen Lese- und Schreibvorgänge erfordert, sind keine speziellen Techniken erforderlich, um das EAB zu verwenden. Sie können einen Parameter verwenden, um Lesen oder Schreiben zu priorisieren. Der übertaktete FIFO-Puffer verwendet einen Lese-/Schreib-Takt, der in FLEX 10KA-Geräten über 80 MHz läuft.

Synchroner LE-basierter FIFO-Puffer

Manchmal sind mehr FIFO-Puffer erforderlich, als in die EABs eines Zielgeräts passen können. Alternativ kann ein FIFO-Puffer in einem Design erforderlich sein, das für ein Gerät ohne EABs vorgesehen ist (z. B. FLEX 6000 Geräte). In diesem Fall bietet ein synchroner LE-basierter FIFO-Puffer, der Shift-Register verwendet, um Daten im FIFO-Puffer zu speichern, eine kostengünstige Lösung. Dieser FIFO-Puffer eignet sich ideal für mehrere, breite FIFO-Puffer mit einem Lese-/Schreib-Takt. Der synchrone LE-basierte FIFO-Puffer wird am besten in Hochgeschwindigkeitsanwendungen verwendet und kann eine Leistung von über 100 MHz erreichen.

Nichtflüchtiger LE-basierter FIFO-Puffer

Für Anwendungen, die eindeutige Lese- und Schreib-Takte erfordern, bietet der le-basierte FIFO-Puffer eine ideale Lösung. Ein FIFO-Puffer kann beispielsweise Daten puffern, die von einem 33-MHz PCI-Bus zu einem 50-MHz-Back-End kommen. Diese FIFO-Puffer werden als "gegensätzlich", "zwei Takte" oder "bisynchron" bezeichnet. Der le-basierte FIFO-Puffer nutzt eine Registerbank, um Daten zu speichern. Der Schreibzähler wird decodiert, um festzustellen, welche Register geschrieben werden, und ein Multiplexer wird verwendet, um zu bestimmen, welche Register gelesen werden.

Eine aus Registern und Multiplexern erstellte Speicherstruktur kann gleichzeitig gelesen und geschrieben werden, da das Lese-Multiplexer unabhängig von den Schreibdecodern ist. Diese Struktur kann mit verschiedenen Takten geschrieben und gelesen werden. Die FIFO-Puffersteuerungsschaltkreise verhindern metastable Störungen im System.

Der le-basierte FIFO-Puffer ist ideal für Anwendungen mit unabhängigen Lese- und Schreib-Takten geeignet und kann mit anderen FIFO-Puffern kombiniert werden, um größere FIFO-Puffer mit unabhängigen Lese- und Schreib-Takten zu erstellen. Sie kann 60-MHz-Leistung in FLEX 10KA-Geräten erreichen.

MAX PLUS II Support

Sie können die Designdateien für die in diesem Artikel erwähnten FIFO-Puffer von Altera Applications beziehen. Die FIFO-Puffer sind parameterisierbar, wodurch es einfach ist, die Parameter für Ihre Systemanforderungen festzulegen und die Funktion für Ihr Design anzupassen. Darüber hinaus sind FIFO-Puffer mit dem MAX PLUS von Altera ausgestattet® II Software (wie der Zyklus gemeinsam genutzte FIFO-Puffer, csfifo). Altera plant, zukünftigen Versionen der MAX PLUS II Software zusätzliche Funktionen bereitzustellen.

Schlussfolgerung

FLEX-Geräte bieten hervorragende Lösungen für Designs mit FIFO-Anforderungen. Diese Lösungen erfüllen eine Vielzahl von FIFO-Anforderungen und bieten hohe Leistung und große Größe bei geringen Kosten. Wenn Sie ein Design mit FIFO-Anforderungen haben, wenden Sie sich an Ihren Techniker für lokale Anwendungen, um weitere Informationen zu erhalten.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 2 Produkte

Flex® 10K
Intel® programmierbare Geräte

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.