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