Forum: FPGA, VHDL & Co. Vivado/SoC-Anfängerfrage: Wann Block-Design-Modul, wann normale Instanziierung?


von Emil G. (balsamico)


Lesenswert?

Hi,

noch ganz frisch habe ich angefangen, mich mit Vivado und SoC zu 
beschäftigen und habe eine ganz generelle Frage zu den Block Designs.

In einem Block Design kann man ja IO-Ports und IP Blocks miteinander 
vernetzen, aber auch HDL-Module.

In HDLs instanziiert man ja Module in jeweils übergeordneten Modulen. 
Soll das Design jetzt aber als Block Design entworfen werden, müssen die 
Parameter eines untergeordneten Moduls als Ein- und Ausgänge des 
übergeordneten Moduls implementiert werden, damit man die Parameter im 
Blockdiagramm dann verbinden kann.

Auf diese Weise wachsen die Modulköpfe aber selbst bei ganz einfachen 
Strukturen ganz schnell bis zur Unkenntlichkeit heran. Umständlich ist 
es auch. Also dass HDL-Module generell in Block Designs instanziiert 
werden, kann anscheinend nicht sein. So habe ich mir Block Designs aber 
eigentlich bis vorhin noch vorgestellt.

Welche Strukturen setzt man in Block Designs um und wann bleibt man in 
der syntaxcodierten Beschreibung? Gibt es da Regeln? Sind Block Designs 
in reinen Hardware-Projekten fehl am Platz? Werden sie nur eingesetzt, 
wenn Hard- und Software verknüpft werden sollen oder IP Cores eingesetzt 
werden sollen? Ist es vielleicht so, dass stets nur das übergeordnetste 
HDL-Modul im Block Design auftauchen soll? Oder gibt es handlichere 
Vorgehensweisen, als die beschriebene, wie untergeordnete Module ins 
Block Design mit aufgenommen werden?

Danke euch schonmal!

: Bearbeitet durch User
von Christoph (Gast)


Lesenswert?

Emil G. schrieb:
> In HDLs instanziiert man ja Module in jeweils übergeordneten Modulen.
> Soll das Design jetzt aber als Block Design entworfen werden, müssen die
> Parameter eines untergeordneten Moduls als Ein- und Ausgänge des
> übergeordneten Moduls implementiert werden, damit man die Parameter im
> Blockdiagramm dann verbinden kann.

Parameter implementierst du als Generics und nicht als Ein- und 
Ausgänge. Unabhängig von Blockdesign oder Text.

In Vivado werden die Generics dann im GUI des jeweiligen Moduls 
konfiguriert. Dazu muss zu dem HDL Code eine IP Core Definition 
existieren, dort sind die zugehörigen Dateien, Parameter (Generics), Bus 
Interfaces etc. definiert.

Emil G. schrieb:
> Welche Strukturen setzt man in Block Designs um

In Vivado generell alles was mit dem AXI on-chip Bus zu tun hat, da das 
Blockdesign Tool dann automatisch die benötigten Crossbarswitches etc. 
mit hin zu fügt und dessen Anzahl Ports etc. automatisch konfiguriert. 
Das spart ganz massiv Schreibarbeit.

AXI kann man auch in reinen Hardwareprojekten einsetzen, kommt in der 
Praxis wohl aber nicht so oft vor. Meistens wird da dann schon irgendwo 
noch ein Hard-/Soft-Core Prozessor sein.

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.