24.12.2012 Aufrufe

Schaltungsdesign mit VHDL

Schaltungsdesign mit VHDL

Schaltungsdesign mit VHDL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

9 Besonderheiten bei Signalen<br />

Die Auflösungsfunktion wird bei jeder Signalzuweisung implizit aufgerufen<br />

und berechnet den neuen Signalwert aus den Beiträgen der<br />

einzelnen Treiber. Theoretisch können alle verwendeten Ports und Signale<br />

<strong>mit</strong> aufgelöstem Typ deklariert werden. Der implizite Aufruf der<br />

entsprechenden Funktion bei jeder Signalzuweisung erhöht die Simulationszeit<br />

jedoch ganz erheblich.<br />

Auflösungsfunktionen müssen beliebig viele Treiber berücksichtigen<br />

können und einen Defaultwert zurückliefern, falls keiner der Treiber<br />

aktiv einen Signalpegel erzeugt (siehe nachfolgenden Abschnitt über<br />

kontrollierte Signale und DISCONNECT-Anweisung).<br />

Am Beispiel einer 4-wertigen Logik mvl4 <strong>mit</strong> den möglichen<br />

Signalwerten 'X', '0', '1', 'Z' soll das typische Vorgehen bei der<br />

Deklaration von aufgelösten Signalen und Auflösungsfunktionen erläutert<br />

werden:<br />

PACKAGE fourval IS<br />

TYPE mvl4 IS ('X', '0', '1', 'Z');<br />

TYPE mvl4_vector IS ARRAY (natural RANGE ) OF mvl4;<br />

FUNCTION resolved (a: mvl4_vector) RETURN mvl4;<br />

SUBTYPE mvl4_r IS resolved mvl4;<br />

TYPE mvl4_r_vector IS ARRAY (natural RANGE ) OF mvl4_r;<br />

END fourval;<br />

Nach Deklaration des Basistyps mvl4 und des entsprechenden Vektors<br />

mvl4_vector wird die Funktion resolved bekanntgegeben.<br />

Ihre Funktionalität wird im nachfolgend aufgeführten Package Body<br />

beschrieben. Daraufhin kann ein aufgelöster Untertyp mvl4_r abgeleitet<br />

werden. Der aufgelöste Vektortyp mvl4_r_vector besteht<br />

wiederum aus aufgelösten Einzelelementen.<br />

© G. Lehmann/B. Wunder/M. Selz 195

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!