www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Puls-Erzeugung


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich habe ein Signal mit einer steigenden und fallenden Flanke, das
zyklisch wiederholt wird

_______|---------------|_________________|-----------|______________

Wie ist es möglich nur an der fallenden Flanke einen Puls zu erzeugen ?
Das ganze soll so aussehen

_______|--------------|___________________|-----------|_____________

______________________|-|______________________________|-|__________

Ist so etwas möglich ? Wenn ja wie ?????

Autor: Sssssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in etwa so:

signal old_state: std_logic;
process(clk)
if reset = '1' then
 out <= '0';
 old_state <= '0';
elsif rising_edge(clk) then
 if (old_state = '1' and in='0') then
  out <= '1;
 else
  out <= '0';
 end if;
 old_state <= in;
end if;

Autor: Sssssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups da fehlt noch das begin und end process;
;)

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
process(clk, nReset)
begin
 if nReset='0' then
 ...
 elsif clk'event and clk='1' then
   s1 <= DeinSignal;
   s2 <= s1;
 end if;
end process;

Signal_FALL <= not s1 and s2; --das ist jetzt die fallende Flanke
Signal_RISE <= s1 and not s2; -- und das ist die steigende Flanke

Bitteschön,

Kest

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Kest:

Macht es eigentlich einen Unterschied, ob die Signal FALL und RISE
innerhalb des Prozesses stehen, oder nicht?!?

Gurß
Tom

Autor: Heiner Bm (karadur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

geht auch mit einem NOR-Gatter und einer ungeraden Anzahl von
Invertern. Signal einmal direkt ans NOR und einmal auf den ersten
Inverter. Die Inverter alle in Reihe schalten und den letzten Ausgang
auf das NOR-Gatter. Am Ausgang des NOR-Gatters ist dann das gewünschte
Signal.

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Unterschied besteht darin, dass, wenn die Signale im Prozess stehen,
FlipFlops entstehen. Sonst hast Du einfach einen (oder zwei) Gatter.


Gruß

Kest

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karadur:

hab jetzt nicht verstanden, wie es funktionieren soll (mit NOR). Wo ist
die Zeitliche Abhängigkeit? Ohne FlipFlops klappt es nähmlich nicht.

Kest

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karadur:
Du meinst xor, nicht nor, oder?
Sonst versteh ich es nicht. Aber selbst dann bekommst du doch auch bei
Steigender Flanke einen Impuls.

Gruß

Tom

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das geht schon mit dem NOR, es gibt nur bei der
fallenden Flanke einen Impuls.

In "programmierbarer Logik" würde ich das aber nicht
empfehlen, solche Designs können ein lustiges
Eigenleben entwickeln. (Aber es steht natürlich jedem
frei, seinem Chef zu erklären, warum man 2 Wochen
mehr Fehlersuche gebraucht hat)

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ahh, ja, stimmt. Denkfehler.
(wenn "ungerade" steht sollte man auch "ungerade" denken)

Autor: Heiner Bm (karadur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ TOM

mit NOR bei der fallenden Flanke
mit NAND an der steigenden Flanke
mit XOR an beiden Flanken
Dieses klappt mit Gattern hervorragend.
Ich hatte diesen Thread über die Übersicht gesehen und nicht gesehen
das er in der Gruppe "Programmierbare Logik" steht.
Hier wird wahrscheinlich jede Optimierung die Anzahl der Inverter auf 1
setzen und die Laufzeiten die der Schaltung zu Grunde liegen werden in
FPGAs wahrscheinlich zu kurz sein.

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.