std_logic_vector mit nicht durchgängier range

Gast #1850394
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
Gast #1850890
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.
Persönliche Seite #1851099
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 :-)
Gast #1854657
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
Gast #1855772
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
Gast #1856930
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren