Forum: FPGA, VHDL & Co. Allgemeine Coding Vorgaben für VLSI Design


von Paul B. (Gast)


Lesenswert?

Kennt jemand Quellen für Coding Styles für VHDL im Bezug auf ASIC und 
FPGA?

Ich meine dabei nicht nur die Optik des Codes sondern auch dessen 
Aufbau, die Organisation des Projektes, die Einteilung in Submodule, das 
handling von Komponenten, Verwaltung von Enties und Architectures, 
Verwendung und Behandlung von Vektoren, Nomenklatur der Signale und 
Variablen.

Findet das in euren Firmen Anwendung?

von Heinrich Hanss (Gast)


Lesenswert?


von Paul B. (Gast)


Lesenswert?

Hatte ich schon gefunden, danke. Genauso wie dies hier:
http://www.dz.ee.ethz.ch/de/information/hdl-hilfe/vhdl-namenskonvention.html
mit dem ich aber auch nicht sonderlich glücklich bin. Besonders die 
Namenskonventionen scheinen mir ziemlich weit hergeholt.

von user (Gast)


Lesenswert?

www.gaisler.com/doc/vhdl2proc.pdf

von Christian R. (supachris)


Lesenswert?

Naja, der Gaisler...ob das das Maß der Dinge ist? Soviele unnütze 
Variablen wie der immer verwendet...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Christian R. schrieb:
> Soviele unnütze Variablen wie der immer verwendet...
Aber für Softwareprogrammierer ist das doch so richtig heimelig, so mit 
einem Monsterprozess, der immer von oben nach unten durchlaufen wird. Da 
muss man sich gar keine Hardware mehr vorstellen und beschreiben, 
sondern einfach wie gewohnt drauflos programmieren...

von Christian R. (supachris)


Lesenswert?

Du sprichst mir aus der Seele. Hoffentlich kommt der Sarkasmus an...

Pass ma auf, gleich kommt Peter um die Ecke ;)

von Fpgakuechle K. (Gast)


Lesenswert?

Unter"Best Practice VHDL Coding Standards for DO-254 programs" findet 
sich ein guter Satz an richtlinien von der DO-254 users group. Große 
Konzerne haben eigene Richtlinien für VHDL-Code der auch weitgehend 
eingehalten wird (schon wegen ISO-9001 o.ä.) bspw. die Schwarzen 
Rhodieschen, Hermann Bäcker oder die  Münchner Bastel Bude. ;-)

MfG,

von Matthias (Gast)


Lesenswert?

An die Kritiker der Gaisler-Methode: Habt ihr das schon mal konkret in 
einem Projekt ausprobiert oder nur die Folien überflogen?

Ich habe die Erfahrung, dass die Gaisler-Methode bei vielen erstmal auf 
Ablehnung stößt, weil sich nicht umgewöhnen wollen oder der Mehrwert 
zunächst nicht klar erkenntlich ist. Gaisler in einem größeren Projekt 
eingesetzt, erhöht deutlich das Abstraktionslevel und die Lesbarkeit des 
Codes.

Ich verwende seit vielen Jahren die Gaisler-Methode und finde daher 
"traditonellen VHDL-Code" mittlerweile eklig. Ich habe auch noch nie 
Probleme mit FPGA- oder ASIC-Synthese gehabt. Es läuft auch mit allen 
mir bekannten Simulatoren einwandfrei (okay mit GHDL habe ich es noch 
nicht ausprobiert).

von J. S. (engineer) Benutzerseite


Lesenswert?

Nettes Thema, hatte ich gerade auch wieder :-)

Mehr, als die Art des Codierens ist es wichtig, was man codiert, damit 
die Tools damit klarkommen, der Code übersichtlich, verwertbar und 
portierbar bleibt. Nicht alles, was ich in Coding Styles lese, 
entspricht diesen Kriterien. Vieles ist einfach Definitionssache, daher 
kommt es für mich dabei an, dass ich zu dem kompatibel bleibe, was schon 
da ist, was von Kollegen geliefert wurde oder aus höher angeordneten 
Designtools ausgeworfen wird, auch wenn es objektiv subopimal ist.

Was ein VHDL-Entwickler abliefert, muss von anderen Kollegen auch mal 
gelesen werden können und diesbezüglich hätte ich mit einer Methodik, 
wie sie von Gaisler propagiert wird, so meine Bedenken. Das ist IMHO 
auch 50% Geschmack und Ideologie und höchstens 50% begründbare 
Strategie. Da hätte ich sofort einige Kritikpunkte.

Das Papier der ETH Zürich ist aus meiner Sicht eher verwirrend. Die 
Suffixes haben keinen wirklichen Wert für die Portierbarkeit oder 
Lesbarkeit und sind zudem nicht logisch ergänzend und damit 
überfrachtet. Ein invertiertes asynchrones Resetsignal, das dem Testen 
dient, müsste demnach 4 Suffixes tragen, wobei "B" angeblich auf "low 
aktiv" hinweist.  Das ist IMHO vollkommener Quark! Erstens gibt es im 
Logikdesign kein "low", sondern bestenfalls invertierte Signale, 
("low-Aktivität" ist eine Eigenschaft von Ports, das macht die halbe 
Welt falsch) und zweitens deklarieren 90% der Welt invertierte Signale 
mit "not".


Matthias schrieb:
> An die Kritiker der Gaisler-Methode: Habt ihr das schon mal konkret in
> einem Projekt ausprobiert oder nur die Folien überflogen?
Ich zumindest ja, und :

> Ich habe die Erfahrung, dass die Gaisler-Methode bei vielen erstmal auf
> Ablehnung stößt, weil sich nicht umgewöhnen wollen oder der Mehrwert
> zunächst nicht klar erkenntlich ist.
der Mehrwert schlägt sich erst bei komplexeren Projekten nieder, die 
auch in Richtung ASIC gehen oder zumindest von Teams bearbeitet und 
häufiger modifiziert werden. Der Aufwand muss sich halt lohnen. Und wie 
oben angedeutet, müssen alle mitziehen. Daran ist schon eine vernüftige 
Codenormierung in C gescheitert.

Fpga Kuechle schrieb:
> die  Münchner Bastel Bude. ;
Wer ist denn die ? :-)

von Georg A. (georga)


Lesenswert?

>> die  Münchner Bastel Bude. ;
>Wer ist denn die ? :-)

Lohnt sich nicht, den aktuellen Namen zu erwähnen. In einem Jahr heissen 
sie eh wieder anders... Mit etwas Pech klagt ihnen auch wieder ein 
Parfümhersteller (wie letzthin Boss) das neue Logo weg.

von Fpgakuechle K. (Gast)


Lesenswert?

Jürgen S. schrieb:

> Fpga Kuechle schrieb:
>> die  Münchner Bastel Bude. ;
> Wer ist denn die ? :-)

Such nach den drei Anfangsbuchstaben in de.wikipedia.org. Und ja der 
Firmenname hat sich mehrmals geändert - das Basteln ist geblieben ;-)

MfG,

von Christoph Z. (christophz)


Lesenswert?

Christian R. schrieb:
> Naja, der Gaisler...ob das das Maß der Dinge ist? Soviele unnütze
> Variablen wie der immer verwendet...

Es ist sicherlich nicht das Mass der Dinge. Mir hat das lesen seines 
Papers jedenfall viel gebracht, nur schon um mal einen ganz anderen Stil 
zu sehen und so zu lernen wie mächtig VHDL eigentlich ist.

Für meinen Alltag habe ich einen Teil von seinen Empfehlungen 
übernommen. Konkret benutze ich in Entities nur noch zwei Records (je 
für Eingang/Ausgang).

Das erleichtert das Erweitern mit neuen Funktionen oder Debuginformation 
ungemein und strukturelle Beschreibungen sind so sehr lesbar, da Quelle 
und Ziel immer Sichbar sind. Sieht teilweise fast wie objektorientier 
Code aus :-)

Typ- und Komponentendefinitionen kommen in ein Package, macht die 
Nutzung einfach.

Innerhalb einer Architektur arbeite ich "klassisch" weil es eher meiner 
Denkweise in Funktionsblöcken entspricht, also für jede Funktionseinheit 
einen eigenen Prozess und so gut es geht sortiert nach Datenfluss, Daten 
oben hinein und unten heraus.

Jürgen S. schrieb:
> Und wie
> oben angedeutet, müssen alle mitziehen.

Coding Guidelines müssen durchgesetzt werden, sonst sind sie nichts 
Wert. Der Nutzen ergibt sich ja erst dadurch, dass man eigenen/fremden 
Code auch nach längerer Zeit schnell begreifen kann und z. B. Fehler 
schneller findet weil man sich schnell zurechtfindet.

Fpga Kuechle schrieb:
> Unter"Best Practice VHDL Coding Standards for DO-254 programs" findet
> sich ein guter Satz an richtlinien von der DO-254 users group.

Blöde Frage, gibt es das irgendwo zum Herunterladen oder muss man das 
kaufen?

von Fpgakuechle K. (Gast)


Lesenswert?

Christoph Z. schrieb:

> Fpga Kuechle schrieb:
>> Unter"Best Practice VHDL Coding Standards for DO-254 programs" findet
>> sich ein guter Satz an richtlinien von der DO-254 users group.
>
> Blöde Frage, gibt es das irgendwo zum Herunterladen oder muss man das
> kaufen?

Also ich hab mir das PDF das grad ausgedruckt vor mir liegt vor ca. 2-3 
Jahren aus dem Netz geholt. Auf deine Frage hin hab ich mal google 
befragt und da scheint es nicht mehr auffindbar - ist wohl 
"commerzialisiert" worden.

MfG,

von Paul B. (Gast)


Lesenswert?

Du hättest nicht zufällig den Namen des PDFs parat?

von Christoph Z. (christophz)


Lesenswert?

Die Dokumentennummer ist: DO254-UG-001

Einen Teil davon kann man hier lesen:
http://de.scribd.com/doc/151230668/Best-Practice-VHDL-Coding-Standards-for-DO-254-Programs

Das ganze lesen und herunterladen nur wenn man dafür bezahlt. Ob es 
überhaupt dort sein darf ist eine ganz andere Frage (Da ich keine Ahnung 
habe, welches Gremium die DO Standards eigentlich erstellt und wie diese 
üblicherweise zugänglich gemacht werden).

von Fpgakuechle K. (Gast)


Lesenswert?

Frank Petelka schrieb:
> Du hättest nicht zufällig den Namen des PDFs parat?


Zufällig nicht, aber "on-request" hab ich mal nachgeschaut:

do-254-ug-001.pdf


Es ist gut möglich, das ich nach dem PDF von einem Firmen-PC aus gesucht 
habe.
Dann ist gut möglich das der Usergroup-server dem Proxy als den eines 
Usergroup-Members identifizierte und deshalb den download gestattete.

MfG,

von Paul B. (Gast)


Lesenswert?

ok, danke ich habe auf einem PDF Server (zwar nicht dieses aber anderes) 
einiges gefunden, auch mit dem Bezug zur DO 254.

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.