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


von Chris R. (mrgreen)


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?

von Andreas S. (andreas) (Admin) Benutzerseite


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:
1
if rising_edge(clk) then
2
  -- ggf. noch Überlauf behandeln
3
  counter <= counter + 1;
4
5
  if reset = '1' then
6
    out_reg <= counter;
7
    counter <= (others => '0');
8
  end if;
9
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.

von Kest (Gast)


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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ist egal, in einem process ist immer die letzte Zuweisung gueltig.

von Kest (Gast)


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

von Johannes T. (johnsn)


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.

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.