Auf der algorithmischen Ebene wird das System meist in einer imperativen Weise betrachtet. Das heißt, dass die Sichtweise die des Steuerwerks ist (Kontrollfluss). Dieses entscheidet, wann nach welchen vorhergehenden Aktionen eine bestimmte Aktion durchgeführt werden darf. Die strikt sequentielle Anordnung in üblichen Programmiersprachen wird hier generalisiert, um auch Nebenläufigkeit zu erlauben. Auf der Registertransferebene (RT-Ebene; englisch Register-Transfer-Level, RTL) wird eine reaktive Sichtweise eingenommen. Das System wird nun aus Sicht der gesteuerten Objekte (Rechenwerke) betrachtet (Datenfluss). Jedes derartige Objekt beobachtet kontinuierlich eine objektspezifische Bedingung. Ist diese Bedingung wahr, führt das Objekt seine Aktion durch. Dabei modifiziert es üblicherweise die Bedingungen innerhalb des Bedingungsraumes, und kann die Ausführung anderer Objekte (einschließlich seiner selbst) ermöglichen.
Auf dieser Ebene ist man üblicherweise an einem spezifischen synchronen Taktschema interessiert. Daher wird das Zeitschema auf dieser Ebene meist durch das Zählen von Taktzyklen gegeben. Es hängt von dem jeweiligen Implementierungskonzept für das Zeitschema ab, ob Taktpegel, steigende, fallende oder beide Flanken, oder gar eine Mischung dieser Techniken benutzt werden. Die beobachtbaren Werte sind nun Bitketten. In den meisten Fällen wird ihnen nicht mehr eine feste Interpretation (Typ) zugeordnet. Vielmehr werden sie von verschiedenen Objekten unterschiedlich interpretiert. Auf der RT-Ebene wird die endgültige Hardwarestruktur sichtbar. Das System wird daher als Verschaltung von Registertransfermodulen beschrieben. Typische derartige Module sind Register, ALU's, Multiplexer, Kodierer, Dekodierer, Schiebebausteine, etc. Aus physikalischer Sicht findet auf der RT-Ebene die endgültige Flächenplanung statt. Zunehmend häufig existieren für strukturelle Komponenten auch bereits physikalische Realisierungen (Makrozellen).