PCI-Express- und FPGA-Entwicklungsplatinen [geschlossen]

Ich bin daran interessiert, einige leistungsstarke FPGA-Entwicklungsplatinen zu verwenden, aber es scheint, dass die meisten der modernen High-End-Optionen von Xilinx (Digilent) und Altera (Terasic) PCIe-basierte Platinen zu sein scheinen. Ich entwickle fast ausschließlich auf einem Laptop, wo ich keinen PCIe-Steckplatz habe.

Gibt es einen Grund dafür, dass es keine Hochleistungsplatinen als eigenständige USB-Geräte gibt? Ist dies der übliche Einsatz der Geräte in der Praxis? Haben Sie Empfehlungen, wie ich ein Spitzengerät (vorzugsweise Xilinx) in meinen Workflow integrieren kann?

Sie könnten nach alten Bitcoin-Mining-FPGA-Rigs suchen

Antworten (3)

Sie haben in der Regel PCIe-Formfaktoren, da es sich um einen modernen Bus handelt, der in vielen Hochgeschwindigkeitsanwendungen verwendet wird. Ich entwickle derzeit eine PCIe-Gen3x8-Anwendung um eine Altera-Anwendung herum.

Aber wenn Sie die PCIe-Fähigkeit nicht benötigen, ist es möglich, diese Boards eigenständig zu verwenden. Sie verfügen in der Regel über externe Netzteile, die verwendet werden können, wenn sie nicht an ein Motherboard angeschlossen sind. Sie können auch ziemlich einfach die PCIe-Halterung von ihnen entfernen und sie können dann horizontal an etwas montiert werden.

Wenn Sie PCIe möchten, aber nur einen Laptop haben, dann ist dies auch möglich. Sie können einen Express Card-zu-PCIe-Adapter erwerben. Beachten Sie jedoch, dass dies nur einspurige Gen1 sind. In meinem aktuellen Projekt habe ich versucht, mein Gen3x8-Design über eine dieser Backplanes mit einem Laptop zu verbinden, und es verhandelt korrekt bis Gen1x1 und funktioniert perfekt (wenn auch erheblich langsamer).

Moderne Laptops verfügen auch über Thunderbolt 3-Ports, die bis zu einer Gen3 x4 PCIe-Verbindung übertragen, die in ihren Datenstrom eingebettet ist. Kommerzielle Thunderbolt 3-zu-PCIe-Gehäuse sind mittlerweile weit verbreitet, was die Entwicklung mit diesen PCIe-Geräten auf Laptops ermöglicht.

Sie können eigenständige Entwicklungsboards für USB 3.0 erhalten - ich glaube, es gibt zum Beispiel ein Cypress-Board. Aber USB, selbst 3.0, ist im Allgemeinen viel langsamer als die Fähigkeiten der High-End-FPGAs – tatsächlich können viele der FPGAs schneller arbeiten als USB3 oder PCIe3.

Der andere deutliche Vorteil von PCIe gegenüber anderen Bussen besteht darin, dass die meisten High-End-FPGAs bereits CML-Transceiver eingebaut haben, was bedeutet, dass sie direkt an PCIe-Signale angeschlossen werden können, ohne dass externe ICs erforderlich sind. Ethernet und USB hingegen erfordern in der Regel externe PHY-Chips, was zu komplexeren (und teureren) Designs führt.

Danke für die Tipps @Tom. Mir war nicht bewusst, dass einige der Boards unabhängig vom PCIe-Bus betrieben werden können und stand-alone verwendet werden können. Ich werde auch die von dir erwähnten Adapter in Betracht ziehen.

Es gab einen kleinen Markt für PCMCIA-basierte FPGA-Zusatzkarten, aber PCMCIA ist tot. Ich kann keine Hinweise finden, ob diese Karten auf Express Card aktualisiert wurden.

Wenn Sie nach FPGA-Boards mit USB 3.0-Unterstützung suchen, gibt es einige Exemplare wie dieses: https://www.opalkelly.com/products/xem7350/

Wer mit FPGAs „High Performance Computing“ betreiben will, braucht immer eine Hochgeschwindigkeitsverbindung. Und das ist PCIe. USB 3.0 ist nicht schnell genug. Das Schreiben von USB-Treibern ist auch ziemlich kompliziert.

Sie können die meisten FPGA-Prototyping-Boards als eigenständiges Board verwenden, z. B. (Xilinx VC707), und es mit 2 USB-Kabeln an einen Laptop anschließen (1 = JTAG/Programmierung/Debugging; 2 = USB-UART-Bridge). Wenn Sie einen schnelleren Datenaustausch benötigen, verwenden Sie Gigabit-Ethernet :)

Kaufen Sie einen Express Card-to-PCIE-Adapter. Der Express-Kartensteckplatz in jedem modernen Laptop hat einen 1x PCIE-Bus. Alles, was Sie brauchen, ist der richtige Adapter, um das Board anzuschließen.

Normalerweise sind sie für die Verwendung einer externen Grafikkarte ausgelegt, aber der Gerätetyp sollte keine Rolle spielen.