Question

J'ai essayé de compiler le code

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

mais je reçois l'erreur

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

qu'est-ce que cela signifie?

Était-ce utile?

La solution

Quartus prend en charge certains SystemVerilog. Voir ce lien pour plus de détails> Quartus Aide

Pour quartus de reconnaître automatiquement que vous utilisez un système de Verilog, vous devez appeler votre fichier something.sv

Donc dans ce cas, probablement counter.sv

Si votre fichier est appelé counter.v , vous obtiendrez une erreur. Je peux confirmer que est ne compile en effet avec Quartus II v10.0.

Je recommande de changer votre port de sortie du module à reg, Quartus ne se plaignait pas, mais un simulateur serait.

output reg [7:0] count

Faites-nous savoir comment vous allez.

Vive

Autres conseils

Je pense que George est juste (Bonjour George! On se retrouve), le fichier est interprété comme Verilog (non SystemVerilog), et il ne comprend pas always_ff.

Sur le type de la valeur de sortie, je préfère l'utilisation de la logique dans SystemVerilog. Son effet est identique, mais il se éloigne de la « Son déclaré « reg » donc il est un registre » pensée qui peut attraper les gens.

En outre, la raison pour laquelle vous avez obtenu ce message d'erreur particulière était que parce qu'elle ne savait pas ce qui était always_ff, il a supposé que c'était le nom d'un module / Interface / fonction. Un module pourrait avoir une carte de port qui pourrait commencer par un « », et tout le reste besoin d'une parenthèse ouverte.

Un autre problème avec ce code.

La variable de comptage est affectée à partir d'un bloc de procédure (de always_ff) de sorte que les besoins variables de comptage à être déclarés comme un type de variable, généralement de type logique pour cette SystemVerilog. La déclaration devrait inclure: sortie logique [7: 0] count

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top