banner

Nachricht

Jun 09, 2023

Hackster's FPGAdventures: Logikaufbau mit Libero SoC auf dem Microchip PolarFire SoC Icicle Kit

Bisher haben wir in unseren FPGAdventures mit so ziemlich allem außer dem FPGA selbst gespielt und uns angeschaut, wie der Allzweck-Verarbeitungsteil des PolarFire SoC im Herzen des Icicle Kit von Microchip genutzt werden kann, um alles von einem voll funktionsfähigen Gerät aus auszuführen Linux-Verteilung auf Bare-Metal-Code – sogar beides gleichzeitig, dank der cleveren asymmetrischen Multiprocessing-Funktionen (AMP) der Plattform.

Dieses Mal befassen wir uns mit dem eigentlichen Kern des Bausatzes: Mit Libero SoC, der integrierten Entwicklungsumgebung (IDE) und Toolchain von Microchip für seine FPGA-Produkte, erstellen wir einen grundlegenden Logikschaltkreis, synthetisieren ihn und stellen ihn auf der Platine bereit .

Das erste, was Sie über Libero SoC verstehen sollten, wenn Sie alle erforderlichen Schritte zur Registrierung einer kostenlosen Lizenz und zur Bereitstellung des veralteten Lizenzvalidierungsservers auf Ihrer Workstation durchlaufen haben, ist, dass die Systemanforderungen von Microchip alles andere als eine Empfehlung, sondern eher eine absolute sind Anforderung: Wenn Ihnen das Unternehmen mitteilt, dass Sie 16 GB RAM benötigen, müssen Sie sicherstellen, dass mindestens 16 GB RAM verfügbar sind. Es ist möglich, die Software mit weniger Ressourcen auszuführen, was dazu führen kann, dass Sie denken, dass alles gut läuft – aber Sie werden feststellen, dass Ihre Projekte während der Synthesephase ohne Fehler scheitern. Das Place-and-Route-Tool erschöpft den System-RAM und verstößt gegen den Out-of-Memory-Killer, selbst bei den einfachsten Designs, indem es auf eine Art und Weise beendet wird, die den Prozess fehlschlägt, aber ohne einen entsprechenden Fehler, der Sie auf das Problem hinweist.

Sobald Sie eine entsprechend umfangreiche Workstation zur Hand haben, müssen Sie sich mit den Besonderheiten dieser sehr ausgelasteten Benutzeroberfläche vertraut machen. Die gute Nachricht für einen Hersteller, der aus der Klemme kommt, ist, dass Microchip über eine Schritt-für-Schritt-Anleitung verfügt, die Sie durch den Prozess führt – vom Start Ihres ersten Projekts über die Synthese des Bitstroms bis hin zum Flashen auf das FPGA. Es handelt sich im Wesentlichen um ein On-Rails-Tutorial, das jedoch ausreicht, um Ihnen den Einstieg zu erleichtern und die Grundlagen der etwas unübersichtlichen Libero-SoC-Schnittstelle zu erlernen. Leider ist es nicht direkt auf das PolarFire SoC Icicle Kit anwendbar; Stattdessen wurde es für das frühere PolarFire Splash Kit des Unternehmens geschrieben.

Für den Großteil des Prozesses spielt das keine Rolle. Das Starten eines neuen Projekts ist für alle Entwicklungskits oder Bare-FPGA-Produkte von Microchip gleich, allerdings müssen Sie herausfinden, mit welcher der zahlreichen Varianten des PolarFire SoC Sie arbeiten, um die Umgebung richtig einzurichten. Allerdings stößt man wirklich erst dann auf eine echte Hürde, wenn man den entscheidenden Teil des Prozesses erreicht hat und mit dem Entwerfen beginnt: Die Pin-Nummern und Funktionen des PolarFire SoC stimmen nicht mit denen des früheren PolarFire überein Infolgedessen können die Anweisungen des Tutorials für das PolarFire Splash Kit nicht direkt auf das PolarFire SoC Icicle Kit angewendet werden.

Für dieses Problem gibt es keine wirklich schnelle Lösung. Das Offensichtliche: Die vorgeschlagenen Pin-Nummern gegen diejenigen auszutauschen, die im PolarFire SoC Icicle Kit verfügbar und von praktischem Nutzen sind. Dazu müssen Sie die Schaltpläne des PolarFire SoC aufrufen und einen Blick auf die Pin-Nummerierung werfen, um herauszufinden, welche Ein- und Ausgänge Sie auf Ihr Design anwenden könnten, damit es tatsächlich etwas Nützliches bewirkt; Im Libero SoC gibt es keine praktische Standardzuordnung, mit der Sie beispielsweise „LED1“ aus einer Dropdown-Liste auswählen können. Dies sollte also der erste Schritt eines jeden Projekts sein – und es kann hilfreich sein, einen kleinen Spickzettel mit gängigen Stecknadeln zu erstellen, den Sie bei der Arbeit mit dem Eiszapfen-Kit immer griffbereit haben.

Es gibt einen alternativen Ansatz, der jedoch nicht in den Tutorials des Unternehmens besprochen wird: das PolarFire SoC Icicle Kit Reference Design, das von Microchip auf GitHub unter einer nicht näher bezeichneten Open-Source-Lizenz veröffentlicht wurde. Dadurch wird ein Skript bereitgestellt, das in Libero SoC geladen werden kann, um Gateware mit, wie das Unternehmen erklärt, „der gleichen oder erweiterten Funktionalität“ zu generieren, wie sie bereits ab Werk auf das FPGA geladen wurde – praktisch, wenn die Lernkurve erheblich weiter fortgeschritten ist Die Tutorials werden Ihnen dabei helfen, ob Sie die Standardfunktionalität erweitern oder verbessern möchten, anstatt sie komplett zu ersetzen.

Das Laden des Skripts in Libero SoC weicht von der Schritt-für-Schritt-Anleitung ab, es ist jedoch möglich, die beiden Ansätze zu einem zu kombinieren. „Als Starthilfe ist es sehr nützlich“, erklärt Leonardo DiCarlo von Microchip das Referenzprojekt. „Sie müssen das Projekt nicht einmal generieren, Sie können einfach die gleichen Einschränkungen verwenden, die dort verwendet wurden. In der [Datei] ICICLE.pdc finden Sie die üblichen Dinge, die für Tests verwendet werden, wie Schaltertasten, LEDs usw. Das können Sie.“ Importieren Sie diese Datei direkt. Sie müssen nur sicherstellen, dass der Name des von Ihnen verwendeten Ausgabeports mit dem dort verwendeten übereinstimmt, andernfalls können Sie den Namen einfach ändern.

Wie man es von einem unternehmenstauglichen Tool für FPGA-Entwicklungsarbeiten erwarten kann, ist Libero SoC für Neueinsteiger – Entwickler eingeschlossen – nicht gerade die einladendste Software. Mit den Leitfäden von Microchip kommen Sie weit, aber Sie müssen auf jeden Fall lange damit spielen, bevor Sie sich sicher fühlen – insbesondere, wenn Sie von einer direkter zugänglichen Plattform wie Mikrocontrollern zu FPGAs kommen.

Die Investition lohnt sich – und das SmartDesign von Microchip ist der Schlüssel dazu, dass Sie so schnell wie möglich wieder auf die Beine kommen. Traditionell wird Gateware für FPGAs von Hand unter Verwendung einer Hardwarebeschreibungssprache (HDL) geschrieben – einem textbasierten Ansatz, der dem Schreiben von MicroPython für einen Raspberry Pi RP2040 oder C/C++ für einen Arduino entspricht. SmartDesign ist etwas näher an Scratch, allerdings für FPGAs: Hardware-Designs können als Schaltpläne auf dem Bildschirm skizziert werden und werden vom Libero SoC automatisch in HDL-Code – und von dort aus in Gateware – umgewandelt.

Besser noch: Microchip bietet eine umfangreiche Bibliothek von Komponenten, die in Libero SoC geladen und als Bausteine ​​für Ihr Gateware-Design verwendet werden können – alles von einfachen booleschen Logikgattern bis hin zu Speichern und Eingabe-/Ausgabegeräten. Die Bibliothek kann frei durchsucht werden, obwohl Teilen oft Namen wie „DFN1C0“ gegeben werden, was für den Neuling vielleicht etwas schräg ist, und ein ausgewähltes Objekt einfach auf die SmartDesign-Leinwand gezogen wird – wo es sich in ein Schaltplansymbol verwandelt.

Um die Funktionalität zu testen, sind wir der Anleitung im Microchip-Tutorial gefolgt und haben die möglicherweise einfachste Komponente ausgewählt: ein boolesches UND-Gatter, das seinen singulären Ausgang nur dann hoch sendet, wenn beide Eingänge ebenfalls hoch sind. Das Hinzufügen des Designs erfolgt ganz einfach per Drag-and-Drop, die Verkabelung der Ein- und Ausgänge dauert allerdings etwas länger.

Für unser einfaches UND-Gatter-Design benötigen wir zwei Eingänge – Drucktastenschalter, um die Tests in der Hardware so einfach wie möglich zu gestalten – und einen einzelnen Ausgang. Ein Blick auf den Schaltplan oder die Beispielprojektdateien zeigt, dass Pin V14 mit LED1 verbunden ist und uns unsere Ausgabe liefert; V19 und U18 sind jeweils mit einem Druckknopfschalter verbunden und stellen die beiden Eingänge bereit, die wir für die Interaktion mit unserem grundlegenden FPGA-Design benötigen. Wenn wir externe Tasten anschließen wollten, werden andere Pins mit dem GPIO-Header (General Purpose Input/Output) im Raspberry Pi-Stil oder dem mikroBUS-Sockel verbunden – aber für unsere Zwecke funktionieren die integrierten Drucktastenschalter einwandfrei.

Sobald die virtuellen Beine des Teils verkabelt sind, was einige weniger offensichtliche Schritte erfordert, einschließlich der „Heraufstufung“ seiner Verbindungen auf die „oberste Ebene“, ist die Erstellung des HDL ein Ein-Klick-Prozess. Zu diesem Zeitpunkt stellten die Speicheranforderungen für den Libero SoC noch kein Problem dar – aber im nächsten Schritt des Prozesses, der Synthese, beginnt die Software, RAM zu verbrauchen. Durch Doppelklicken auf die Option „Synthesize“ in Design Flow beginnt der Prozess der Umwandlung Ihrer Kreation in Gateware, die auf das FPGA geladen werden kann. Dabei wird ein externes Tool namens Synplify Pro aufgerufen – eine Lizenz dafür ist in der kostenlosen Libero SoC-Lizenz enthalten, die für alle PolarFire SoC Icicle Kit verfügbar ist Benutzer. Dieser kümmert sich um die „Zusammenstellung“ des HDL, einschließlich Place-and-Route – das FPGA-Äquivalent zum Platzieren von Komponenten-Footprints auf einer Leiterplatte und deren Verknüpfung mit Leiterbahnen.

Für einen einfachen Entwurf wie das UND-Gatter ist es ein ziemlich schneller Prozess – aber mit zunehmender Komplexität des Entwurfs nehmen auch die Zeit und der Speicher zu, die für die Synthese erforderlich sind. Wenn Ihr Entwurf zu komplex ist, gehen Ihnen die Ressourcen auf dem FPGA aus – genauso wie Ihnen der Arbeits- oder Programmspeicher auf einem Mikrocontroller ausgehen kann – und Sie müssen ihn verkleinern oder einen Chip mit höherer Spezifikation kaufen in der PolarFire SoC-Familie.

Sobald die Synthese abgeschlossen ist, ist es möglich, die Gateware auf dem FPGA bereitzustellen – dies wird jedoch nicht empfohlen. Stattdessen sollten FPGA-Designs zunächst einer Simulation unterzogen werden – hier macht die Dokumentation von Microchip einen kurzen Schritt zurück. Das PolarFire Splash Kit-Tutorial des Unternehmens, dem wir bisher gefolgt sind, abgesehen von den für die PolarFire SoC-Kompatibilität erforderlichen Änderungen, überspringt diesen Schritt vollständig – und das kann man dem Unternehmen kaum vorwerfen, da es sich um ein äußerst komplexes Thema handelt. Alles, was Sie brauchen, ist im Libero SoC enthalten, aber auch wenn es ziemlich einfach ist, es zu finden, ist es eine Menge Lernaufwand, es tatsächlich zu nutzen.

Das Überspringen einer Simulation bietet einen schnellen Weg zum Erfolg, wenn man Tasten am Icicle Kit drücken und dadurch eine LED ein- und ausschalten kann – was beweist, dass man tatsächlich ein funktionsfähiges UND-Gatter erstellt hat, das mit dem verbunden ist Stifte Ihrer Wahl und aus den Stiften die Druckschalter und LEDs des Icicle-Kits – aber das hilft Ihnen nicht, wenn es an der Zeit ist, komplexere Projekte zu entwerfen.

Und hier könnten sich Microchips Hoffnungen auf eine breite Akzeptanz des PolarFire SoC Icicle Kit in der Herstellergemeinschaft und nicht nur in der Industrie und Wissenschaft zerstreuen. Die einsteigerfreundliche Dokumentation ist für ein älteres Entwicklungsboard geschrieben, nicht für das glänzende neue PolarFire SoC Icicle Kit, und verlässt den Leser vor dem wohl komplexesten und wichtigsten Teil des Designablaufs; Ohne neues Material, das besser für die neue Zielgruppe des Unternehmens geeignet ist, werden viele Hersteller wahrscheinlich die Plattform aufgeben und sich für etwas Zugänglicheres entscheiden, bevor sie jemals etwas Komplexeres als einen Addierer bauen lassen.

Wenn das so ist, ist es schade: Die Leistung und Flexibilität des PolarFire SoC ist beeindruckend, ebenso wie seine Fähigkeit, FPGA und Allzweckverarbeitung der Anwendungsklasse in einem einzigen Gerät zu kombinieren. Es gibt so viel Potenzial für interessante Kreationen, und wenn Microchip einen Weg findet, die Barrieren zu überwinden, sind den Möglichkeiten der Herstellergemeinschaft mit dem Icicle Kit und den PolarFire SoC-Chips, die es antreiben, kaum Grenzen gesetzt.

Seien Sie das nächste Mal dabei, wenn wir uns einige der Dinge ansehen, die die Community bereits mit dem PolarFire SoC gemacht hat, und mit Microchip über seine Pläne für die Zukunft der Plattform sprechen.

Weitere Informationen zum PolarFire SoC Icicle Kit finden Sie auf der Microchip-Website und auch auf der Produktseite von Avnet.

Lesen Sie die ganze Serie:

AKTIE