Frage

Ich habe versucht, den Code zu kompilieren

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

aber ich habe den Fehler

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

Was bedeutet es?

War es hilfreich?

Lösung

tut Quartus einige SystemVerilog unterstützen. Siehe diesen Link für Einzelheiten> Quartus Hilfe

Für quartus automatisch erkennen, dass Sie System verwenden Verilog, müssen Sie Ihre Datei aufrufen something.sv

So in diesem Fall wahrscheinlich counter.sv

Wenn die Datei aufgerufen wird counter.v , dann wird eine Fehlermeldung angezeigt. Ich kann bestätigen, dass ist in der Tat mit Quartus II v10.0 kompilieren.

Ich würde empfehlen, Ihr Modul Ausgangstor zu reg ändern, hat Quartus nicht beschweren, aber ein Simulator würde.

output reg [7:0] count

Lassen Sie uns wissen, wie Sie erhalten.

Prost

Andere Tipps

ich glaube, George ist richtig (Hallo George! Möchte dich hier zu sehen), die Datei als Verilog (nicht SystemVerilog) interpretiert wird, und so ist es nicht always_ff nicht versteht.

Auf dem Typ des Ausgangswertes, ziehe ich die Verwendung von Logik in SystemVerilog. Seine Wirkung ist identisch, aber es wird von dem „Erklärtes‚reg‘deshalb ist es ein Register‘ denkt, dass die Menschen aus fangen kann.

Auch der Grund hast du diese Botschaft bestimmten Fehler war, dass, weil sie nicht wissen, was always_ff war, angenommen, es war der Name eines Moduls / interface / Funktion. Ein Modul kann einen Port Karte haben, die mit einem ‚‘, und alles andere würde brauchen eine offene Klammer.

beginnen könnte

Ein weiteres Problem mit diesem Code.

Die Zählvariable wird von einem Verfahrensblock (always_ff) zugeordnet, so dass die Zählvariable Bedürfnisse als Variablentyp deklariert werden, in der Regel Logiktyp für diesen Code SystemVerilog. Die Erklärung sollte folgende beinhalten: Ausgang Logik [7: 0] count

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top