Forum: FPGA, VHDL & Co. VHDL: Definieren von unbenutzten Ports


von Blaufisch (Gast)


Lesenswert?

Hallo Zusammen,

Wie kann ich bei einem std_logic_vector (port) bei welchem nur einige 
wenige Bits beschrieben werden (jedoch an komplett verschieden Orten), 
die unbenutzten Bits elegant auf einen definierten Wert setzten (alle 
auf '0' )?

Beispiel:
1
entity test is
2
    Port ( clock        : in  std_logic;
3
           reset        : in  std_logic;
4
           slv_reg0     : out  std_logic_vector(0 to 31);
5
           );
6
end test;
7
8
architecture Behavioral of test is
9
10
begin
11
12
slv_reg0(4) <= gugus;
13
.....
14
...
15
slv_reg0(15) <= foo;
16
..
17
....
18
     
19
slv_reg0 <= ?????
20
-- setzte alle unbenutzten auf '0'
21
22
end Behavioral;

Vielen Dank für eure Antworten.

Grüsse
Blaufisch

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


Lesenswert?

Blaufisch schrieb:
> slv_reg0     : out  std_logic_vector(0 to 31) := (others=>'0');
Das funktioniert aber (eigentlich) nur in der Simulation.
In der Hardware bekommst du sowieso die Meldung, das unbenutzte Signal 
werde niemals beschrieben und daher auf '0' gelegt...
Probiers einfach mal aus.

von user (Gast)


Lesenswert?

wenn du die zuweisung ein einem prozess machst kannst du einen default 
wert angeben

process(foo,gugus)
begin
   slv_reg0 <= (others => '0'); --default values

   slv_reg0(4) <= gugus;
   slv_reg0(15) <= foo;
end process;

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


Lesenswert?

user schrieb:
> ein einem prozess
Das war auch mein erster Gedanke, das lästige daran ist aber die 
Sensitivliste, die unbedingt passen muß, weil sonst die Simulation 
falsch ist...

von Klaus (Gast)


Lesenswert?

Warum braucht ein moderner Simulator überhaupt noch eine 
Sensitivity-List?  Es ist doch algorithmisch nicht wirklich kompliziert, 
automatisch zu ermitteln von welchen Signalen die "Ausgabesignale" eines 
Prozesses abhängen.

von Alternative (Gast)


Lesenswert?

Das würde auch gehen für einzelne Bits:
1
slv_reg0 <= (4 => gugus, 15 => foo, others => '0');

von Blaufisch (Gast)


Lesenswert?

Vielen Dank für die Antworten.
Werde es gleich einmal testen.

Grüsse
Blaufisch

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


Lesenswert?

Klaus schrieb:
> Warum braucht ein moderner Simulator überhaupt noch eine
> Sensitivity-List?  Es ist doch algorithmisch nicht wirklich kompliziert,
> automatisch zu ermitteln von welchen Signalen die "Ausgabesignale" eines
> Prozesses abhängen.
Die Synthese macht das schon lange. Nur die Sprache VHDL gab das bisher 
nicht her. Aber seit VHDL 2008 ist auch sowas möglich:
1
process (all) begin
2
   :
3
end process;

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.