Forum: FPGA, VHDL & Co. Initialzustand von Ausgang?


von Jens Langecker (Gast)


Lesenswert?

Mal eine ganz doofe Frage.

Wenn ich einen Ausgang direkt als Speicher verwende wie im folgenden 
Beispiel, ist dann in irgendeiner Weise definiert, welchen 
Initialzustand der Ausgang hat, solange noch keine der setzenden 
Bedinungen eingetreten ist?
1
entity Doof is
2
  Port (
3
    CLK         : in std_logic;    
4
    AUSGANG     : out std_logic);
5
end Doof;
6
7
architecture Behavioral of Doof is
8
9
process (CLK)
10
begin
11
  if (rising_edge(CLK)) then
12
    if    (Bedingung1 = '1') then
13
      AUSGANG <= '0';  
14
    elsif (Bedingung2 = '1') then
15
      AUSGANG <= '1';
16
    end if;
17
  end if;
18
end process;
19
20
end Behavioral;

von user (Gast)


Lesenswert?

Kommt auf dein Synthese-Tool an, aber du kannst einen default 
definieren.

entity Doof is
  Port (
    CLK         : in std_logic;
    AUSGANG     : out std_logic := '0'
  );
end Doof;

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


Lesenswert?

Das mit derm initialisierten Out Port kann kurioserweise noch nicht 
jedes Tool. Aber wenn ein internes Signal eingeführt wird, klappt es 
heutzutage immer (vorausgesetzt natürlich, dass das ein Flipflop ist!):
1
entity Doof is
2
  Port (
3
    CLK         : in std_logic;    
4
    AUSGANG     : out std_logic);
5
end Doof;
6
7
architecture Behavioral of Doof is
8
signal A     : std_logic := '1';
9
10
  process (CLK) begin
11
    if (rising_edge(CLK)) then
12
      if    (Bedingung1 = '1') then
13
        A <= '0';  
14
      elsif (Bedingung2 = '1') then
15
        A <= '1';
16
      end if;
17
    end if;
18
  end process;
19
20
AUSGANG <= A;
21
22
end Behavioral;
Ind der Praxis ist das meist sowieso die bessere Lösung, weil ausgänge 
nicht rücklesbar sind. Wenn ich also wissen will, was der Ausgang 
gerade tut, brauche ich sowieso das interne Signal (wenn nicht gerade 
aus Tippfaulheit ein buffer verwendet wird).

von Jens Langecker (Gast)


Lesenswert?

Ist verstanden, danke.

Aber was machen denn solche undefinierten Ausgänge in der 
Xilinx-Realität? Hab hier ein Projekt voll von solchen Sachen und 
wundere mich, ob nach der FPGA-Config nicht totales Durcheinander 
herrscht.

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


Lesenswert?

Jens Langecker schrieb:
> Aber was machen denn solche undefinierten Ausgänge in der
> Xilinx-Realität?
Steht im Handbuch zum Synthesizer.
Wenn nichts angegeben ist, werden die auf '0' gesetzt.

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.