www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Idee gesucht: Speichern und resetten


Autor: Chris R. (mrgreen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich steh grad etwas auf dem Schlauch :)

Ich habe einen Zähler. Dessen Ausgangsvektor will ich speichern, sobald 
ein Enable-Signal kommt. Mit dem gleichen Signal soll der Zähler aber 
auch zurückgesetzt werden.
Also: Enable kommt --> Vektor speichern --> ganz kurz danach Zähler 
resetten.

Aber sogar schon in der funktionalen Simulation speichert mir das 
Register nur 0, weil der Zähler halt wieder zurückgesetzt wird.

Zwischen Zähler und Speicher ist noch etwas kombinatorische Logik, 
sodass es spätestens in der GateLevel Simulation gar nicht mehr klappen 
würde.

Würde ich das Signal, das den Reset auslöst, durch ein FF verzögern?
Darf man sowas machen?

Oder würde ich direkt nach den Speicher ein Register setzen, das den 
Wert solange hält, dass ich ihn im "Ausgangs"register speichern kann?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einem asynchronen Reset sollte man das nicht, der kommt direkt an 
einen FlipFlop-Reset-Eingang und sonst nichts. Verwende ein synchrones 
Signal und mach es z.B. so:
if rising_edge(clk) then
  -- ggf. noch Überlauf behandeln
  counter <= counter + 1;

  if reset = '1' then
    out_reg <= counter;
    counter <= (others => '0');
  end if;
end if;

Bitte mach doch nicht für jede Kleinigkeit einen neuen Thread auf, das 
hätte man auch gut im Zähler-Thread diskutieren können.

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas:
counter <= counter + 1 sollte im else-Zweig sein.


  if reset = '1' then
    out_reg <= counter;
    counter <= (others => '0');
  else
    counter <= counter + 1;
  end if;

Grüße,

Kest

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist egal, in einem process ist immer die letzte Zuweisung gueltig.

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Egal? Also mir wäre das nicht egal.
Außerdem, bilde ich mir ein, dass ModelSIM schneller simuliert.

Aber okay, jedem das seine,

Grüße,
Kest

Autor: Johannes T. (johnsn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kest wrote:
> Egal? Also mir wäre das nicht egal.
> Außerdem, bilde ich mir ein, dass ModelSIM schneller simuliert.

Ich glaube auch, dass das Einbildung ist, der Code wird ja nicht umsonst 
vorher compiliert.

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.