Ihre zweite Frage zu beantworten:
`Zeitplan ist eine Compiler-Direktive. Compiler Direktiven verursachen können um Abhängigkeiten kompilieren, ist, dass ein anderes Verhalten oder Probleme, die durch die tatsächliche Reihenfolge verursacht werden Sie Ihre Dateien in kompilieren Angenommen, Sie haben drei Dateien:.
fileA.v `timescale 1ns/1ps
fileB.v `timescale 10ns/10ps
fileC.v // no timescale directive
Wenn Sie in dieser Reihenfolge zusammenstellen
fileA.v fileB.v fileC.v
dann wird die Präzision 1ps sein - die kleinste der Kompilierung gefunden - die TIMEUNIT für jede Datei wird sein:
fileA.v 1ns because of the `timescale directive
fileB.v 10ns because of the `timescale directive
fileC.v 10ns because the `timescale directive from fileB.v continues to have an effect
Wenn Sie in dieser Reihenfolge
fileA.v fileC.v fileB.v
dann die Präzision 1ps wird kompilieren - die kleinste der Kompilierung gefunden - die TIMEUNIT für jede Datei wird sein:
fileA.v 1ns because of the `timescale directive
fileB.v 10ns because of the `timescale directive
fileC.v 1ns because the `timescale directive from fileA.v continues to have an effect
Wenn Sie in dieser Reihenfolge zusammenstellen
fileC.v fileA.v fileB.v
dann erhalten Sie einen Fehler, weil es illegal ist, eine Datei ohne timescale directive appearing before any file with a
Zeitskala Direktive zu haben. (Obwohl es in Ordnung ist, wenn keine Datei eine 'Zeitskala-Direktive' hat).
timeunit
und timeprecision
sind neuere, System-Verilog Möglichkeiten, das gleiche zu erreichen. Da sie keine Compiler-Direktiven sind, leiden sie nicht unter den damit verbundenen Problemen. Sie gelten nur für den Bereich ($ unit/package/module/program/interface), in dem sie verwendet werden (und müssen in diesem Bereich an erster Stelle stehen).
Wenn Sie timeunit
und timeprecision
sowie eine timescale directive then
TIMEUNIT and
timeprecision` Priorität.
Um Ihre erste Frage nicht zu beantworten: Ich konnte Ihr Problem nicht reproduzieren. Hier ist [mein Versuch] (https://www.edaplayground.com/x/aP_). Bitte könnten Sie einen [MCVE] (http://stackoverflow.com/help/mcve) posten. Ich bemerke jedoch, dass Sie "Zeitskala 1 ns/1 ps" geschrieben haben. Dies sollte 'Zeitskala 1ns/1ps sein. Vielleicht ist das dein Problem? –
Diese Begriffe sind vollständig in der freien IEEE Std 1800-2012 beschrieben. – toolic
Ja, ich denke, Sie sollten die Leerzeichen in 'Zeitskala' entfernen und erneut prüfen –