Forum: FPGA, VHDL & Co. Puls-Erzeugung


von Thomas (Gast)


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 ?????

von Sssssss (Gast)


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;

von Sssssss (Gast)


Lesenswert?

ups da fehlt noch das begin und end process;
;)

von Kest (Gast)


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

von Tom (Gast)


Lesenswert?

@ Kest:

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

Gurß
Tom

von Heiner B. (karadur)


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.

von Kest (Gast)


Lesenswert?

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


Gruß

Kest

von Kest (Gast)


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

von TOM (Gast)


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

von FPGA-User (Gast)


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)

von TOM (Gast)


Lesenswert?

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

von Heiner B. (karadur)


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.

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.