código de verilog de error de sintaxis

0

este subcódigo que lee la línea de selección s4-s1 y toma la suma de a, b en la línea de selección = 0000. Al ejecutar este código en el negociador de proyectos ISE, da un error de sintaxis. Dile "Syntax error near"=" "en la línea z = 0 en la sentencia if

puedes decirme por qué?

module one1(a,b,s1,s2,s3,s4,f );
  input s1,s2,s3,s4;
  input [3:0] a,b;
  output reg [3:0] f;

  reg  z,n,c;

  //0000

  if ({s4,s3,s2,s1} == 4'b0000)
  begin
    assign {c,f}= a+b; 
    if (f==0) 
      z=1;         //here is the error 
    else z=0;
    n=f[3];
  end

endmodule
    
pregunta sepeee

1 respuesta

4

Dos problemas:

  1. Necesitas envolver un bloque siempre alrededor de tu lógica combinacional. Algo como siempre @ * comenzar

luego ponga su declaración if allí.

  1. No puedes asignar un cable dentro de un bloque siempre. necesitas un registro
respondido por el crgrace

Lea otras preguntas en las etiquetas