No se puede dar sentido a error en Sistema Verilog
-
26-09-2019 - |
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?
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