Gast
#1575173
Hi, sehe ich es richtig, daß wenn ich mehrere vhdl-module habe, die ich im Toplevel verbinde, die verbindungen zwischen den einzelnen modules als signale im toplevel definieren muss, oder gehts einfacher?
|
Anzeige
|
verbinden von modulen
Gast
#1575173
Hi, sehe ich es richtig, daß wenn ich mehrere vhdl-module habe, die ich im Toplevel verbinde, die verbindungen zwischen den einzelnen modules als signale im toplevel definieren muss, oder gehts einfacher? > oder gehts einfacher?
Nein, du brauchst für die Verbindungen zwischen zwei Komponenten
Signale. Nur die Signale, die vom Top-Entity-Port raus- oder reingehen,
kannst du direkt verbinden.
Gast
#1575218
Danke für die schlechte Nachricht ;). Hab ich mir doch fast gedacht. Als Tipp: mach nicht so viele Komponenten, dann mußt du nicht so viel verdrahten... ;-)
Gast
#1575271
Da gebe ich lkmiller vollkommen recht. Mit mehreren Komponenten ist es zwar meist etwas übersichtlicher, aber gerade bei Programmen die man auf einem CPLD und nicht auf einem FPGA implementieren will kann das dazu führen, dass man schnell an die Grenzen der Makrozellen kommt. Da du ja für die Module zusätzliche Ein- und Ausgänge benötigst werden hier bei einem CPLD Latches angelegt die wiederum Makrozellen verbraten. Aber auf einem FPGA hat man ja meist genug Ressourcen, da spielt das keine Rolle ;-). Gruß Phil Phil schrieb: > Mit mehreren Komponenten ist es > zwar meist etwas übersichtlicher, aber gerade bei Programmen die man auf > einem CPLD und nicht auf einem FPGA implementieren will kann das dazu > führen, dass man schnell an die Grenzen der Makrozellen kommt. Das stimmt so nicht. Die Anzahl der verwendeten Makrozellen hängt nur von der Komplexität der Schaltung ab. Ob man diese in Module aufteilt oder alles in einen Prozess schreibt, ist komplett egal. > Da du ja > für die Module zusätzliche Ein- und Ausgänge benötigst werden hier bei > einem CPLD Latches angelegt die wiederum Makrozellen verbraten Quatsch. >> Da du ja für die Module zusätzliche Ein- und Ausgänge benötigst werden Das sind nur interne Signalnamen, die werden vom Synthesizer sofort wieder rausgeworfen und durch eine Verbindung ersetzt. >> hier bei einem CPLD Latches angelegt die wiederum Makrozellen verbraten Latches werden ganz anders und meist eher aus Versehen angelegt... Zum Verbinden habe ich auch noch eine Frage. Es gibt zwei Varianten wie man eine Komponente einbinden kann. Variante 1: Wenn man eine Komponente einbindet schreibt man in die architecture.
Variante 2:
Ich bevorzuge die Varinate 2, weil wenn in der Entwicklung ein Port sich ändert, ist diese Änderung an zwei Stellen durchzuführen und der Quellcode wird außerdem kürzer. Leider weiß ich über das Schlüsselwort work zu wenig. Welche Mechanismen werden hier verwendet und welche Randbedingungen hängen hier dran? work ist einfach der Name der Bibliothek, in der die Komponente liegt. Alles, was man nicht explizit in eine eigene Bibliothek packt, landet in work. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|