2012-04-02 10 views
1

Die Verilog Golden Reference Guide auf Seite 12 warnt vor unsynthetischen always Blöcken und gibt Templates an, die befolgt werden müssen, um die Wahrscheinlichkeit zu verringern, dass unsynthetisierbare always Blöcke erzeugt werden. Die Anleitung erklärt jedoch nicht, warum und in welchen Situationen ein always-Block nicht synthetisierbar ist.Synthese von `always` Blöcken

Was sind die häufigsten Gründe dafür, dass ein always Block nicht synthetisch sein kann?

+0

Ähnlich wie Fragen zur normalen, prozeduralen Code-Leistung ist eine der besten Möglichkeiten, um zu sehen, was passiert, es zu versuchen. Schreiben Sie ein Beispiel, führen Sie es durch den Design-Compiler von Synopsys und betrachten Sie die generierte [Netzliste] (http://en.wikipedia.org/wiki/Netlist) mit einem Schaltplan-Viewer. [SpringSofts] (http://www.springsoft.com/) Debussy/Verdi ist das Beste, wenn Sie Zugang dazu bekommen können. –

Antwort

2

Grundsätzlich beschreibt jeder Block immer eine Gruppe von Flipflops, eine Gruppe von Latch oder einen Block von kombinatorischen Schaltungen.

Diese drei haben unterschiedliche Kodierungsformate und sollten nicht gemischt werden, da sie sonst nicht synthetisierbar sind. (manchmal Latch und Kombination Schaltung und gemischt werden, aber sollte vermieden werden)

Alle immer Blöcke, die nicht zugeordnet werden können diese drei Arten von Schaltungen sind nicht synthetisierbar.

Zum Beispiel ist eine gemischte empfindliche Liste von Signalen und Flanken nicht synthetisierbar, da ein Flipflop nicht gleichzeitig flanken- und pegelgetriggert werden kann.

Mehr als zwei Uhren sind nicht synthetisierbar.

Eingebettete immer Blöcke sind nicht synthetisierbar.

1

Hinzufügen von Timing-Verzögerungen wäre nicht synthetisierbar, wird aber häufig bei der Verifizierung verwendet. Auch einige Tools werden sich beschweren, wenn Sie versuchen, Anzeigeanweisungen zu synthetisieren.

always @* begin 
$display("%t", $realtime); 
#1 x = y;     //Delayed by 1 time unit 
$display("%t", $realtime); 
end 
Verwandte Themen