VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks
"code complete" oder "writing solid code"

Anfang   zurück   weiter   Ende
Autor Beitrag
achim
Gast
New PostErstellt: 14.10.04, 12:28  Betreff: "code complete" oder "writing solid code"  drucken  Thema drucken  weiterempfehlen Antwort mit Zitat  

Hallo VHDL-Programmierer,

als Erfahrender C-Programmierer kann ich sagen, dass "Code Complete" oder "Writing Solid Code" sehr gute Ansätze zur Programmierung in 'normalen' Computersprachen geben.

Teile wie Quelltext-Formatierungen und Namen sind natürlich analog auf VHDL übertragbar, aber z.B. Kapselung und Schnittstellen sind es durch die parallele und syncrone Verarbeitung nicht.

Gibt es ähnliche Bücher auch für VHDL? Also Bücher, die gerade NICHT beschreiben, wie der beste Zähler oder Filter in VHDL aussieht, sondern die beschreiben wie man VHDL-Code z.B. gruppiert und unterteilt. Auch eine Befehlsreferenz oder "Tipps und Kniffe für VHDL-Freaks" ist nicht dass was ich suche, da hier i.d.R. der Standard die beste Referenz ist.

Gruß
achim
nach oben
Dr. Faustus

Administrator

Beiträge: 107
Ort: Aßling


New PostErstellt: 18.10.04, 14:55  Betreff: Re: "code complete" oder "writing solid code"  drucken  weiterempfehlen Antwort mit Zitat  

Hallo Achim,

die Antwort ist nicht ganz so einfach.
Generell sollte ein Modul nicht mehr als 500 Zeilen enthalten und möglichst generics nutzen.

Alles andere ist sehr individuell finde ich. Hast Du vielleicht ein Beispiel?


Gruesse,

michael

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
achim.s
Registrierter Benutzer


Beiträge: 1

New PostErstellt: 18.10.04, 15:30  Betreff: Re: "code complete" oder "writing solid code"  drucken  weiterempfehlen Antwort mit Zitat  

Hallo Michael,

 

es geht mir darum, lesbaren Code zu erzeugen. Bei C ist der Programmablauf eher linear, und ohne Tasks ist auch die Verknüpfung der einzelnen Module linear, daher eher einfach.

 

 Bei VHDL und einer Systemclock clk sind viele interne Signale 1, 2 oder mehr Takte verzögert aber sonst parallel. Wenn dann noch mehrere Untertakte (z.B. Systemclock, und dazu eine Baudraten-generator) dazu kommen, so ist die Unterscheidung, zu welcher Clock (Clockdifferenz) was ausgeführt wird, recht schwierig .

 

Das ist ein Beispiel, wo es vielleicht Standards gibt.

 

Gruß

Achim

 

P.S.:

 

Signal trigger1, trigger2 : std_logic;

Process()

Begin

            If rising-edge(clk) then

                        Trigger1 = ‚0’;

                        Trigger2 = ‚0’

                        Z1 <= Z1 + 1;

                        If(Z1 = 0) then

                                   Trigger = ‚1’

                                   Z2 <= Z2 + 1;

                                   If(Z2 = 0) then

                                               Trigger2 = ‚1’

                                   End if;

                        End if;

            End if;

End process

 

if rising_edge(clk) then

if(Trigger1 = ‚1’) –Z1 ist hier 1

if(Trigger2 = ‚1’) –Z2 ist hier 0

end if;

 

Ähnlicher Code ist mir schon oft untergekommen. Es ist schwer zu verstehen, dass bei „Trigger“ (1 bzw. 2) der eine Counter 0, der andere 1 anzeigt. (Schwer zu verstehen im Sinne von :  ich muss mir nicht nur anschauen ‚wie’ Trigger gesetzt wird, sonder auch ‚wo’ um zu erfahren, wie der Zählerstand sich dabei verhält.

 

Bei größerem Code und interaktionen zwischen verschiednen „Triggern“ (in einem Modul) ist das u.U. im Kopf kaum noch nachzuvollziehen.

 

Gruß

achim

 

DBT Automation GmbH

Industriestraße 1

44534 Lünen

Telefon: ++49 (0)2306-578-22 46

Telefax: ++49 (0)2306-578-21 83

Mobile:   ++49 (0)175-146 77 10

E-Mail:   [email protected]

 

-----Ursprüngliche Nachricht-----
Von: Dr. Faustus [mailto:[email protected]]
Gesendet: Montag, 18. Oktober 2004 14:56
An: Sondermann, Achim
Betreff: Re: "code complete" oder "writing solid code"

 

Hallo Achim,

die Antwort ist nicht ganz so einfach.
Generell sollte ein Modul nicht mehr als 500 Zeilen enthalten und möglichst generics nutzen.

Alles andere ist sehr individuell finde ich. Hast Du vielleicht ein Beispiel?


Gruesse,

michael


nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Sortierung ndern:  
Anfang   zurück   weiter   Ende
Seite 1 von 1
Gehe zu:   
Search

powered by carookee.com - eigenes profi-forum kostenlos

Design © trevorj