Hallo, ich lese mich gerade durch ein paar Design Guidelines durch um eine Idee zu bekommen was man so alles für ein Code Review benutzen kann. Dabei ist mir im VHDL Design Guideline von der Interstaatlichen Hochschule für Technik Buchs (CH) aufgefallen, dass empfohlen wird die Component Declaration direkt als Package zu schreiben. (siehe Anhang= An sich eine schöne Idee um diese nicht immer neu definieren zu müssen, aber welche Nachteile kann ich mir dabei einfangen? Wird mein Code wirklich übersichtlicher? Freddy
Freddy schrieb: > Wird mein Code wirklich übersichtlicher? Nur, wenn du tatsächlich mehrere Instanzen der Komponente bräuchtest.
Du kannst auch ohne component deklaration ein Modul direkt instantiieren:
1 | architecture bla of xyz is |
2 | begin
|
3 | |
4 | work.my_module |
5 | port map(...); |
6 | end architecture bla; |
Ups, was vergessen:
1 | architecture bla of xyz is |
2 | begin
|
3 | |
4 | my_module_inst: work.my_module |
5 | port map(...); |
6 | end architecture bla; |
Klaus schrieb: > Ups, was vergessen: Du hast noch was vergessen:
1 | architecture bla of xyz is |
2 | begin
|
3 | |
4 | my_module_inst: entity work.my_module |
5 | port map(...); |
6 | end architecture bla; |
Duke
Duke Scarring schrieb: > Klaus schrieb: >> Ups, was vergessen: > Du hast noch was vergessen: Stimmt, danke!
@Lothar: das ist natürlich richtig. Aber wenn ich es unter Reuse Aspekten betrachte und die Compontent Initiierung direkt als Package einbaue ist es die Frage ob es sinnvoll ist oder vielleicht in anderen Projekten zu Problemen oder Verlust der Übersichtlichkeit führt. @Klaus: Ist seid VHDL2008 gültig? Natürlich kann man es noch mehr vereinfachen:
1 | port map( |
2 | a, |
3 | b
|
4 | );
|
Aber ich persönlich mag diese direkte Initiierung nicht wenn der Code nachher über Jahre noch lesbar sein soll. Um mal eben schnell was zu testen oder notfalls in der Testbench ist es ok. Die Gefahr ist aber dass die richtige Reihenfolge eingehalten wird.
Freddy schrieb: > Natürlich kann man es noch mehr vereinfachen: Nennt sich dann Positional Association. Das ist natürlich auch eine der beliebtesten Fehlerquellen. Und taucht hier im Forum so etwa alle 2-3 Wochen mal als Ursache auf...
Freddy schrieb: > Aber ich persönlich mag diese direkte Initiierung nicht wenn der Code > nachher über Jahre noch lesbar sein soll. > Um mal eben schnell was zu testen oder notfalls in der Testbench ist es > ok. > Die Gefahr ist aber dass die richtige Reihenfolge eingehalten wird. Ich glaube du verwechselst hier was. Ich habe nichts davon geschrieben, innerhalb der Portmap ein positional association zu benutzen (das macht man nicht! ;-) ) sondern mir ging es darum, dass man ein Modul auch instantiieren kann, ohne vorher die lästige component deklacarion in der architecture zu haben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.