mikrocontroller.net

Forum: FPGA, VHDL & Co. Internes Signal auf andere interne (r/w) Signale mappen


Autor: B. Bremer (bib)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe das folgende Problem und würde gerne wissen ob VHDL eine 
einfache Lösung zulässt:

Ich benutze im XILINX EDK den Import Peripheral Wizard um mir den VHDL 
Rahmen für eine IP erzeugen zu lassen. Ich benötige einige Register und 
in dem erzeugten VHDL Code wird dann ein Internes Signal wie z.B.
signal slv_reg0                       : std_logic_vector(0 to C_SLV_DWIDTH-1); 

erzeug. Dieses Signal ist in dem Fall 32 bit breit.
Jetzt möchte ich einzelne Subteile dieses Registers an unterschiedliche 
in VHDL beschriebene Schaltungen weiterreichen. Die verwendeten Signale 
sollen (zwecks code lesbarkeit) sinnvolle Namen erhalten. Ich würde also 
zum Beispiel die folgenden beiden zusätzlichen internen Signale 
definieren und die Zuweisung wie folgt machen:
architecture IMP of user_logic is
  signal slv_reg0               : std_logic_vector(0 to C_SLV_DWIDTH-1); 
  signal control_channels   : std_logic_vector(7 downto 0);
  signal control_runmode        : std_logic_vector(4 downto 0);
begin

  --USER logic implementation added here
  control_channels <= slv_reg0(0 to 7);
  control_runmode <= slv_reg0(8 to 12);

ab jetzt kann ich in meinen weiteren VHDL Code auf control_channels und 
control_runmode lesend zugreifen. Da das Signal slv_reg0  ein internes 
Signal ist kann ich sowohl lesend als auch schreibend darauf zugreifen - 
wie kann ich aber lesend und schreibend auf control_runmode zugreifen? 
Im Prinzip habe ich ja nur für einige Bits einen neuen Namen definiert. 
Ich suche also eine Signalzuweisung die das folgende macht:
 control_runmode <=> slv_reg0(8 to 12); 
(Es ist mir klar das ich dies nicht so hinschreiben kann...)

Gibt es ein ähnliches Konstrukt oder muss ich mindestens noch ein 
zusätzliches Read/Write Signal und getrennte Lese/Schreibsignale 
einführen?

Gruß

Birk

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was du suchst könnte ein Alias sein.
http://de.wikibooks.org/wiki/VHDL#alias
Damit kannst du z.B. Teilen von Verktoren andere Namen geben.

BTW:
> slv_reg0(0 to 7);
Nummerier deine Vektoren doch mit downto durch (MSB links, LSB 
rechts).

Autor: B. Bremer (bib)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Was du suchst könnte ein Alias sein.
> http://de.wikibooks.org/wiki/VHDL#alias
> Damit kannst du z.B. Teilen von Verktoren andere Namen geben.


Danke Lothar, das hört sich genau nach dem an was ich suche!

>
> BTW:
>> slv_reg0(0 to 7);
> Nummerier deine Vektoren doch mit downto durch (MSB links, LSB
> rechts).
Mache ich bei meinen Code auch - der Teil kommt aus dem Wizard und da 
möchte ich nicht eingreifen...

Gruß

Birk

Autor: Georg A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Xilinx hat mit dem EDK für ihre PPC-Virtexe leider auch die "verkehrte" 
Bitnummerierung von IBM übernommen. Das geht schon Generationen von 
EDK-Nutzern auf den S*ck und hat mit den daraus resultierenden Bugs (zB. 
bei DRAMs, wo die Adressleitungen wirklich eine bestimmte Ordnung haben 
müssen) sicher schon Millionen $ an unnützer Fehlersuche verschwendet...

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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