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


von Matthias (Gast)


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

von D. I. (Gast)


Lesenswert?

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

von Matthias (Gast)


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.

von J. S. (engineer) Benutzerseite


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 :-)

von Duke Scarring (Gast)


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

von Matthias (Gast)


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

von J. S. (engineer) Benutzerseite


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Duke Scarring (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Segor (Gast)


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(?)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

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.