Die Anforderungen zum Implementieren eines PCI-Express-Endpunkts schließen den seriellen Transceiver plus zugehöriger Logik ein, um die physikalische Schicht zu vervollständigen, dazu weitere zusätzliche Logik zur Implementierung der Datenverbindungs- und Transaktions-Schichten und noch Speicher zum Zwischenspeichern der Transaktionen. Bis vor kurzem waren integrierte serielle Transceiver nur in den teuersten Hochleistungs- FPGAs verfügbar. Die neuesten preisgünstigen FPGA-Familien bieten nun Funktionen, Kapazitäten und eine Leistungsfähigkeit, die einst die exklusive Domäne der Hochleistungs-FPGAs waren, wie die Unterstützung für serielle Protokolle über eingebaute Multi- Gbit-Transceiver.
Diese neuen Bausteine ermöglichen es den Entwick- lern, komplexe Peripheriefunktionen zu implementieren, einschließlich Hardware-Beschleuniger und Entlastungs- Hardware für die CPU mit Breitbandverbindung via PCI-Express-Verbindungen zum Host-Prozessor. Soft-IP-Kerne bieten eine bequeme Lösung zum Aufbau von PCI-Express- Endpunkten in FPGAs mit integrierten Transceivern. Eine noch bessere Lösung ist es, die Funktion des PCI-Express- Endpunkts direkt in ein FPGA zu integrieren. Ein in Silizium integrierter Endpunkt reduziert die Kosten und den Leistungsbedarf noch weiter, weil er Transistoren benutzt, anstatt die äquivalente Funktion in die programmierbare Logik zu implementieren.
Dies lässt mehr von der Logic- Fabric übrig, die der Entwickler nutzen kann, komplexe Funktionen dann kostengünstiger zu implementieren. Obwohl die in Silizium integrierten Endpunkt-Funktionsblöcke als „Hard- IP“-Blöcke betrachtet werden, bieten sie dennoch eine wesentliche Flexibilität durch vom Benutzer konfigurierbare Parameter wie maximale Menge der Daten oder Frequenz des Referenztakts. Entwicklungswerkzeuge generieren die Dateien, die nötig sind, das Endpunkt-Design zu vollenden, durch das Anpassen der konfigurierbaren Funktionen zu den gewünschten Einstellungen, das Einsetzen der erforderlichen Taktquellen und Speicher- Puffer und das Einrichten der Schnittstelle für den applikationsspezifischen Teil der Endpunkt-Funktion.