Projekt "Open Logic Library" sammelt Geld

OP (Firma: Starfleet) #7871956
Lesenswert?

Seit geraumer Zeit gibt es das OpenLogic-Projekt eines FPGA-Entwicklers aus der Schweiz, das das Ziel hat, eine FPGA-Vendor-unabhängige-Plattform aka Standardbibliothek zu schaffen die man mindestens zur Überprüfung/Verifikation eigener Designs verwenden kann.

https://github.com/open-logic/open-logic

Wobei Standardbisbliothek eher im Sinne der stdlib für C als im Sinne von stdlogic aus dem VHDL-Bereich verstehbar ist. Also eine Sammlung von Grundfunktionen/makros für die Verwendung in FPGA Designs. In diesem Sinne zählt auch das AXI-Interface (Schnittstelle zwischen (ARM)-Core und peripheral) zu den Grundfunktionen.

Die Projektbeschreibung im Original:

1
The aim of Open-Logic is to free up your time for real innovation instead of writing boilerplate code - like CDCs, FIFOs, AXI Infrastructure, RAM instantiations. Those standard elements are provided by Open-Logic out-of-the-box.
2

3
 Key Features:
4
🔹 Comprehensive library of reusable VHDL components
5
🔹 Configurability through VHDL generics
6
🔹 High-quality, well-documented code
7
🔹 Thorough verification: 100% code- and branch coverage
8
🔹 Free and open-source
9

10
Open-Logic is based on the psi_common library provided by Paul Scherrer Institute but aims to enhance it in many ways - like providing transparent indicators for the quality of every piece of production code in it or adding a publicly available CI/CD flow based on VUnit and GHDL.

Bisher erstellte Funktionen/Module: https://github.com/open-logic/open-logic/blob/main/doc/EntityList.md

Dafür werden jetzt Unterstützer gesucht, die dem Projekt auch einen kleinen Obulus spenden:

https://www.gofundme.com/f/dedicated-github-runner-for-open-logic-fpga-standard-library

IMHO auch eine Gelegenheit über die Möglichkeiten einer solchen FPGA-Entwicklungsmethodik zu diskutieren.

#7871992
Lesenswert?

https://www.gofundme.com/f/dedicated-github-runner-for-open-logic-fpga-standard-library

IMHO auch eine Gelegenheit über die Möglichkeiten einer solchen FPGA-Entwicklungsmethodik zu diskutieren.

OLO basiert auf psi_common von PSI. https://github.com/paulscherrerinstitute/psi_common

Author hat PSI verlassen und will jetzt mit den "verbesserten" code von PSI geld verdienen. Naja vielleicht ist der OLO auch soviel besser als psi code.

#7872061
Lesenswert?

Ich enhalte mich mal weiterer negativer Kommentare zum leider in der Schweiz recht verbreiteten Coding-Style. Zwei Punkte vielleicht:

  1. der Wiederverwertbarkeitswert solcher Library-Ansaetze (es ist nicht der erste) ist relativ gering, wenn z.B. beim Kunden X das Dogma 'std_ulogic im Interface' und 'keine exzessive Nutzung von Variablen' gilt. Vielleicht sollte man mal langsam auf eine modernere HDL-Methodik setzen.
  2. Die Projektfamilie haette gut daran getan, wenigstens fuer die VHDL-Puristen eine naehere Anbindung an OSVVM zu schaffen. Ansonsten sehe ich nicht viel state-of-the art, ueber VUnit laesst sich jetzt streiten.

Der Umfang scheint nach wie vor immer noch mager im Vergleich zu libhwt und Konsorten. Somit erschliesst sich mir nicht so recht, warum man 'yet another' sponsoren sollte, wenn es das PSI nicht tut.

OP (Firma: Starfleet) #7872372
Lesenswert?

Ich meine in dem Kontext den VHDL-Coding-Style, der sich an einigen Schweizer HS fossiliert hat.

Wie ich kürzlich gelernt habe, war es schon mal ein Schweizer, der bezüglich des Codierstils ein tiefe Kontroverse anzettelte.

Die Formulierung "GOTO statement considered harmful" stammt wohl in diesem polarisiwrenden Wortlaut nicht von Holländer Dijskstra, sondern aus der Feder des Schweizer Niklaus Wirth, der den von Edsger original eingereichten Untertitel "A Case against the GOTO-Statement" für die Konferenz verbal verschärfte. (Anhang, handschriftliche Notiz rechts)

In der Vergangenheit hat sich schon oft gezeigt, das Projekte, die sich schon am Editierstil und "butterweichen" Style-Guidelines entzweien, zum Scheitern verdammt sind. Hier soll es doch eher um formale Korrektheit und nicht individuelle Schönheit gehen. Architekturunabhängi resp. einfach portabel wäre auch wünschenswert.

Angehängte Dateien:
Persönliche Seite #7878187
Lesenswert?

Bradward B. schrieb:

In diesem Sinne zählt auch das AXI-Interface (Schnittstelle zwischen (ARM)-Core und peripheral) zu den Grundfunktionen.

Da gäbe es viel zu verifizieren. Das AXI - besonders da vom X ist so lückenhaft, wie der Käse aus dem Land des o.g. Entwicklers.

Ich schmeiße AXI soweit es geht aus den Projekten raus und empfehle das auch meinen Kunden.

Was die LIB angeht:

Bradward B. schrieb:

innovation instead of writing boilerplate code - like CDCs, FIFOs, AXI Infrastructure, RAM instantiations.

All diese Sachen sind bei vielen Entwicklern bereits als fertiger nativer Code vorhanden, samt Testbenches. Das sind auch keine großen Zeitfresse, die zu instanziieren. Es geht regelmäßig um den Beschreibungsaufwand der Tests, angefangen vom Text in den Dokumenten, den formalen und technischen requirements und schließlich dem Code. Da kann man je nach Ebene mit VHDL sehr schnell lolevel Zugriffe applizieren und das Modul absichern.

So richtig anspruchsvoll ist das eh nur bei komplizierten Interfaces wie SERDES und Transceiver-Designs, Video-Cores etc. Oftmals kommt eine Testbench da schon von einem Core. Hat man das, nimmt man das aus der Chain und modelliert des Rest funktional.

Dafür wiederum eignet sich in der Tat für manche Zwecke VUNIT, wobei der Beschreibungsaufwand auf unterer Ebene eher steigt, als sich verringert und nur da wirklich wirkt, wo C-ähnlich gearbeitet wird und oben auch ein Prozessor sitzt, der da ähnlich funktioniell zugreift.

Dann bliebe noch OSVVM, das schon länger exsitiert, aber uach nur zögerlich angenommen und eingesetzt wird. Ich habe das vor 3 Jahren mal eingesetz und evaluiert und dabei den progress angeschaut: Viel hat sich da seither nicht getan.

#7878363
Lesenswert?

Beim Dave 'down under' gibt es zu den Frameworks auch etwas Senf: https://www.eevblog.com/forum/fpga/vunit-uvvm-osvvm-what-are-similarities-and-differences/msg5491540/#msg5491540

Mein bitterer Fazit: Das kommt alles Jahre zu spät. Im Rahmen einer Infrastrukturplanung fuer eine Startup-Entwicklung, die sich auf VHDL festlegen moechte, kann man sich schon mal Gedanken dazu machen. Als Verifikationsframework auf VHDL-Ebene ist OSVVM definitiv gut durchdacht und interagiert auch relativ geschmeidig mit OpenSource-Tools. Aber fuer Einzelkaempfer schon ein gehoeriger Overhead. Und dann kommt ein Kunde mit einem Verilog-Modul und moechte es co-verifiziert haben.

Schlussendlich naehert man sich dem VHDL-Limes des Machbaren halt in immer kleineren Schritten, und das eigentlich "eingebaute" Problem der VHDL-Verifikation sorgt fuer immer neue Baustellen, Tools und yet another library. Deswegen: Wozu? Die Tendenz geht in Richtung Verschmelzung HW/SW und automatisierte Selbstverifikation, wo die V*HDL grundsaetzlich versagen.

#7999354
Lesenswert?

Ich bin der Maintainer und Haupt-Author von Open Logic. Da ich kürzlich über diesen Thread gestolpert bin erlaube ich mir ein kurzes Statement zu ein paar Aussagen abzugeben.

  1. Das referenzierte Crowdfunding ist inzwischen abgeschlossen und die damit finanzierte Build Runner Infrastruktur steht. Trotzdem bin ich weiter froh um Spenden um das Projekt weiterführen zu können, am einfachsten kann man das Projekt über "GitHub Sponsors" (siehe Readme im Repo) unterstützen.

  2. Antti L. schrieb:

https://www.gofundme.com/f/dedicated-github-runner-for-open-logic-fpga-standard-library

IMHO auch eine Gelegenheit über die Möglichkeiten einer solchen FPGA-Entwicklungsmethodik zu diskutieren.

OLO basiert auf psi_common von PSI. https://github.com/paulscherrerinstitute/psi_common

Author hat PSI verlassen und will jetzt mit den "verbesserten" code von PSI geld verdienen. Naja vielleicht ist der OLO auch soviel besser als psi code.

Die Unterstellung, dass ich mich aufgrund bestehenden Codes bereichern möchte weise ich ganz klar zurück.

Ich habe mehrere hundert Stunden Aufwand in das Open Logic Projekt hineingesteckt und wenn ich alle Spenden und Arbeitsstunden zusammenzähle maximal einen einstelligen Stundenlohn in Euro. Wenn die Motivation finanzieller Natur wäre, hätte ich die Zeit besser in meinen Hauptberuf investiert. Aktive Nutzer um eine Spende zu bitten ist aus meiner Sicht legitim und das werde ich auch weiter tun.

Das Projekt zielt darauf ab der FPGA Community die vertrauenswürdige Standard Bibliothek zur verfügung zu stellen, die ich immer selbst vermisst habe. Jeder ist frei Open Logic einzusetzen oder nicht - und von Entwicklern die es nicht einsetzen erwarte ich auch keine Spenden.

Ich habe auch nach meinem Weggang beim PSI contributions zu den PSI libraries gemacht. Den Entscheid Open Logic zu gründen habe ich gefällt, als ich entschieden habe die Library signifikant zu erweitern und zu überarbeiten. Dafür wollte ich freie Hand haben und mich nicht für jeden Schritt mit dem PSI absprechen. Und ja, Open Logic hat zu signifikanten veränderungen geführt, sowohl am Production Code selbst als auch an Test-Benches und der gesamten Infrastuktur.

  1. Coding Style

Ich bin mir bewusst, dass man es in Sachen Coding Style nie allen recht machen kann. Ich habe einen Style gesetzt und prüfe diesen auch mit dem Linter um Open Logic wartbar zu halten. Das heisst aber nicht, dass ich glaube dass das "der einzig richtige Stil" ist - so etwas gibt es meines erachtens nicht und jeder Nutzer soll seiner eigenen Guideline folgen.

Aus meiner Sicht sollte der interne Style für die Nutzung von Open Logic auch keine Rolle spielen. Wenn man Linux compiliert und nutzt bedeutetd das ja auch nicht das der betreffende Quellcode dem eigenen Stil entsprechen muss - das selbe gilt aus meiner Sicht generell für in einem Projekt eingesetzten 3rd Party Code.

  1. OSVVM vs. VUnit

Ich habe mich für VUnit entschieden da ich damit Erfahrung habe und effizient bin. Ich sehe aktuell auch keine signifikanten Probleme damit, würde heute OSVVM aber in Betracht ziehen. Trotzdem glaube ich, dass ich aktuell mehr Wert generieren kann wenn ich die Zeit in neue Features investiere als in die Umstellung des Verifikationsframeworks.

Wenn jemand zum Projekt beitragen möchte und die Umstellung auf OSVVM implementieren möchte, bin ich sehr offen dafür das zu diskutieren.

#7999820
Lesenswert?

Oliver B. schrieb:

Ich habe mehrere hundert Stunden Aufwand in das Open Logic Projekt hineingesteckt und wenn ich alle Spenden und Arbeitsstunden zusammenzähle maximal einen einstelligen Stundenlohn in Euro. Wenn die Motivation finanzieller Natur wäre, hätte ich die Zeit besser in meinen Hauptberuf investiert. Aktive Nutzer um eine Spende zu bitten ist aus meiner Sicht legitim und das werde ich auch weiter tun.

Danke dafür.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren