Pregunta

He intentado compilar el código

module counter(
    input clk,
    input upSignal,
    input downSignal,
    output [7:0] count
   );
        always_ff @(posedge clk) begin
          if (upSignal)
              count <= count + 1;
          else if (downSignal)
              count <= count - 1;
        end
    endmodule

pero me sale el error

Error (10170): Verilog HDL syntax error at counter.v(7) near text "@"; expecting ".", or "("

¿qué significa?

¿Fue útil?

Solución

Quartus es compatible con algunos SystemVerilog. Vea este enlace para obtener más información> Quartus Ayuda

Para quartus a reconocer automáticamente que usted está utilizando el Sistema Verilog, es necesario llamar a su archivo something.sv

Así que en este caso, probablemente counter.sv

Si el archivo se llama counter.v , por lo que recibirá un error. Puedo confirmar que es en efecto compilar con Quartus II v10.0.

Yo recomendaría cambiar su puerto de salida del módulo de registro, Quartus no se quejó, pero un simulador haría.

output reg [7:0] count

Háganos saber cómo le va.

Saludos

Otros consejos

Creo que George es correcto (Hola Jorge! Fancy ver aquí), el archivo está siendo interpretado como Verilog (no SystemVerilog), por lo que no entiende always_ff.

En el tipo del valor de salida, yo prefiero el uso de la lógica en SystemVerilog. Su efecto es idéntico, pero se aleja de la 'reg' "Su declarado por lo tanto, se trata de un 'pensamiento registro que puede atrapar a la gente.

Además, la razón por la que recibió ese mensaje de error particular fue que debido a que no sabía lo que era always_ff, se supuso que era el nombre de un / interfaz / módulo de funciones. Un módulo podría tener un mapa de puerto que podría comenzar con un '', y todo lo demás necesitaría un paréntesis abierto.

Otro problema con este código.

La variable de recuento se asigna a partir de un bloque procedimental (always_ff) por lo que las necesidades variables de recuento para ser declaradas como un tipo de variable, típicamente tipo de lógica para este código SystemVerilog. La declaración debe incluir: salida lógica [7: 0] recuento

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top