www.mikrocontroller.net

Forum: FPGA, VHDL & Co. std_logic_vector mit nicht durchgängier range


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin mir zwar 99% sicher, dass man keinen std_logic_vector mit 
"Unterbrechungen" dazwischen deklarieren kann (insbesondere in einer 
port Liste), aber es würde mir derart viel Troubles ersparen, dass ich 
dennoch frage.

Also ich habe einen Vektor in der Port Liste:

ddr0_mem_dq        : inout std_logic_vector(71 downto 0);


Da wir hier das Design als Zwischenlösung auf einem anderen Board laufen 
lassen, wo dann manche der Ausgänge von anderen Signalen belegt werden, 
gibt es nicht mehr für alle Bits des Vektors eine Pin Location. Den 
Vektor irgendwie in der Art

ddr0_mem_dq        : inout std_logic_vector(71 downto 70, 34 downto 31, 
...usw);

deklarieren zu können wäre toll, aber das geht wohl nicht, oder?

Danke und lg
Matthias

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein das geht nicht, aber es spricht nix dagegen die pins einfach nicht 
zu belegen, die werden dann einfach rausoptimiert

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dass es nicht geht, habe ich befürchtet.

Wenigstens teilweise möchte ich die Pins belegen, da wieder andere 
Bauteile dran hängen und ich fürchte, dass mir sonst deren Eingänge 
floaten. Naja, wirds halt doch leider Arbeit :( .

Danke jedenfalls und lg.

Autor: Jürgen Schuhmacher (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du deklarierst einfach einen Vector als CONCAT zweier Zwischenvektoren 
oder ein vector-array mit mehreren Bereichen. Im Grunde macht das 
eigentlich selten richtig Sinn, weil diese Vektorteile keinen 
mathematischen Zusammenhang haben - wenigstens aus "Integer-Sicht" 
nicht.

Ich benutze das auch nur, um komplette Busse mit ADR+DAT+CTRLs+CLK in 
EINEM Signal zu führen, was in vielen Schaltungstools einfacher und 
übersichtlicher wird, weil es nur ein Strich ist :-)

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
J. S. schrieb:
> Ich benutze das auch nur, um komplette Busse mit ADR+DAT+CTRLs+CLK in
> EINEM Signal zu führen, was in vielen Schaltungstools einfacher und
> übersichtlicher wird, weil es nur ein Strich ist :-)

Hmm. Klingt als wenn hier (nicht für das Problem von Matthias) records 
helfen könnten.

Duke

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Records kann ich sehr empfehlen, ich habe einige gleichartige 
Speicherinterfaces im Design und diese mit einem record-Typen zu 
erschlagen hat für viel Übersicht gesorgt. Auch die Entity Interfaces 
sind mit records gemacht, dazu noch ein einheitliches Namenformat wo 
jeder derartige record einen Typ t_c1_2_c2_if bekommt, wobei c1 und c2 
sinnvolle Kürzel für andere Entities sind. Im Code heißt das Signal dann 
s_c1_2_c2_if und steht für die Signale von c1 zu c2.

Taugt mir total, kann ich nur empfehlen, ich muss beim Codieren kaum 
jemals den Signalnamen nachschauen, weil er sich automatisch ergibt.

lg
Matthias

Autor: Jürgen Schuhmacher (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann braucht man aber eine Designsoftware, die records handlen kann und 
zwei ganz bestimmte VHDL-Mal-Softwarepakete, deren Namen ich hier nicht 
nennen kann, können das nicht. Die können nur Busse verwalten.

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

Bewertung
0 lesenswert
nicht lesenswert
Los raus mit der Sprache, wer sind die zwei?  ;-)
Eins weiß ich: Xilinx ISE kanns...

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Lothar:

Ich glaube er sprach von Malprogrammen:
> VHDL-Mal-Softwarepakete

Und der Schematic-Editor von ISE kann doch nicht mal vernünftig mit 
Bussen umgehen. (Hab ich aber auch schon lange nicht mehr probiert.)

Aber eine Designsoftware, die nicht mit records kann, möchte ich nicht 
verwenden wollen müssen.

Duke

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

Bewertung
0 lesenswert
nicht lesenswert
Ach die Mal-Programme... ;-)
Hab ich nie ausprobiert. Waren mir schon immer zu tuitiv.
Aber wie sollte man einen Record malen können?

Autor: Segor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem virtuellen zusammengefügtem Bus, so wie ein Bus selber. Er hat 
nur keine Signale, sondern weitere Variblen, Signale, Busse.

Müsste doch gehen(?)

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

Bewertung
0 lesenswert
nicht lesenswert
Segor schrieb:
> Mit einem virtuellen zusammengefügtem Bus
Du meinst wohl die bereits angesprochenen Records?

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.