Signal für genau einen Takt setzen?

rindphi
Mausschubser
Mausschubser
Beiträge: 55
Registriert: 3. Sep 2009 20:52
Kontaktdaten:

Signal für genau einen Takt setzen?

Beitrag von rindphi »

Hey!

Ich habe ein kleines Problem: Und zwar würde ich gerne im Rahmen des Praktikums ein Reset-Signal für genau für einen Takt setzen, sobald eine positive Flanke eines Eingangssignals d_in entdeckt wurde. Dabei komme ich immer zu dem Problem, dass ich irgendwelchen Signalen Werte in mehreren Always-Blöcken zuweisen müsste, was ja nicht synthetisierbar ist.

Kurz: Wie lässt sich daraus:

Code: Alles auswählen

always @(posedge d_in)
begin
  reset <= 1;
  #1;
  reset <= 0;
end
synthetisierbarer Code machen? Ich hielt das anfangs für trivial, komme nun aber schon seit geraumer Zeit nicht weiter. Ein besonderes Problem ist, dass d_in über mehrere Takte den Wert 1 behalten kann.
Bedanke mich im Voraus für jede Hilfe!

Grüße,
Dominic

rindphi
Mausschubser
Mausschubser
Beiträge: 55
Registriert: 3. Sep 2009 20:52
Kontaktdaten:

Re: Signal für genau einen Takt setzen?

Beitrag von rindphi »

Habe jetzt einen Workaround gefunden, der das Signal zwar für zwei Takte setzt, aber damit komme ich klar (überspringe einfach 2 Ziffern in meinem Counter):

Code: Alles auswählen

always @(negedge clk)
		old_val <= d_in;
	
always @(negedge clk)
	if (d_in != old_val)
		reset <= d_in;
	else
		reset <= 0;
Brauche also ein zusätzliches Register old_val. Kennt trotzdem jemand eine Möglichkeit, bei der man statt zwei Takte das Signal auch einen Takt setzen kann? Ist aber nicht so wichtig, reine Kosmetik ;-)

Benutzeravatar
s_hess
Ehemalige Fachschaftler
Beiträge: 31
Registriert: 17. Okt 2006 11:18
Wohnort: Frankfurt
Kontaktdaten:

Re: Signal für genau einen Takt setzen?

Beitrag von s_hess »

Kannst am Donnerstag oder Freitag gerne mal in meine Sprechstunde kommen,

oder Du probierst mal den Ansatz des resets aus der 3. Vorlesung.

Hier ist der Link zu den Folien: http://www.ra.informatik.tu-darmstadt.d ... _cms_3.pdf

Liebe Grüße

Sören
Sämtliche Schreibfehler dienen ausschliesslich zur Belustigung
der Beteiligten.

es ist eagl wie man die Wtröer shrcbiet, es
ist nur Whtciig den eetrsn und den lzeetn
Bhsuctbaen rhticig zu sbeihcren!!!

Benutzeravatar
MisterD123
Geek
Geek
Beiträge: 811
Registriert: 31. Okt 2006 20:04
Wohnort: Weiterstadt

Re: Signal für genau einen Takt setzen?

Beitrag von MisterD123 »

ne ecke kürzer:

Code: Alles auswählen

always @(negedge clk) begin
   reset <= !old_val & d_in;
   old_val <= d_in;
end
ich weiß jetzt grade nicht, wie viele takte der das signal setzt, aber ich *denke* es sollte nur einen takt lang gesetzt sein.. aber ich seh auch nicht warum es bei deiner variante zwei takte gesetzt ist.

ich glaube, so könnte man sogar nur "=" statt "<=" benutzen, aber hab da viel zu lang nich mehr mit gearbeitet ;p

Antworten

Zurück zu „Archiv“