www.mikrocontroller.net

Forum: FPGA, VHDL & Co. latch im Quartus


Autor: Mido Mido (mido80)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo leute
könnte jemand mir erklären
wieso der Ausgang bei der Simulation am Anfang für Latch im Quartus ist 
undefiniert. obwohl ich es im Entity schon deklariert:
 Q : out std_logic:='0';

danke

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste mal den ganzen Code. Versuch auch mal rauszufinden, welche Art von 
undefiniert das ist (X, U, ...)

Autor: Mido Mido (mido80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier ist den Code für einfaches Latchs

library ieee ;
use ieee.std_logic_1164.all;

entity D_latch is
port(  data_in:  in std_logic;
  enable  :in std_logic;
  q       :  out std_logic:='0'
);
end D_latch;


architecture behv of D_latch is
begin
   process(data_in, enable)
    begin
        if (enable='1') then
      q <= data_in;
  end if;
    end process;

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mhm... du definierst zwar einen Startwert für q, aber vorerst keinen für 
data_in und enable. Außerdem werden diese Eingänge von irgendeiner 
Quelle getrieben. Damit hast du zwar kurzzeitig  '0' auf dem Ausgang, 
aber das wird sofort durch 'undefiniert' überschrieben weil die Eingänge 
undefiniert sind.

Autor: Mido Mido (mido80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi
danke für eure Antworte
ich habe jetzt die Eingänge definiert aber trozdem ändert sich nicht.
vielleicht wegen altera Board de2
ich muss nur den Grund wissen?
danke

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich habe jetzt die Eingänge definiert aber trozdem ändert sich nicht.

Bedenke dass die Eingänge nicht nur anfangs definiert sein müssen, 
sondern auch definiert bleiben müssen.

> vielleicht wegen altera Board de2

Dazu müsste der Simulator das Board kennen, was ich eher nicht vermute, 
d.h. ich vermute, die Quelle für den unbekannten Wert liegt im FPGA. 
Poste mal etwas mehr Code, am besten ein Minimalbeispiel an dem man den 
Fehler sehen kann, und insbesondere die Testbench.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Simulator verwendest du?

Bei Modelsim Xilinx Edition geht das...
Baisis: dein Code, keine weiteren Initialisierungen.

Autor: Mido Mido (mido80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller wrote:
> Welchen Simulator verwendest du?
>
Wavevector QuartusII 7.

Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
library ieee ;
use ieee.std_logic_1164.all;

entity D_latch is
port(  data_in:  in std_logic;
  enable  :in std_logic;
  q       :  out std_logic:='0'
);
end D_latch;


architecture behv of D_latch is
begin
   process(data_in, enable)
    begin
        if (enable='1') then
      q <= data_in;
  end if;
    end process;

jeder Process wird bei einem Simulationsstart ausgeführt
unabhängig von seiner sensitivity liste.
jedes Signal wird mit dem 'linken' Wert aus seinem Definitionsbereich
initialisiert => enable und data_in sind 'U'

=> beim Prozessdurlauf wird q nicht durch 'U' überschrieben.
Modelsim macht also richtig

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.