Kann nicht Sinn für Fehler im System Verilog machen
-
26-09-2019 - |
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?
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önnteEin 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