mikrocontroller.net

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


Autor: Emil G. (balsamico)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.