Hardware Reference
In-Depth Information
f 2 z2
tZ2 tZ2 tZ2 f 3 y
z1
tZ1
tY
x tX f 1
tZ1
signalT:
;
T
STDLOGIC
signalx:tX;
Simulationsmodell
signalz1:tZ1;
Package
signalz2:tZ2;
package...is
signaly:tY;
[sub]typetXis...
...
[sub]typetZ1is...
Abtastprozess:process(T)
[sub]typetZ2is...
begin
[sub]typetYis...
if
RISINGEDGE (T)then
z1<=f1(x);
functionf1(x:tX)returntZ1is...
z2<=f2(z1,z2);
functionf2(x1:tZ2;x2:tZ2)
endif;
returntZ2is...
endprocess;
Ausgabe:y<=f3(z2);
functionf3(x:tZ2)returntYis...
endpackage;
Abb. 3.18. Auslagerung der Beschreibungen der kombinatorischen Verarbeitungs-
funktionen einer sequenziellen Schaltung in ein Package
Register-Transfer-Funktion mit dem nachfolgenden Zustandsregister. Die ne-
benläufige Zuweisung des Funktionswertes von »f3(...)« an das Ausgabesignal
beschreibt die Ausgabefunktion.
Ein wesentlicher Aspekt der hier empfohlenen Entwurfsstrukturierung ist
der hierarchische Test. Jedes Entwurfsobjekt ist in der Beschreibungseinheit,
in der es definiert ist, so gründlich zu testen, dass es bei seiner Nutzung auf
der nächsthöheren Hierarchieebene genügt, nach Fehlern bei der Interaktion
zwischen den Teilsystemen zu suchen [29]. Das gilt für die Tests der Unter-
programme in den Packages, für jedes Unterprogramm, das Unterprogramme
nutzt, und für jede Teilschaltung, die in eine übergeordnete Schaltung einge-
baut wird. Denn es ist viel einfacher, Fehler in einer kleineren Beschreibung
zu finden, als in der übergeordneten größeren Beschreibung, und es ist viel
einfacher, Fehler in einem imperativ arbeitenden Unterprogramm zu finden,
als in der übergeordneten nebenläufig arbeitenden Schaltungsbeschreibung.
Übergangsfunktionen als Bearbeitungsprozeduren
Eine der wichtigsten Techniken, die Entwicklungskosten für große Software-
Projekte bezahlbar zu halten, ist die objektorientierte Programmierung. Ein
objektorientierter Entwurf beginnt mit der Strukturierung der zu verarbei-
tenden Daten. Gemeinsam zu verarbeitende Daten werden zu Objekten zu-
sammengefasst, diese wiederum Klassen zugeordnet. Für jede Klasse werden
Methoden definiert und auf Vorrat implementiert, mit denen Objekte die-
ser Klasse üblicherweise bearbeitet werden. Das übergeordnete System wird
aus Objekten, die mit Methoden ihrer Klasse bearbeitet werden, zusammenge-
setzt. Der Entwurf zerfällt dadurch auf natürliche Weise in überschaubare und
getrennt testbare Beschreibungseinheiten. Objektorientierung erfordert nicht
 
Search WWH ::




Custom Search