Dinatos synchrone vs asynchrone Zuweisungen
-
- BASIC-Programmierer
- Beiträge: 125
- Registriert: 14. Okt 2007 14:59
- Wohnort: Kriftel
- Kontaktdaten:
Dinatos synchrone vs asynchrone Zuweisungen
Hallo,
habe noch eine Frage^^. Beim Dinatos-Zustandsdiagramm bei den ausgeführten Befehlen wird ja meist ein synchroner Operator <- verwendet (Zuweisung an Register) und einmal bei Zustand 5 (STA) der asynchrone Operator := (Zuweisung an Speicher).
Weiß jemand wieso dieser Unterschied gemacht wird? Und ich nehme mal an das sich das synchrone Verhalten hier nur darauf bezieht was innerhalb eines Zustands passiert, wieso ist synchron oder asynchron dann überhaupt von Bedeutung solange nur eine Anweisung ausgeführt wird?
Danke^^ VG Andre
habe noch eine Frage^^. Beim Dinatos-Zustandsdiagramm bei den ausgeführten Befehlen wird ja meist ein synchroner Operator <- verwendet (Zuweisung an Register) und einmal bei Zustand 5 (STA) der asynchrone Operator := (Zuweisung an Speicher).
Weiß jemand wieso dieser Unterschied gemacht wird? Und ich nehme mal an das sich das synchrone Verhalten hier nur darauf bezieht was innerhalb eines Zustands passiert, wieso ist synchron oder asynchron dann überhaupt von Bedeutung solange nur eine Anweisung ausgeführt wird?
Danke^^ VG Andre
- seth2k1
- Endlosschleifenbastler
- Beiträge: 153
- Registriert: 29. Sep 2006 00:53
- Wohnort: Darmstadt - Eberstadt
Re: Dinatos synchrone vs asynchrone Zuweisungen
Naja, du musst bedenken, dass bei der Synchronen Zuweisung der Wert in den Master geschrieben wird, wohingegen der Slave noch weiterhin seinen alten Wert besitzt. Erst in der zweiten Phase erhält der Slave den neuen Wert.
Probleme gibt es beispielsweise bei Rückkopplungen, wenn du asynchron speichern wolltest. (bspw statt a := a + 1 immer a <- a + 1)
edit: War etwas voreilig. Warum dort unterschieden wird kann ich dir nicht sagen. Sorry.
Probleme gibt es beispielsweise bei Rückkopplungen, wenn du asynchron speichern wolltest. (bspw statt a := a + 1 immer a <- a + 1)
edit: War etwas voreilig. Warum dort unterschieden wird kann ich dir nicht sagen. Sorry.
"Hallo, ich verkaufe diese modischen Lederjacken!"
-
- BASIC-Programmierer
- Beiträge: 125
- Registriert: 14. Okt 2007 14:59
- Wohnort: Kriftel
- Kontaktdaten:
Re: Dinatos synchrone vs asynchrone Zuweisungen
hm ok. Zu deiner Anmerkung wegen Rückkopplung: überträgt sich das auch auf Verilog, also die Operatoren <= und =? Dachte bislang, der Unterschied zwischen diesen sei lediglich ob die Anweisung blockt (=) oder nicht (<=), also ob gleich mit der Ausführung der nächsten Anweisung begonnen wird.
-
- Computerversteher
- Beiträge: 325
- Registriert: 11. Dez 2005 13:14
- Wohnort: Darmstadt
Re: Dinatos synchrone vs asynchrone Zuweisungen
Ja, das mit der Rückkopplung gilt auch in Verilog.andre_w hat geschrieben:hm ok. Zu deiner Anmerkung wegen Rückkopplung: überträgt sich das auch auf Verilog, also die Operatoren <= und =? Dachte bislang, der Unterschied zwischen diesen sei lediglich ob die Anweisung blockt (=) oder nicht (<=), also ob gleich mit der Ausführung der nächsten Anweisung begonnen wird.
"I believe in the fundamental interconnectedness of all things." (Dirk Gently)
-
- BASIC-Programmierer
- Beiträge: 125
- Registriert: 14. Okt 2007 14:59
- Wohnort: Kriftel
- Kontaktdaten:
Re: Dinatos synchrone vs asynchrone Zuweisungen
ok danke. Das heißt ein folgendermaßen programmierter Counter würde nicht funktionieren?
Was würde er denn machen statt zu zählen? Sorry wenn ich etwas langsam beim Verstehen hier bin 
Code: Alles auswählen
module counter(clk, enable, count);
input clk, enable;
output [3:0] count;
reg [3:0] count;
initial count = 0;
always @(posedge clk)
if (enable) count = count + 4’b1;
endmodule

- seth2k1
- Endlosschleifenbastler
- Beiträge: 153
- Registriert: 29. Sep 2006 00:53
- Wohnort: Darmstadt - Eberstadt
Re: Dinatos synchrone vs asynchrone Zuweisungen
zählen würde er schon, es ist eher die frage wie die daraus resultierende hardware aussieht 

"Hallo, ich verkaufe diese modischen Lederjacken!"
-
- Computerversteher
- Beiträge: 325
- Registriert: 11. Dez 2005 13:14
- Wohnort: Darmstadt
Re: Dinatos synchrone vs asynchrone Zuweisungen
Du musst unterscheiden zwischen Simulation und Synthese. Was die Simulation mit dem Code machen würde, kann ich gerade nicht testen. Synthese-fähig ist der Code aber sicherlich nicht, weil du durch count = count + 1; eine asynchrone Rückkopplung hast.andre_w hat geschrieben:ok danke. Das heißt ein folgendermaßen programmierter Counter würde nicht funktionieren?
Was würde er denn machen statt zu zählen? Sorry wenn ich etwas langsam beim Verstehen hier binCode: Alles auswählen
module counter(clk, enable, count); input clk, enable; output [3:0] count; reg [3:0] count; initial count = 0; always @(posedge clk) if (enable) count = count + 4’b1; endmodule
Allgemein ist die Faustregel: Bei flankengesteuerten always-Blöcken immer <= verwenden, bei pegelgesteuerten immer =.
"I believe in the fundamental interconnectedness of all things." (Dirk Gently)
-
- BASIC-Programmierer
- Beiträge: 125
- Registriert: 14. Okt 2007 14:59
- Wohnort: Kriftel
- Kontaktdaten:
Re: Dinatos synchrone vs asynchrone Zuweisungen
Faustregeln sind immer gut, vielen DankChristoph-D hat geschrieben:Allgemein ist die Faustregel: Bei flankengesteuerten always-Blöcken immer <= verwenden, bei pegelgesteuerten immer =.

Re: Dinatos synchrone vs asynchrone Zuweisungen
Hallo zusammen,
der Code des Zählers läßt sich auch so (mit =) synthetisieren und die Hardware ist identisch.
In diesem einfachen Beispiel spielt es für das Syntheseprogramm keine Rolle ob Ihr = oder <= verwendet.
Solltet Ihr aber eine Pipeline beschreiben, z.B. in der Form
R1 <= R0;
R2 <= R1;
usw.
muß das non-blocking Statement verwendet werden.
Wenn Ihr
R1 = R0;
R2 = R1;
schreibt, wird daraus
R2 = R0;
Für weitere Infos/Beispiele sei auf die CMS-Folien verwiesen.
Viel Erfolg morgen
Wolfgang
der Code des Zählers läßt sich auch so (mit =) synthetisieren und die Hardware ist identisch.
In diesem einfachen Beispiel spielt es für das Syntheseprogramm keine Rolle ob Ihr = oder <= verwendet.
Solltet Ihr aber eine Pipeline beschreiben, z.B. in der Form
R1 <= R0;
R2 <= R1;
usw.
muß das non-blocking Statement verwendet werden.
Wenn Ihr
R1 = R0;
R2 = R1;
schreibt, wird daraus
R2 = R0;
Für weitere Infos/Beispiele sei auf die CMS-Folien verwiesen.
Viel Erfolg morgen
Wolfgang
-
- BASIC-Programmierer
- Beiträge: 125
- Registriert: 14. Okt 2007 14:59
- Wohnort: Kriftel
- Kontaktdaten:
Re: Dinatos synchrone vs asynchrone Zuweisungen
Vielen Dank für die Aufklärung! Mein Anfangspost ist damit zwar noch nicht geklärt aber ich denke mal das wird auch nicht so entscheidend sein.
Re: Dinatos synchrone vs asynchrone Zuweisungen
Hallo,
ja richtig.
Entschuldigung.
Ich hab Prof. Hoffmann auch mal danach gefragt, weil mir das letztens (ich glaube Silvia hatte mich gefragt)
aufgefallen ist. Er konnt´s mir auch nicht erklären. Ich werde meinen Kollegen nochmal darauf ansprechend.
Evt. wird´s dann korrigieren oder ausführlich erläutern.
Würde ich mir keinen Kopf drum machen.
Wolfgang
ja richtig.
Entschuldigung.
Ich hab Prof. Hoffmann auch mal danach gefragt, weil mir das letztens (ich glaube Silvia hatte mich gefragt)
aufgefallen ist. Er konnt´s mir auch nicht erklären. Ich werde meinen Kollegen nochmal darauf ansprechend.
Evt. wird´s dann korrigieren oder ausführlich erläutern.
Würde ich mir keinen Kopf drum machen.
Wolfgang
- seth2k1
- Endlosschleifenbastler
- Beiträge: 153
- Registriert: 29. Sep 2006 00:53
- Wohnort: Darmstadt - Eberstadt
Re: Dinatos synchrone vs asynchrone Zuweisungen
hi, ich weiss nich ob du das noch vor der klausur liest.. es wird aber glaub au nich allzu relevant sein, aber ich hab mir gestern nochma gedanken drüber gemacht. es wird in den speicher immer asynchron geschrieben, nur das speichern in register erfolgt synchron. im speicher muss der wert ja sofort verfügbar sein, damit er von anderen prozessen direkt genutzt werden kann. so würde ich mir das erklären.
greetz und viel erfolg
greetz und viel erfolg
"Hallo, ich verkaufe diese modischen Lederjacken!"
-
- BASIC-Programmierer
- Beiträge: 125
- Registriert: 14. Okt 2007 14:59
- Wohnort: Kriftel
- Kontaktdaten:
Re: Dinatos synchrone vs asynchrone Zuweisungen
danke habs nicht mehr vorher gelesen aber kam ja auch nicht dran 
