Forum: Projekte & Code CRC codegenerator - Verilog / FPGA


von Michael B. (mb_)


Lesenswert?

Ich möchte euch ein Projekt vorstellen, mit dessen Hilfe optimierter und 
synthetisierbarer HDL-Code für FPGAs generiert werden kann, um 
CRC-Prüfsummen zu berechnen.

https://bues.ch/h/crcgen

Sowohl der generierte Code (PD), als auch der Generator selbst (GPL) 
sind frei.

Der Generator kann als Standalone-Tool (z.B. in der eigenen 
Make-Toolchain), oder auch online auf der Website verwendet werden.

Als Ausgabesprache werden derzeit unterstützt:

- Verilog Funktion und Modul.
- C und Python (hauptsächlich zum Debugging und Testen des Generators 
selbst).

Denkbar wären auch andere Ausgabesprachen wie VHDL oder MyHDL. Diese 
sind derzeit aber noch nicht implementiert.

Es werden CRC-Bitbreiten von 8 bis 64 Bit unterstützt.
Als Datenwortbreite wird derzeit nur 8 Bit unterstützt.

Pull-Requests, Patches und Vorschläge sind willkommen.

von New-User (Gast)


Lesenswert?

Produziert es auch VHDL?

von jemand (Gast)


Lesenswert?

Steht doch im Post: nein

von New-User (Gast)


Lesenswert?

Kopfschüttl ...

die Frage geht natürlich dahin, ob der werte Autor die Absicht haben 
könnte, das zu implementieren. Oder noch genauer: Man formuliert einen 
Wunsch nicht als Anforderung oder Kritik am Fehlen eines Punktes (VHDL 
ist weiter verbreitet, als Verilog) sondern stellt eine Frage, die den 
Autor zum Nachdenken anregt.

von Gustl B. (gustl_b)


Lesenswert?

New-User schrieb:
> VHDL ist weiter verbreitet, als Verilog

Wo hast du das denn her?

Aber eigentlich auch egal, man kann problemlos Verilog Module in einer 
VHDL Beschreibung instanziieren.

von Michael B. (mb_)


Lesenswert?

Vielen Dank für das Interesse an der Software.

Der Generator beherrscht derzeit keine VHDL-Ausgabe und es gibt aktuell 
auch keine Pläne meinerseits eine VHDL-Ausgabe zu implementieren.

Das Projekt ist jedoch Freie Software und somit seid Ihr herzlich 
eingeladen die VHDL-Ausgabe zu implementieren und bei Interesse auch 
gerne als Pull-Request oder per Mail an mich zu schicken, damit ich sie 
einbauen kann.

Die Implementierung einer VHDL-Ausgabe sollte auch nicht allzu schwierig 
sein. Wie bereits beschrieben beherrscht der Generator ja schon mehrere 
Ausgabesprachen. Es sollten also keine grundlegenden 
Architekturänderungen an der Software notwendig sein. Es muss lediglich 
ein neuer Ausgabecodegenerator hinzugefügt werden.

Viel Spaß! :)

von Michael B. (mb_)


Lesenswert?

Die Version 2.0 wurde heute freigegeben.

https://bues.ch/h/crcgen

Diese Version fügt Unterstützung für
* beliebige CRC-Bitlängen und
* beliebige Eingangsdatenwortlängen
hinzu.

VHDL kann diese Verion leider immer noch nicht.
Falls jemand Lust hat die VHDL-Unterstützung einzubauen, bitte einfach 
melden.
Am besten per Issue oder gar Pull-Request auf Github.

Viel Spaß!

von Martin S. (strubi)


Lesenswert?

Michael B. schrieb:
> Denkbar wären auch andere Ausgabesprachen wie VHDL oder MyHDL. Diese
> sind derzeit aber noch nicht implementiert.

Mit MyHDL haettest du VHDL und Verilog-Ausgabe 'gratis' erschlagen.

von Michael B. (mb_)


Lesenswert?

Ja, das ist richtig. Danke für den Hinweis.

Ich habe mal MyHDL-Unterstützung im git master branch eingebaut.
Damit kann man nun auch VHDL-Code generieren.
VHDL direkt zu generieren fände ich trotzdem schöner.
Deshalb werde ich mir das auch mal anschauen.

von Michael B. (mb_)


Lesenswert?

Ab Version 2.1 beherrscht der Generator neben Verilog und MyHDL nun auch 
eine VHDL-Ausgabe.

Über Kommentare und Verbesserungen von VHDL-Experten würde ich mich 
freuen.

https://bues.ch/h/crcgen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.