www.mikrocontroller.net

Forum: FPGA, VHDL & Co. extrem kurzen Impuls erzeugen und nutzen


Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich folgende Aufgabenstellung lösen ?

Ich brauche einen kurzen H/L Impuls zum Laden eines Latches, der beim
Erreichen des Höchstzählerstandes erzeugt werden soll.

Dazu hab ich in der realen Hardware (Digitaluhr) z.B. einen 4 bit 
Zähler, dessen Ausgang 3 und 1 über ein AND Gatter auf den L-aktiven 
Reseteingang des Zählers geht und den Zähler beim Erreichen des 
Höchstzählerstandes (10)rücksetzt. Den dabei entstehenden schmalen H/L 
Impuls hab ich zum weiterzählen und Laden genutzt. Das wird ja im CPLD 
so nicht gehen oder?
Wie kann ich sowas in VHDL machen ? Haken der Sache ist, der Impuls 
MUSSS!!! am Ende !!! der Taktflanke kommen, der den Höchstzähler standen 
erzeugt.

PS: mit nem 2.Takt geht das, aber den hab ich nicht zur Verfügung!

Autor: asdf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stichwort synchrones Design! Solche Spielchen mit Latches und Pulsen 
sind gefährlich und werden zwangsläufig zu Problemen führen. Besser 
verwendet man flankengesteuerte D-Flipflops. Anstelle des Pulses wie 
beim Latch kriegen die einen Enable-Eingang. Dieses Signal muss genau 
dann auf High sein, wenn eben die Bedingung (in deinem Fall ein 
Zählerstand) erreicht ist.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Ralph H. (guru)

>Ich brauche einen kurzen H/L Impuls zum Laden eines Latches, der beim
>Erreichen des Höchstzählerstandes erzeugt werden soll.

Was ist an diesem Puls exterm kurz? Warum Latches? Nimm FlipFlops.

>Impuls hab ich zum weiterzählen und Laden genutzt. Das wird ja im CPLD
>so nicht gehen oder?

Nö, diesen Murks aus der TTL-Ära sollte man schnell vergessen, siehe 
Glitch.

>Wie kann ich sowas in VHDL machen ? Haken der Sache ist, der Impuls
>MUSSS!!! am Ende !!! der Taktflanke kommen, der den Höchstzähler standen
>erzeugt.

Bleib mal locker, für dein bissel Gemüse muss man GAR NICHTS groß 
schreiben.

Siehe Taktung FPGA/CPLD.

>PS: mit nem 2.Takt geht das, aber den hab ich nicht zur Verfügung!

Käse. Beschäftige dich mal mit den Grundlagen synchroner 
Schaltungstechnik. Da läuft alles ganz easy mit EINEM Takt.

MFG
Falk

Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> Was ist an diesem Puls exterm kurz? Warum Latches? Nimm FlipFlops.
Weil er nur so kurz wie die Gatterlaufzeit des AND und die Rücksetzzeit 
des Zählers ist !

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So einen Murks macht man in CPLDs/FPGAs nicht. Du kannst doch einen 
synchronen Zähler bauen, und bei Zählerstand 9 erzeugst du den 
reset-Impuls. Bei der nächsten Flanke wird der Zähler zurückgesetzt. 
Völlig glitchfrei von 0 bis 9 gezählt. Den Selben Impuls nimmst du zum 
Weiterzählen der nächsten Zählerstufen. Fertig ist der Lack.
Signal Counter, Counter_2 : unsigned(3 downto 0) := (others => '0');
Signal Reset : std_logic := '0';
 
Process(CLK)
Begin
  if rising_edge(CLK)then
    if Reset = '1' then Counter <= (others => '0');
    else Counter <= Counter + 1;
    end if;
  end if;
end Process;

Reset <= '1' when Counter = 9 else '0';

Process(CLK)
Begin
  if rising_edge(CLK)then
    if Reset = '1' then Counter_2 <= Counter_2 + 1;
    end if;
  end if;
end Process;

Mal schnell 2 kaskadierte 4-Bit Zähler...

Autor: Silvia A. (silvia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph H. schrieb:
> Haken der Sache ist, der Impuls
> MUSSS!!! am Ende !!! der Taktflanke kommen, der den Höchstzähler standen
> erzeugt.

1) Bitte was ?
2) Satzzeichen sind keine Rudeltiere
3) Eine Flanke hat per Definition die Dauer 0.

Autor: 5f (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man,man, man

Und solche äußerungen von einer frau

Tzz

Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@silvia... Vielen Dank für Deinen konstruktiven Beitrag ;-)

@supachris.. Danke für Deinen Beitrag, ich will ja eben diesen 
DigitalMurks nicht machen und hab hier gefragt :-) Aber, müsste der 
Zähler nicht erst bis 10 zählen, ehe Reset aktiv wird? ist ja ein 
Dezimalzähler.

LG Ralph

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph H. schrieb:
> Aber, müsste der Zähler nicht erst bis 10 zählen, ehe Reset aktiv wird?
> ist ja ein Dezimalzähler.
Ein Dezimalzähler zählt von 0...9 und dann wieder von 0..9  und dann 
wieder von vorn...
Idealerweise erreicht er niemals die 10.
Denn 0, 1, 2, 3, 4, 5, 6, 7, 8 und 9 sind bereits 10 Zählschritte.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der "Trick" ist ja, dass der Reset beim 10. Zählerschritt aktiv wird. 
Beim synchronen Design passiert immer alles zum nächsten Taktschritt. 
Daher wird der Reset nach der 9 aktiv und setzt den Zähler auf 0 zurück. 
Was ja bei einer Digitaluhr sinnvoll ist, denn die 10 kannst du auf 
einer Stelle ja nicht mehr darstellen. Der Impuls ist dann genau einen 
Takt lang und kann einwandfrei und sauber zum Weiterzählen der nächsten 
Stelle genommen werden. Wie im Beispiel oben.

Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Leute.. Danke für Eure Hinweise. Es funktioniert :-)

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.