Forum: FPGA, VHDL & Co. Verilog Synthax error


von Chriatian (Gast)


Lesenswert?

Hallo
In diesem code gibt es Synthax Fehler, ich suche sie seit 2 Stunden ohne 
Erfolg.Kann mir bitte jemanden helfen
Danke in Voraus


for(j=0;j<FRAMESIZE;j=j+2) begin: dekodierung
if(data_in[j]==1'b1 && data_in[j+1]==1'b0) begin
  dec_data[k]=1'b0;
  k=k+1;
  end
else begin
 if((data_in[j]==1'b0) && (data_in[j+1]==1'b1)) begin
  dec_data[k]=1'b1;
  k=k+1;
  end
else begin
  dec_data[k]= 1'b1;
  k=k+1;
  end
  end
  end

von Günter -. (guenter)


Lesenswert?

Der Kontext fehlt. War das von dir Absicht nur die for-Schleife zu 
zeigen oder ist das wirklich nur dein Code?

Also ich habe noch hinzugefügt was fehlt und habe keine Syntax Fehler 
nach dem Compilieren erhalten.

Was ich gemacht habe ist die for-Schleife in eine initial block gesteckt 
und das ganze in eine module gepackt. Dann noch die Variablen bzw. 
Register hinzugefügt und das ganze ging dann.

von Chriatian (Gast)


Angehängte Dateien:

Lesenswert?

Hi
hier ist das Programm ohne for Schleife ging alles
mit for schleife 3 Fehler:

Error (10170): Verilog HDL syntax error at man_dec.v(44) near text 
"for";  expecting an identifier ("for" is a reserved keyword ), or 
"endmodule", or a parallel statement
Error (10170): Verilog HDL syntax error at man_dec.v(50) near text "=="; 
expecting ".", or "["
Error (10170): Verilog HDL syntax error at man_dec.v(55) near text "="; 
expecting ".", or "["

von Günter -. (guenter)


Lesenswert?

1. Die for-Schleife ist nicht in dem always block, ist das beabsichtigt?
2. Es gibt ein Mix mit data1_in und data_in. Im module ist data1_in als 
Port deklariert, dann aber data_in als input Port deklariert.
3. Im always-Block der Synchron zu einem clk Signal ist, solltest du 
blocking assignments (<=) nehmen und nicht non-blocking (=). Die 
blocking assignments lassen deine Logik bei der Simulation sich so 
verhalten wie es in der Hardware dann auch sein wird.

von Ronny (Gast)


Lesenswert?

@Christian

Das stimmt!, ohne for Schleife geht es
mit for Scheife geht es nicht.
Sorry ich kann den Fehler nicht sehen
Gruß
Ronny

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.