Forum: FPGA, VHDL & Co. Out vector teilweise open setzen


von Mike (Gast)


Lesenswert?

Hallo

frage wie ist es möglich zb von einem     mein_bus : out 
std_logic_vector(25 downto 0);

Beim instanzieren nur bin 0 bis 20 abzugreifen und die restlichen auf 
open zu setzen?

Hoffe ihr versteht was ich meine.

lg Mike

von berndl (Gast)


Lesenswert?

Probier's aus. Ich meine: Nein

von Mike (Gast)


Lesenswert?

Hallo

hm ich habs jetzt so probiert, die reine Analysis und Synthese im 
Quartus funktioniert.  Allerdings war das nur ein beispiel das ein paar 
Pins verdreht.
1
  buss_u : buss
2
  port map (
3
          input => input,
4
          output(2 downto 0) => output(2 downto 0),
5
          output(4 downto 3) => open
6
        );

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


Lesenswert?

Mike schrieb:
> output(4 downto 3) => open
Und was soll der Ausgangspin dann tun?
Hochohmig sein?
Oder einen definierten Pegel ausgeben?

von abc (Gast)


Lesenswert?

>> Und was soll der Ausgangspin dann tun?

warscheinlich wohl wegoptimiert werden. Manchmal ganz nützlich wenn man 
Module mehrfach nutzt, aber nicht jedesmal alle Bits benötigt.

(klar, nur sinnvoll bei internen Modulen nicht tatsächlichen Pins, aber 
Mike schrieb ja das es nur ein Beispiel ist)

Meiner Erfahrung nach unterstützt Quartus das, ISE jedoch nicht (Stand 
10.x).

Sinnvoller ist es jedoch einen "vollen" Ausgabevektor zu definieren und 
davon abzugreifen, das unterstützen alle Tools:


port map (
...
output => output);
...
output_part <= output(2 downto 0);

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


Lesenswert?

abc schrieb:
> nur sinnvoll bei internen Modulen, nicht tatsächlichen Pins
Richtig.
> aber Mike schrieb ja das es nur ein Beispiel ist
Es kommt bei solchen Beispielen aber sehr darauf an, ob es um interne 
oder externe Ports geht...
> Meiner Erfahrung nach unterstützt Quartus das, ISE jedoch nicht
Offene Ausgangssignale von internen Modulen gingen doch auch in der 
ISE schon immer. Eingangssignale müssen auf einen definierten Pegel 
gelegt werden...

von abc (Gast)


Lesenswert?

Stimmt, hatte was mit den Ports and Teilbeschaltung in Erinnerung, war 
aber betreffend Inputports:

signal input1 : std_logic_vector(3 downto 0);
signal input2 : std_logic_vector(3 downto 0);
...
port map(input <= input1 & input2);

(Input = 8 Bit Vektor)

Das wars was ISE nicht unterstützt hat. Keine Ahnung ob sie es 
mittlerweile tun.



Aber genau aus solchen Gründen würde ich immer eine Beschreibung wie 
oben wählen, bei der nur gesamte Vektoren jeweils zugewiesen werden.

Man weiß nie welches Tool man später mal mit dem Code füttern will.

Hab mittlerweile einige Wechsel durch mit dem selben Code (typische 
Bibliothek Module)
Quartus 7 -> ISE 10 -> Synplify -> Quartus 10
Dazu parallel immer noch Modelsim.

Und fast immer gabs ausgefallene Schreibweisen die Tool a problemlos 
unterstützt, Tool b aber wiederum nicht.

Wobei Quartus bisher die wenigsten Probleme gemacht hat beim Wechsel, 
was aber Zufall gewesen sein kann.

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.