wie output wire in always Block zuweisen?

Benutzeravatar
Blub
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 244
Registriert: 24. Dez 2007 14:06

wie output wire in always Block zuweisen?

Beitrag von Blub »

hi,

ja eventuell dumme Frage. In H2.2 soll ja error = 1 sein, wenn ein Fehler da ist, und = 0, wenn alles ok ist. Nur wie weisst man den error in einem always block zu?
Da eine Taktflanke anliegt muss wohl ein always block drin sein in dem alles geschieht, nur immer wenn man darin etwas zuweisen will gibt es den Fehler:
Reference to scalar wire 'error' is not a legal reg or variable lvalue

Beispielsweise hier:
always @(posedge clk)
begin
assign error = 1;
end


Kann mir wer nen Tipp geben wie man den zuweist, irgendwie steh ic hgerade voll auf dem schlauch .__.


Danke,
Christian
Tutor GDI II SS12
Tutor Trusted Systems WS11/12, Tutor GDI II SS11
Tutor Trusted Systems WS10/11, GDI I WS10/11
Tutor GDI II SS10, Tutor Trusted Systems WS09/10

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: wie output wire in always Block zuweisen?

Beitrag von dschneid »

assign gibt's nicht in Blöcken. Wenn mich meine Erinnerung nicht täuscht, müsste es mit "error <= 1;" gehen. Dazu muss error als reg deklariert sein.

Benutzeravatar
Blub
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 244
Registriert: 24. Dez 2007 14:06

Re: wie output wire in always Block zuweisen?

Beitrag von Blub »

jo, aber das output wire ist ja vorgegeben.

Ich könnte natürlich alles in ein weiteres Modul auslagern, aber ich dachte mal das ist nicht sinn der Sache :-/
Tutor GDI II SS12
Tutor Trusted Systems WS11/12, Tutor GDI II SS11
Tutor Trusted Systems WS10/11, GDI I WS10/11
Tutor GDI II SS10, Tutor Trusted Systems WS09/10

franzose
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 146
Registriert: 9. Okt 2009 00:08

Re: wie output wire in always Block zuweisen?

Beitrag von franzose »

Mit ein wenig kombinatorischer Logik kann braucht man nicht error als Reg benutzen.
Also ich habe es hinbekommen, ohne jemals in dem error konkret den Wert 0 oder 1 zu speichern (dies geht in der Tat nicht in always@(posedge clk) Blöcken mit assign wire)

koch
Dozentin/Dozent
Beiträge: 221
Registriert: 4. Jul 2005 11:08

Re: wie output wire in always Block zuweisen?

Beitrag von koch »

In always-Blöcken kann prozedural (also mit = und <=) nur an reg-Variablen zugewiesen werden. Wires können Daten nur durch ein assign, die entsprechende Verbindung bei der wire Deklaration oder durch Anschluss an eine Modulinstanz bekommen.

jls
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 18. Okt 2009 13:02

Re: wie output wire in always Block zuweisen?

Beitrag von jls »

So wie ich das sehe brauchen wir bei der H2.1 an einer Stelle aber auch die Möglichkeit, an wires einen Wert innerhalb eines always Blocks anzulegen. Wie ist das denn jetzt möglich? :/

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Re: wie output wire in always Block zuweisen?

Beitrag von Thorti »

jls hat geschrieben:So wie ich das sehe brauchen wir bei der H2.1 an einer Stelle aber auch die Möglichkeit, an wires einen Wert innerhalb eines always Blocks anzulegen.
Warum? Dann musst du dein Design ändern.
Wie ist das denn jetzt möglich? :/
Garnicht.

Gruß
Thorsten
Assistent zur Vorlesung TGDI im WS 11/12

gravok
Erstie
Erstie
Beiträge: 15
Registriert: 24. Feb 2010 20:51

Re: wie output wire in always Block zuweisen?

Beitrag von gravok »

jls hat geschrieben:So wie ich das sehe brauchen wir bei der H2.1 an einer Stelle aber auch die Möglichkeit, an wires einen Wert innerhalb eines always Blocks anzulegen. Wie ist das denn jetzt möglich? :/
Es ist möglich an das Wire ein Reg anzulegen, dass du dann manipulieren kannst. Falls dir das hilft.

Code: Alles auswählen

module test(input clk, output foo);

reg bar;
assign foo = bar;

always @(posedge clk)
      bar <= ~bar;

endmodule
Grüße

Antworten

Zurück zu „Archiv“