ein synchronisieren zum Wahrscheinlich nicht letzten mal

Gast #3554694
Lesenswert?
• ▲
▼
Hallo Zusammen,
ich habe eine Anfänger Frage:
Was macht dieser Code ?
Ich weiß was ein synchronisieren ist aber:

Wieso ist EPP_strobe_reg ein Schieberegister ?
Was ist der Eingang des Schieberegister ?
Vielleicht verstehe ich auch den Syntax einfach nicht.
Ich kann mir schon denken, das die Änderungen an EPP_strobe in das 
Register geschoben werden. Ich sehe das aber nicht am Code.
Das ist doch nur eine Zuweisung und eine Zusammenfassung.

// Use a 3-taps shift register to synchronize EPP_strobe to our clock

wire EPP_strobe = EPP_data_strobe | EPP_addr_strobe;  // only one is 
active at a time
reg [2:0] EPP_strobe_reg;
always @(posedge clk) EPP_strobe_reg <= {EPP_strobe_reg[1:0], 
EPP_strobe};

code kommt von da:

http://www.fpga4fun.com/EPP4.html

Vielen Dank schon mal !
#3554733
Lesenswert?
• ▲
▼
@ Sync (Gast)

>Das ist doch nur eine Zuweisung und eine Zusammenfassung.

>reg [2:0] EPP_strobe_reg;

Definert ein 3 Bit Register

>always @(posedge clk) EPP_strobe_reg <= {EPP_strobe_reg[1:0],
>EPP_strobe};

Das ist ein einfaches Schieberegister, das mit jeder positiven 
Taktflanke Daten schiebt. Als LSB kommt EPP Strobe rein und wird über 
drei Bits geschoben.

Das ist der klassische Ansatz zum Synchronisieren von 
Daten/Steuersignalen zwischen asynchronen Taktsystemen. Der Takt vom 
CPLD ist asynchron zum PC und damt den EPP Signalen.
Gast #3554785
Lesenswert?
• ▲
▼
@  Falk Brunner

Vielen Dank ich dachte mir das schon.

Ich bin damit nicht klargekommen, weil zum Beispiel hier in 1) nur von 
Zusammenfassen die rede ist:
1) 
http://e21.frm2.tum.de/fileadmin/user_upload/documents/lectures/epraktikum/kapitel03.pdf

"Mit geschweiften Klammern können mehrere 'wire' zu
einem gemeinsamen Bus zusammengefasst werden:"
wire [31:0] databus = {b1,b2,b3,b4};

Darf ich noch fragen was ergibt dann folgendes Konstrukt.
reg [2:0] EPP_strobe_reg;
always @(posedge clk) EPP_strobe_reg <= 
{EPP_strobe_reg[1:0],EPP_strobe,in1};

Also wenn EPP_strobe der Eingab des Schieberegister ist, wohin gehen 
dann nachfolgende Signale.
Gibt es das irgentwo zum Nachlesen mit dem Operator {a,b,c} angewedet 
auf Registern.
Danke Nochmal
Gast #3558290
Lesenswert?
• ▲
▼
Sync schrieb:
> reg [2:0] EPP_strobe_reg;
> always @(posedge clk) EPP_strobe_reg <=
> {EPP_strobe_reg[1:0],EPP_strobe,in1};

Das wird nix gutes:  du versuchst 4 bit in einem 3 bit Register zu 
"speichern". Müsstest nen Fehler bekommen bei der Synthese mindestens ne 
Warnung... bin mir nicht 100 pro sicher. Hab glaube ich vor nen paar 
Wochen durch nen Schreibfehler ähnliches versucht, kam nen Fehler von 
der ISE.
Und was soll das in1 sein, woher kommt das?
Gast #3558833
Lesenswert?
• ▲
▼
Danke schon mal für eure Antworten !

Aber ich glaube, es ist irgend etwas mehr basisches was ich nicht 
verstehe.
Wenn ich schreibe
reg [2:0] EPP_strobe_reg;.
Gehe ich davon aus, das ich drei unabhängige FilpFlops habe oder nicht?
Woher kann man wissen, das wenn man
always @(posedge clk) EPP_strobe_reg <= 
{EPP_strobe_reg[1:0],EPP_strobe};
der z.B Qn-1 Ausgang eines Registers mit dem nächsten Dn Eingang des 
nachfolgenden Registers verbunden ist (was ja dann ein Schieberegister 
währe).

Vielleicht habe ich es wirklich nicht verstanden oder mir Fehlt ein 
Hinweis.

Danke noch mal.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.