hardware - praktikum...hardware - praktikum digitaltechnik i200 version 1/2016 16.märz2016...

66
HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16. März 2016 Einführung in die Xilinx ISE Design Suite I201: Schaltnetze I202: Flipflops und RAM I203: Schaltwerke: Zähler I204: Prozessor: ALU I205: Prozessor: R(egister)-T(ransfer)-Struktur I206: Prozessor: Mikroprogrammierung

Upload: others

Post on 29-Dec-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

HARDWARE - PRAKTIKUMDigitaltechnik I200

Version 1/2016

16. März 2016

Einführung in die Xilinx ISE Design SuiteI201: SchaltnetzeI202: Flipflops und RAMI203: Schaltwerke: ZählerI204: Prozessor: ALUI205: Prozessor: R(egister)-T(ransfer)-StrukturI206: Prozessor: Mikroprogrammierung

Page 2: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke
Page 3: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Inhaltsverzeichnis

1. Einführung in die Xilinx ISE Design Suite 11.1. Projekt anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2. Erstellen einer Schaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3. Simulation einer digitalen Schaltung mit ISim . . . . . . . . . . . . . . . . 71.4. Erstellen einer wiederverwendbaren Subkomponente . . . . . . . . . . . . 91.5. Wichtige Hinweise und Tipps . . . . . . . . . . . . . . . . . . . . . . . . . 10

I201: Schaltnetze 11I201 A1: Volladdierer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12I201 A2: Einfache Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13I201 A3: Multiplexer für Datenkanäle . . . . . . . . . . . . . . . . . . . . . . . . 13I201 A4: Dekodierer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14I201 A5: Shifter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

I202: Flipflops und RAM 16I202 A1: RS-Basis-Flipflop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18I202 A2: Getaktetes RS-Flipflop . . . . . . . . . . . . . . . . . . . . . . . . . . . 19I202 A3: D-Latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19I202 A4: JK-Master-Slave-Flipflop . . . . . . . . . . . . . . . . . . . . . . . . . 20I202 A5: RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

I203: Schaltwerke: Zähler 23I203 A1: Asynchroner Binärzähler . . . . . . . . . . . . . . . . . . . . . . . . . 26I203 A2: Synchroner Glixon-Code-Zähler . . . . . . . . . . . . . . . . . . . . . . 27I203 A3: Synchroner Binärzähler . . . . . . . . . . . . . . . . . . . . . . . . . . 28

I204: Prozessor: ALU 29Einleitung: von-Neumann-Architekturen . . . . . . . . . . . . . . . . . . . . . . 29I204 A1: Carry-Look-Ahead-Addition . . . . . . . . . . . . . . . . . . . . . . . . 31I204 A2: 1-bit-ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32I204 A3: Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33I204 A4: 4-bit-ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

I205: Prozessor: R(egister)-T(ransfer)-Struktur 35I205 A1: Eine kleine Rechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . 36I205 A2: Carry-Flipflop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Prozessorarchitekturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Taktung der RT-Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40I205 A3: Taktung und Mikroprogramm . . . . . . . . . . . . . . . . . . . . . . . 42

I206: Prozessor: Mikroprogrammierung 44I206 A1: Schieben und Rotieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Sprungbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

i

Page 4: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I206 A2: Software-Multiplikation . . . . . . . . . . . . . . . . . . . . . . . . . . 47I206 A3: Hardware-Multiplikation . . . . . . . . . . . . . . . . . . . . . . . . . . 49Befehlsausführung in CISC-Architekturen . . . . . . . . . . . . . . . . . . . . . 51

A. Bausteine für die Digitaltechnik 52

B. Beispiele für die Signalgenerierung 53

C. Verwendung eines Vektors aus Einzelsignalen in einer Testbench 57

D. Simulations Konfigurationsdatei 60

E. In den Datenblättern benutzte Begriffe und Abkürzungen 61

F. Literatur zum Grundpraktikum Informatik 62

ii

Page 5: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Einführung in die Xilinx ISE Design Suite

1. Einführung in die Xilinx ISE Design Suite

Xilinx ISE ist ein weitverbreitetes Programmpaket der Firma Xilinx ∗. Es bietet unteranderem die Möglichkeit digitale Schaltungen zu entwerfen und diese zu simulieren.Die Schaltungen werden im grafischen ISE Editor als Schematic durch das Verschaltenbereitgestellter und eigener Bauteile erstellt. Mithilfe einer sogenannten Testbench kanndas Verhalten der Schaltung für definierte logische Eingangspegel getestet werden.

Digitale Schaltungssimulation mit Xilinx ISE

Schaltplan zeichnen auf grafischer Oberfläche

Testbench erstellen

Schaltungssimulation

Bauteilbibliothek

Die Schaltungssimulation erfolgt durch das integrierte Programm ISim. Im Simulatorwird das Verhalten der digitalen Schaltung grafisch veranschaulicht.

In den nachfolgenden Abschnitten wird Ihnen der Umgang mit Xilinx ISE kurz erläutert.

∗www.xilinx.com

1

Page 6: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Abbildung 1: Xilinx ISE in der Übersicht

1.1. Projekt anlegen

In einer Projektdatei werden untergeordnete Dateien und Hierarchien, sowie die Zielplatt-form spezifiziert. Ein neues Projekt kann über Project - New Project erzeugt werden.Ihnen wird für das Praktikum ein vorgefertigtes Projekt zur Verfügung gestellt. Währendder Versuchsdurchführung müssen keine weiteren Änderungen an den Projekteinstellun-gen vorgenommen werden. Außerdem sind dem Projekt alle benötigten Bauteile derBauteilbibliotheken zugeordnet, so dass Sie direkt mit dem Schaltungsentwurf beginnenkönnen.

2

Page 7: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Einführung in die Xilinx ISE Design Suite

Abbildung 2: Wichtige Schaltflächen zur Projektverwaltung

1.2. Erstellen einer Schaltung

Um eine neue Schaltung zu erstellen, wird eine leere Designfläche benötigt, auf die Siedie Bauteile platzieren können. Diese kann über Projekt - New Source... - Schematic oderdie zugehörige Schaltfläche zum Projekt hinzugefügt werden. Alternativ können Sie auchüber einen Rechtsklick auf eine beliebige Projektdatei und New Source... - Schematiceine Schaltung erstellen.

Einfügen und Vernetzen von Komponenten

Eine von Ihnen auf Papier entworfene Schaltung kann nun auf die leere Designflächeübertragen werden. Zuerst werden die Bauteile (Components) positioniert.Wählen Sie Add - Symbol oder die Tastenkombination Ctrl + M, um in die Kompo-nentenübersicht zu gelangen. Die jeweiligen Bauteilbibliotheken sind in unterschiedlicheKategorien eingeteilt. Für das Praktikum sollten Sie nur auf Symbole aus den KategorienHWP und HWP_advanced zurückgreifen.Suchen Sie aus den Bibliotheken die benötigten Bauteile heraus und platzieren Sie sieauf der Zeichenfläche des Editors durch einen Klick mit der linken Maustaste. Mit ge-haltener linker Maustaste lassen sich eingefügte Komponenten verschieben. MarkierteBauteile werden mittels Edit - Rotate (Ctrl + R) gedreht, bzw. mit Edit - Mirror (Ctrl+ E ) gespiegelt. Gelöscht werden markierte Bauteile durch Edit - Delete oder die TasteEntf.Eine Übersicht aller Bauteile finden Sie im Anhang auf Seite 52.Um Komponenten in der Simulation identifizieren zu können, besteht die Möglichkeit derindividuellen Namensvergabe. Führen Sie einen Doppelklick mit der linken Maustaste auf

3

Page 8: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

einem Bauteil aus, so gelangen Sie zu dessen Eigenschaften. Sie können den Bezeichnerim Feld InstName beliebig ändern.Zum Verschalten der einzelnen Komponenten gehen Sie auf Add - Wire oder nutzen Siedie Tastenkombination Ctrl - W. Man unterscheidet zwischen zwei möglichen Verbin-dungsarten:

a) Verbindung zwischen Ein- und Ausgängen von SchaltkreisenSelektieren Sie mit jeweils einem Mausklick mit der linken Taste den Anfangs- undden Endpunkt der Leitung, die Verbindung wird dann automatisch hergestellt.

b) Verbindung zwischen einem Ein- oder Ausgang eines Schaltkreises und einem nachaußen geführten freien LeitungsendeBestimmen Sie den Anfangspunkt der Leitung mit einem linken Mausklick, bewegenSie die Maus zum gewünschten Endpunkt und klicken Sie die linke Maustastedoppelt.

Leitungsverbindungen zwischen Komponenten können verschoben werden, indem manmit der linken Maustaste einen Abschnitt der Leitung hält und entsprechend verschiebt.Leitungen können zusätzlichztlich über Add - Net Name oder die TastenkombinationCtrl + D mit einem Namen (Label) versehen werden. Leitungen, die den gleichen Namentragen, werden vom Programm automatisch als verbunden angesehen.

Für alle beschriebenen Funktionen finden Sie in der Werkzeugleiste neben der Zeichen-fläche auch ein entsprechendes Symbol.

Spezielle Netze: Der Bus

Ein Bus ist in digitalen Schaltungen eine Sammelleitung für mehrere Signale. Ein Busumfasst dabei eine beliebige Anzahl an Leitungen. In ISE kann ein Bus sehr leicht er-stellt werden, indem Sie einer normalen Leitung eine gewisse “Breite” zuweisen. Dazuvergeben Sie einen Namen, der zusätzlich in Klammer die begrenzenden Größen enthält.Zum Beispiel kann ein Datenbus mit dem Namen D eine Datenbreite von 6 zugewiesenbekommen, indem man ihn D(5:0) nennt. Dies entspricht prinzipiell sechs EinzelleitungenD0, D1, D2, D3, D4 und D5, spart aber erheblich viel Platz ein.Sollen nun über einen Bus Signale an Komponenten verteilt werden, die über einen ein-fachen digitalen Eingang verfügen, so muss man eine Bus Trap einsetzen. Eine Trap isteine Abzweigung eines bestimmten Signals von einem Bus. Sie finden in der Symbolleisteam linken Rand der Zeichenfläche die Schaltfläche Add Bus Trap. Positionieren Sie eineTrap an einem Bus, so kann eine Einzelleitung separiert werden. Sie können auch imKontextmenü Add Wire Options des Vernetzungswerkzeugs einstellen, dass automatischeine Trap eingefügt werden soll, wenn Sie eine Leitung von einer Komponente zu einemBus legen. Wählen Sie dazu den Punkt When a wire connects a symbol pin and a busaus.Es ist erforderlich zu spezifizieren, welche der Busleitungen durch die Trap abgezweigt

4

Page 9: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Einführung in die Xilinx ISE Design Suite

werden soll. Daher muss der Einzelleitung der zugehörige Name gegeben werden. Umzum Beispiel das Signal D3 an den Eingang eines Bauteils anzulegen, nennen Sie dieLeitung D(3). Das gleiche Signal kann beliebig oft vom Bus abgezweigt werden.

In einigen Fällen erweist es sich als sehr praktisch einen Bus anstatt von Einzelsignalenals Schaltungseingang zu nutzen. Sie können an einen Bus einen Port anschließen, derdann automatisch den Namen des Busses übernimmt. In der Simulation kann der Busdann vektoriell angesteuert werden. Das heißt, Sie können in der Testbench alle Signaleeines Busses für einen gewissen Zeitpunkt gleichzeitig bestimmen. Zum Beispiel:

D <= "011010";

Dies entspricht folgenden Anweisungen.

D(0) <= ’0’;D(1) <= ’1’;D(2) <= ’0’;D(3) <= ’1’;D(4) <= ’1’;D(5) <= ’0’;

Bei der Zuweisung erfolgt die Signalbelegung des linksäußeren Wertes immer an dasSignal, das bei der Benennung des Busses ebenfalls links steht. Heißt der Bus D(5:0), soerhält D(5) den Wert des Eingabevektors an der linkesten Stelle. Wird der Bus D(0:5)benannt, so erhält D(0) den linkesten Wert.

Ebenfalls möglich es es, einzelne Signale aus einer Schaltung in der Simulation als Busbzw. Vektor zusammenzufassen. Dazu muss man die Testbench um folgende Befehleerweitern:

SIGNAL E : std_logic_vector(3 downto 0) := "0000";

E0 <= E(0);E1 <= E(1);E2 <= E(2);E3 <= E(3);

E <= "0101";

Was wird gemacht? Es wird ein Signal E als Vektor definiert, bestehend aus vier Signalen.Dieser Vektor hat den Startwert „0000“. Anschließend werden die einzelnen Vektoren E(0],E(1), E(2) und E(3) den entsprechenden Signalen E3, E2, E1 und E0 zugeordnet. Danachkann man in der Testbench den Vektor E benutzen. Im Anhang C ist ein komplettesBeispiel aufgeführt, wie so eine Testbench aussieht. Die entscheidenden Zeilen sind grauhinterlegt.

5

Page 10: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Entfernen von Komponenten und Netzen

Selektierte Bauteile und Vernetzungen können über die Taste Del (Entf ) gelöscht wer-den. Es gilt zu beachten, dass bei der Auswahl von Leitungen zwei unterschiedlicheMöglichkeiten der Auswahl bestehen. Einerseits können Sie ganze Netze auswählen odernur einzelne Leitungen. Im Menü des Auswahlwerkzeugs (Pfeilsymbol) steht Ihnen dazuSelect the entire branch und Select the line segment zur Verfügung.Mit gehaltener linker Maustaste können Sie einen Kasten um mehrere Bauteile ziehen.Alle darin enthaltenen Komponenten werden gesammelt markiert. Außerdem können Sieüber Edit - Select All oder die Tastenkombination Ctrl + A alle Komponenten der Zei-chenfläche auswählen.

Anlegen von Ein- und Ausgängen (Ports)

Xilinx ISE erfordert das Definieren von Schaltungsein- und Ausgängen. Dazu wird anfreien Leitungsenden oder direkt an den Verbindungspunkten der Komponenten ein so-genannter Port hinzugefügt. Die Datenrichtung des Ports ergibt sich automatisch gemäßder beteiligten Bauteilfunktion.Ein Port kann über Add - I/O Marker oder die Tastenkombination Ctrl + G ausgewähltwerden. Mit der linken Maustaste wird seine Position festgelegt. Sie sollten jeden Port miteinem nachvollziehbaren Namen versehen. Dazu können Sie entweder einen Leitungsna-men vergeben oder über einen Doppelklick mit der linken Maustaste auf den Port seinenNamen ändern.

In der Werkzeugleiste neben der Zeichenfläche finden Sie ebenfalls einen Button zumEinfügen eines Ports.

Überprüfen der Schaltung

Die von Ihnen entworfene Schaltung kann auf Verschaltungsfehler überprüft werden,indem Sie Tools - Check Schematic ausführen.

Speichern

Ist die Zeichnung fertiggestellt oder soll die Arbeit daran unterbrochen werden, ist siemit File - Save oder der Tastenkombination Ctrl - S abzuspeichern.

6

Page 11: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Einführung in die Xilinx ISE Design Suite

1.3. Simulation einer digitalen Schaltung mit ISim

Nach dem Fertigstellen Ihrer Schaltung, kann diese durch den Simulator ISim auf einkorrektes Verhalten überprüft werden. Dazu muss für jeden eingehenden Pegel der Aus-gang der Schaltung überprüft werden.Die Testbench legt fest, welche logischen Pegel zu einem bestimmten Zeitpunkt an denEingängen Ihrer Schaltung anliegen. Um eine Testbench für eine Schaltung zu erstellen,wählen Sie Projekt - New Source... - VHDL Testbench. Vergeben Sie einen Namen für dieTestbench. Im nachfolgenden Schritt bestimmen Sie die Schaltung für die die Testbencherzeugt werden soll, damit ein grundlegendes Framework automatisch generiert werdenkann. Die Testbench wird zum Projekt hinzugefügt und kann von Ihnen ausgefüllt wer-den.

Testbench

Die Testbench ist ein VHDL Framework. Die Ports Ihrer Schaltung werden als Signalaufgeführt, das von Ihnen mit logischen Pegeln belegt werden muss. Die Syntaxentnehmen Sie dem nachfolgenden Beispiel. Weitere Beispiele finden Sie B.

7

Page 12: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.numeric_std.ALL;LIBRARY UNISIM;USE UNISIM.Vcomponents.ALL;

ENTITY test_tb ISEND test_tb;ARCHITECTURE behavioral OF test_tb IS

COMPONENT testPORT (

A : IN STD_LOGIC;B : IN STD_LOGIC;Y : OUT STD_LOGIC

);END COMPONENT;

SIGNAL A : STD_LOGIC;SIGNAL B : STD_LOGIC;SIGNAL Y : STD_LOGIC;

BEGINUUT : testPORT MAP (A => A,B => B,Y => Y

);

tb : PROCESS BEGIN--InitialisierungA <= ’0’;B <= ’0’;

--Pegel für 50 ns haltenwait for 50 ns;

--Pegelwechsel Signal A, B unverändertA <= ’1’;

wait for 100 ns;

A <= ’0’;B <= ’1’;

WAIT;END PROCESS;

END;

8

Page 13: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Einführung in die Xilinx ISE Design Suite

Simulation

Um den Simulator zu starten, wechseln sie von der Design View Implementation zu Si-mulation. Dort werden die von Ihnen erstellten Testbench Dateien angezeigt. Im FensterProcesses klicken Sie doppelt auf Simulate Behavioral Model. Die Schaltung wird einerFehlerprüfung unterzogen und anschließend gemäß der Testbench simuliert. Das Simula-torfenster öffnet sich und die in der Testbench aufgeführten Signale werden visualisiert.Mit den Pfeiltasten der Tastatur können Sie innerhalb der Simulation auf markiertenSignalen von Pegelwechsel zu Pegelwechsel navigieren. Markierung für zeitliche Messun-gen lassen sich mit einem Rechtsklick und Add - Marker an die Position des Mauszeigerseinfügen.Das Simulationsprogramm erstellt in der Regel ein Signalverlaufsdiagramm für die Dauervon 1000 ns.Informationen zur Simulations-Konfigutrationsdatei 60

1.4. Erstellen einer wiederverwendbaren Subkomponente

In einigen Aufgaben wird von Ihnen gefordert, dass eine erstellte Schaltung als Sub-komponente wiederverwendet werden soll, z.B. das Einfügen des erstellten Multiplexersmux2-1. Für alle benötigten Subkomponenten sind vorgefertigte Symbole in Ihrem Pro-jektverzeichnis hinterlegt. Damit das Symbol mit Ihrer Schaltung assoziiert werden kann,

9

Page 14: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

ist es erforderlich, dass alle Portbenennungen übereinstimmen. Stellen Sie also sicher, dassdie Ports Ihrer Schaltung entsprechend der Ports des Symbols benannt sind. Um sicher-zugehen, sollten Sie die Benennungen der Ports vor dem Speichern kontrollieren. ÜberFile - Open können Sie das gewünschte Symbol mit der Dateiendung sym aus IhremProjektordner wählen und anzeigen lassen. Anschließend ist die Schaltung dann unterdem in der Aufgabe genannten Namen zu speichern.Damit Ihre Schaltung als Subkomponente in einer anderen Schaltung verwendet werdenkann, muss sie dem Projekt zugewiesen sein. Ist die zu assoziierende Schaltung nochnicht im Projekt, so sollte sie über einen Rechtsklick auf die in Hierarchy dargestelltenProjektdatein und Add Source... in das Projekt aufgenommen werden.Sind diese Schritte erfolgt, so können Sie durch Verwendung des Symbols ihre Schaltungals Subkomponente in einem anderen Design einbinden. Bedenken Sie, dass das jeweiligeSymbol nicht in der Komponentenbibliothek HWP, sondern im Projektordner zu findenist.

In den entsprechenden Aufgaben werden Sie auf das Symbol noch einmal gesondert hin-gewiesen.

1.5. Wichtige Hinweise und Tipps

Wählen Sie die Namen für die einzelnen Schaltungen eindeutig (z.B. ip201a1). AchtenSie unbedingt auf Groß- und Kleinschreibung, insbesondere um Verknüpfungen zwischenIhren Schaltungen und vorgefertigten Symbolen herstellen zu können.

In der ISE Testbench können die folgenden Zeiteinheiten verwendet werden:

Einheit Bezeichnung Größenordnungs Sekundems Millisekunde 10−3

us Mikrosekunde 10−6

ns Nanosekunde 10−9

ps Picosekunde 10−12

10

Page 15: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I201: Schaltnetze

I201: Schaltnetze

Ein Schaltnetz ist nach DIN eine Funktionseinheit zum Verarbeiten von Schaltvariablen,wobei der Wert am Ausgang nur vom Wert am Eingang abhängt. Ein Schaltnetz lässtsich aus Gattern (Schaltkreisen oder Verknüpfungsgliedern) aufbauen. Nachfolgend dieSymbole für die Schaltkreise nach IEC (International Electrotechnical Commission):

AND-Gatter NAND-Gatter

&x

yf0 &

x

yr f1

OR-Gatter NOR-Gatter

≥ 1x

yf2 ≥ 1

x

yr f3

NOT-Gatter XOR-Gatter

1x r f4 = 1x

yf5

Für den Entwurf der Schaltnetze sollen Sie, ausgehend von einer Wertetabelle, die dis-junktive Normalform bilden und anschließend die erhaltene Gleichung nach den Regelnder Booleschen Algebra oder mit einem KV-Diagramm minimieren. Das Ergebnis lässtsich direkt in eine zweistufige UND-ODER-Schaltung übertragen. Finden Sie die für diedirekte Umsetzung erforderlichen Logikbausteine nicht in der Bibliothek, müssen Sie dieSchaltung - unter Beibehaltung der Zweistufigkeit - mit den entsprechenden BooleschenRegeln umformen.Es wird angenommen, dass die Variablen am Eingang des Schaltnetzes (falls erforder-lich) auch mit ihrem Komplement zur Verfügung stehen. Wo das nicht der Fall ist, kämefür alle Variablen, deren Komplement gebraucht wird, noch eine Gatterebene für einenInverter hinzu. Diese Ebene wird aber nicht als dritte Stufe gezählt.

Hinweis: Es existiert ein Baustein hwp_invninv, der einen invertierenden und einennicht invertierenden Ausgang hat. Dieser sollte immer dann verwendet werden, wenn einSignal sowohl invertiert als auch in seiner nicht invertierten Form benötigt wird.

11

Page 16: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I201 A1: Volladdierer

CO

S

B

A

CI

Entwerfen Sie ein Schaltnetz (in zweistufiger NAND-Logik), welches drei Bits addierenkann, die beiden Operanden A und B und den Eingangsübertrag CI (carry in). DieAusgänge sollen die Summe S und den Ausgangsübertrag CO (carry out) liefern; diesist ein sog. 1-Bit-Volladdierer.

a) Stellen Sie für Summe S und Übertrag CO die Wertetabelle und KV-Diagrammeauf. Lassen sich die Normalformen vereinfachen? Realisieren und testen Sie dieSchaltung des Addierers. Messen Sie dabei auch die Verzögerungszeiten tPHL undtPLH

∗ eines Gatters hwp_nand2.

b) Thema Hazards Zeigen Sie anhand eines einfachen Beispiels (logisches Grund-glied plus Inverter) die Entstehung eines Hazards und simulieren Sie die Schaltung.Wie lässt sich mithilfe eines invninv -Baustein dieser Hazard vermeiden? Was be-wirkt der invninv -Baustein? Bauen Sie die verbesserte Schaltung in der gleichenSchaltung ein und zeigen Sie, dass der Hazard in der Simulation verschwunden ist.

∗s. Anhang E

12

Page 17: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I201: Schaltnetze

I201 A2: Einfache Multiplexer

Ein Multiplexer ist ein elektronischer Umschalter für Datenkanäle. Ein Datenkanal be-steht aus einer oder mehreren Leitungen. Gesteuert durch Anwahlbits S wird einer der(Eingangs-)Datenkanäle Di auf den (Ausgangs-)Datenkanal Y geschaltet.

Entwerfen und testen Sie eine Schaltung für einen (2 zu 1)-Multiplexer und einen (3 zu 1)-Multiplexer in NAND-Logik. Um die Schaltungen in den folgenden Aufgaben als ei-genständige Bauteile wiederverwenden zu können, erzeugen Sie die Subkomponentenmux2_1 und mux3_1 gemäß der vorgefertigten Symbole. Verwenden Sie für die Ein-und Ausgänge Ihrer Schaltung genau die in der Abbildung verwendeten Namen. Im Fol-genden können Sie nun Ihre Multiplexer-Schaltung direkt als Bauteil mit entsprechendemSymbol verwenden ∗.

I201 A3: Multiplexer für Datenkanäle

Ein Datenkanal kann durchaus eine Bitbreite von mehr als einem Bit besitzen, was indieser Aufgabe demonstriert werden soll.

a) Entwickeln Sie einen vierfachen (2 zu 1)-Multiplexer. Das logische Verhalten ent-spricht dem von vier (2 zu 1)-Multiplexern, deren Steuerleitungen zusammenge-schaltet werden.

b) Wieviele Ein- und Ausgänge besitzt ein j-facher (k zu 1)-Multiplexer?

(j = Breite eines Datenkanals)(k = Anzahl der Eingangs-Datenkanäle)

Hinweis: Schauen Sie sich den Abschnitt “Spezielle Netze: Der Bus” noch einmal an.Gegebenenfalls kann ein Bus an dieser Stelle hilfreich sein.

∗Subkomponenten: s. Kapitel 1.4

13

Page 18: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I201 A4: Dekodierer

Realisieren und testen Sie einen 2-Bit-Binärdekodierer (NOR-Logik). Dies ist eine Schal-tung mit zwei Eingängen (E1, E0) ∈ {0, 1}2 und vier Ausgängen (A3, A2, A1, A0) ∈{0, 1}4. Belegt man die Eingänge mit einer 2-Bit-Dualzahl j = E1 ∗ 2 + E0, so giltAj = 1 und für alle anderen Ausgänge Ai = 0, mit i 6= j. Diese Schaltung wird allgemeinauch als „1-aus-n-Dekoder“ bezeichnet.

Verpacken Sie die Schaltung in das Symbol d2_4, analog zu I201 A2.

Hinweis: Schauen Sie sich das Symbol des Dekodierers an, damit Sie wissen, wie Siedie Schaltung bauen müssen.

14

Page 19: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I201: Schaltnetze

I201 A5: Shifter

Im Folgenden soll eine 4-Bit-Schiebe-Einheit (shifter) realisiert werden. Ein solchesSchaltnetz hat fünf Eingänge E3, E2, E1, E0 und Xin, fünf Ausgänge A3, A2, A1, A0 undXout, sowie zwei Steuerleitungen Sh1, Sh0, welche die drei Operationen no_shift [0,0],shift_left [0,1] und shift_right [1,0] auswählen sollen.

Die drei Operationen sollen folgende Bedingungen erfüllen:

Ai =

Ei und Xout = Xin für alle i ∈ {0, 1, 2, 3}, falls no_shiftEi−1 und A0 = Xin und Xout = E3 für alle i ∈ {1, 2, 3}, falls shift_leftEi+1 und A3 = Xin und Xout = E0 für alle i ∈ {0, 1, 2}, falls shift_right

Hinweis: Der Multiplexer mux3_1 und der Dekoder d2_4 sollen nicht beim Entwurfder Schaltung benutzt werden. Nach Minimierung des Schaltnetzes sollten Sie nicht mehrals 22 Gatter (zwei hwp_invninv, zehn hwp_nand2 und zehn hwp_nand3 ) benötigen.

Bei dieser Schaltung haben Sie sieben Eingangs-Variablen zu berücksichtigen. Der Ent-wurf wird Ihnen dadurch erleichtert, dass Sie für jeden Ausgang Ai bzw. Xout identischeSchaltnetze zu entwerfen haben, die sich nur in der Beschaltung der Eingänge unterschei-den, somit treten pro Teil-Schaltnetz nur noch fünf Variablen auf.

15

Page 20: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I202: Flipflops und RAM

In den Aufgaben dieses Versuchs lernen Sie den Aufbau verschiedener Flipflop-Typenkennen. Durch die Einführung von Rückkopplungspfaden können aus zwei NAND-Schaltkreisen oder zwei NOR-Schaltkreisen einfache bistabile Kippschaltungen (Flip-flops) aufgebaut werden, die über zwei stabile Zustände verfügen. Durch geeignete An-steuerung kann das Flipflop aus jedem der beiden Zustände in den anderen Zustandübergehen. Die Vielzahl verschiedener Flipflops lässt sich in drei Klassen gliedern:

1. Nicht taktgesteuerte Flipflops

2. Taktpegel gesteuerte Flipflops, auch Latches

3. Taktflanken gesteuerte Flipflops

Das logische Verhalten von Flipflops kann beschrieben werden durch:

• Wertetabellen

• charakteristische Gleichungen

• Zustandsgraphen

Flipflops sind Schaltwerke, d.h. die Ausgangsvariablen hängen also nicht nur von denEingangsvariablen, sondern auch vom jeweiligen Zustand des Flipflops selbst ab. Manunterscheidet deshalb zwischen dem „alten“ Wert der Ausgangsvariablen Q und dem„neuen“ Wert der Ausgangsvariablen Q+, der sich aus den Eingangsvariablen Ej unddem Zustand Q des Flipflops ergibt:

Q Q+

ungetaktete Flipflops Ausgangsvariable desvorigen stabilen Zustan-des

Ausgangsvariable undFolgezustand resul-tierend aus Ej undQ

getaktete Flipflops Ausgangsvariable desletzten stabilen Zustan-des vor dem Taktimpuls

Ausgangsvariable undFolgezustand resultie-rend aus Ej und Q nachdem Taktimpuls

In der Wertetabelle wird dargestellt, wie Q+ von den Ej und von Q abhängig ist. Beigetakteten Flipflops ist der Takt CLK (clockpulse) zwar eine zusätzliche Eingangsvariable,er wird jedoch nicht mit in die Wertetabelle aufgenommen, denn Q bzw. Q+ werdenjeweils nur vor bzw. nach einem Taktimpuls betrachtet.

Beschreibt man die Wertetabelle durch einen (minimierten) Booleschen Ausdruck, soerhält man die charakteristische Gleichung Q+ = f(Ej , Q) des Flipflops.

16

Page 21: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I202: Flipflops und RAM

Alle Änderungen des Zustandes eines Flipflops erfolgen in Abhängigkeit von Eingangsva-riablen. Stellt man jeden Zustand Qj eines Flipflops als Knoten dar (etwa als Kreis undmit den Ausgangswerten beschriftet) und den Übergang Qj ⇒ Qj+1 als Kante (etwa alsPfeil vom Kreis Qj zum Kreis Qj+1, beschriftet mit der den Übergang verursachendenKombination der Eingangsvariablen), dann erhält man einen gerichteten Graphen, densog. Zustandsgraphen (s. Abb.). Auch hier wird bei getakteten Flipflops der Takt CLKnicht aufgeführt.

Q1,Q0E1,E0

1,0

0,1

0,1 1,0

Bei einigen Flipfloptypen dürfen bestimmte Wertekombinationen der Eingangsvariablennicht zugelassen werden, da sie direkt oder indirekt zu undefinierten Ausgangszuständenführen können. In diesen Fällen ist zu der charakteristischen Gleichung eine entsprechendeNebenbedingung anzugeben.

Die Taktung eines Flipflops wird taktpegelgesteuert genannt, wenn die Übernahme derEingangsinformation während der ganzen Zeit, in der der Takt einen bestimmten Wert,z.B. [1] annimmt, erfolgen kann.

Flipflops heißen flankengesteuert, wenn die Übernahme der Eingangsinformation und dieWeitergabe der gespeicherten Information an den Ausgang nur während des Übergangsdes Taktes von einem logischen Pegel in den anderen erfolgt.

17

Page 22: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I202 A1: RS-Basis-Flipflop

& s

& s

`````̀

r

r

Q1

Q2

NZ

NR

a) Realisieren und simulieren Sie die Schaltung des RS-Basis-Flipflops, bestehend auszwei rückgekoppelten NAND-Gattern.

b) Vervollständigen Sie die zugehörige Wertetabelle durch Experimentieren mit fol-gender Testsequenz:

R(ücksetzen) → Sp(eichern) → S(etzen) → Sp → (R und S) gleichzeitig → Sp

NZ NR Q1 Q1+ Q2

+

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

Simulieren Sie genau die vorgegebene Testsequenz! Einige Zustände können in derTabelle nicht aus der Testsequenz abgelesen werden. Diese müssen Sie durch Über-legungen herausfinden und kennzeichnen.

c) Stellen Sie die zugehörige KV-Tafel auf und bestimmen Sie die charakteristischenGleichungen (Q1

+, Q2+) des Flipflops (berücksichtigen Sie dabei auch evtl. Neben-

bedingungen). Erstellen Sie den Zustandsgraphen.

d) Wie verhält sich der Ausgangszustand (Q1, Q2) des Basis-Flipflops bei Änderungvon NR = NZ = 0 nach NR = NZ = 1?

Hinweis: Das vorangestellteN bei Signal-Eingängen und -Ausgängen soll anzeigen, dassbei Eingängen der auslösende aktive log. Pegel eine [0] ist, bei Ausgängen wird damit einzweiter negierter Ausgang angezeigt, häufig werden zwei inverse Ausgänge auch mit Qund Q unterschieden.

18

Page 23: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I202: Flipflops und RAM

I202 A2: Getaktetes RS-Flipflop

& s

& s

`````̀

r

r

Q1

Q2

S

R& s

& s

rCLK

a) Realisieren und simulieren Sie die Schaltung eines getakteten RS-Flipflops. Be-nutzen Sie die gleiche Testsequenz wie aus I202 A1. Wie muss der Takt sinnvollhinzugeschaltet werden?

b) Stellen Sie die zugehörige KV-Tafel auf, bestimmen Sie die charakteristischen Glei-chungen (Q1

+, Q2+) des Flipflops und erstellen Sie den Zustandsgraphen.

I202 A3: D-Latch

& s

& s

`````̀

r

r

Q

NQ& s

& sr

1 s

rD

CLK

a) Verändern Sie die Schaltung des getakteten RS-Flipflops so, dass ein D-Latch (takt-pegelgesteuertes D-Auffangflipflop) entsteht. Testen Sie diese Schaltung.

b) Ermitteln Sie die zugehörige Wertetabelle, geben Sie die charakteristischen Glei-chungen (Q, NQ) und den Zustandsgraphen an.

19

Page 24: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I202 A4: JK-Master-Slave-Flipflop

& s

& s

& s

& s

`````̀

& s

& s

& s

& s

`````̀1 sr

r

r

r

r

rrr

J

CLK

K

Q

NQ

r

rNRESET

NSET

a) Realisieren Sie die Schaltung eines JK-Master-Slave-Flipflops (sog. System-Flipflop) und testen Sie diese. Wie funktionieren dabei die InitialisierungseingängeNSET und NRESET? Wie müssen diese beim Normalbetrieb beschaltet werden?

Benutzen Sie für J und K eine ähnliche Testsequenz wie aus I202 A1, lassen Sielediglich J und K mal über mehrere Takte mit [1] beschaltet.

b) Stellen Sie die Wertetabelle, die charakteristischen Gleichungen (Q, NQ) und denZustandsgraphen auf (ohne Berücksichtigung der Initialisierungseingänge NSETund NRESET ).

c) Wie wirken sich Änderungen der Dateneingänge während CLK = [1] bzw. währendCLK = [0] auf den Zustand des Master-Flipflops aus? Was macht das Slave-Flipflopzur gleichen Zeit?

d) Was passiert bei der Beschaltung mit J = K = 1? Begründen Sie.

20

Page 25: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I202: Flipflops und RAM

I202 A5: RAM

Ein RAM (Random Access Memory) ist ein flüchtiger Speicher mit wahlfreiem Zugriff,der Schreiben und Lesen jeder Speicherzelle durch Anlegen der Adresse und der Steuer-signale ermöglicht. Es werden statische und dynamische RAMs unterschieden.

Die Speicherzelle eines statischen RAMs (SRAM ) besteht aus einer bistabilen Kippstufe,die eines dynamischen RAMs (DRAM ) aus einem MOS-Kondensator, der in regelmäßi-gen Abständen (4-8ms) nachgeladen werden muss, da er sich durch Leckströme entlädt.

Ein ROM (Read Only Memory) ist ein nichtflüchtiger Speicher oder Festwertspeicher mitebenfalls wahlfreiem Zugriff, der aber nur gelesen werden kann. Das Einschreiben der Da-ten erfolgt im Halbleiterwerk durch Maskenprogrammierung mit den kundenspezifischenInformationen.

4x1

RAM

RNW

NSEL

A0

A1

D Y

a) Konstruieren Sie ein 4-fach 1-Bit-SRAM. Das SRAM soll einen Tristateausganghaben. Verwenden Sie als Speicherelemente RS-Basis-Flipflops und für den Tri-stateausgang Bausteine hwp_tristate (s. Hinweis unten).

A0 und A1 sind die Adresseingänge, D ist der Dateneingang, Y ist der Datenaus-gang, RNW (Read-Write) schaltet zwischen Schreiben und Lesen um, und NSEL(Select) erlaubt den Zugriff auf den Speicher.

Funktionsbeschreibung:

RNW NSEL Funktion0 0 Ausgang hochohmig, Schreiben0 1 Ausgang hochohmig, Zugriff gesperrt1 0 Ausgang = Inhalt(Adr), Lesen1 1 Ausgang hochohmig, Zugriff gesperrt

21

Page 26: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Als Entwurfshilfe für die Schaltnetze einer Speicherzelle x benutzen Sie eine Wer-tetabelle mit folgenden Ein- und Ausgängen:

Eingänge AusgängeNSEL NSx, NRx

RNW NTx (Steuereingang für den treiber-ts)Ax (aus dem Adressdekoder)D

b) Testen Sie Ihre Schaltung indem Sie zunächst mit einer willkürlichen Datenfolgealle Speicherzellen ihes RAMs beschreiben und diese anschließend wieder auslesen.Bei timing-kritischen Pegelwechseln an den Eingängen A, RNW und D sollen Siedabei den Zugang zum Speicher über NSEL sperren.

c) Beschreiben Sie die in b) erwähnten timing-kritischen Pegelwechsel. Was ist da-mit gemeint? Warum muss der Baustein hier gesperrt werden? Überlegen Sie sich(theoretisch) ein Szenario, in welchem der Baustein ohne Sperrung ein ungewolltesVerhalten zeigen würde.

Hinweis (Tristate): Bausteine mit Tristate-Ausgang besitzen eine besondere Ausgangs-stufe, die neben den zwei niederohmigen Zuständen für [1] und [0], einen über einenSteuereingang ausgewählten dritten hochohmigen Zustand [Z], annehmen können. DieTristate-Ausgänge dürfen zusammengeschaltet werden, wenn sichergestellt ist, dass sichhöchstens ein Ausgang im niederohmigen Zustand befindet.

Tristate fähige Bausteine sind in der Symboldarstellung mit 5 gekennzeichnet.

22

Page 27: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I203: Schaltwerke: Zähler

I203: Schaltwerke: Zähler

Durch die Verwendung von Flipflops können Sie sequentielle Schaltwerke entwerfen, beidenen die Ausgangsvariablen nicht nur, wie es bei den Schaltnetzen der Fall ist, von derjeweiligen Kombination der Eingangsvariablen, sondern auch vom momentanen Zustandder in der Schaltung enthaltenen Speicherelemente abhängen. In den Aufgaben dieseVersuchs entwerfen Sie spezielle Schaltwerke, nämlich Zähler. Diese zählen TaktimpulseCLK. Die Abb. zeigt einen asynchronen 4-bit-Binärzähler:

J

CLK

K

FF1 Q1 FF2 Q2 FF3 Q3Q0FF0

PWR

Die T-Flipflops (Toggle-Flipflops: JK-Flipflops mit J = K = 1) wechseln bei jedemImpuls am Takteingang ihren Zustand. Das erste Flipflop wird durch CLK getaktet, dieanderen durch den Ausgang ihres Vorgängerflipflops.

Allgemein gilt: Ein Asynchronzähler besitzt mindestens ein Flipflop, das nicht vom Sys-temtakt CLK getaktet wird.

CLK

Q0

Q1

Q2

Q3

210 3 4 5 6 7 8 9 10 11 12

23

Page 28: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Die nachfolgende Tabelle zeigt die Reihenfolge der Zustände und deren Interpretation alsZählerstand:

Q3 Q2 Q1 Q0 dezimal hexadezimal oktal0 0 0 0 0 0 00 0 0 1 1 1 10 0 1 0 2 2 20 0 1 1 3 3 30 1 0 0 4 4 40 1 0 1 5 5 50 1 1 0 6 6 60 1 1 1 7 7 71 0 0 0 8 8 101 0 0 1 9 9 111 0 1 0 10 A 121 0 1 1 11 B 131 1 0 0 12 C 141 1 0 1 13 D 151 1 1 0 14 E 161 1 1 1 15 F 17

Nach 16 Zuständen wird wieder der Anfangszustand erreicht. Es handelt sich also umeinen modulo-16-Zähler, der im Binärcode zählt. Nachteile des Asynchronzählers, die Siein der ersten Aufgabe erkennen sollen, vermeidet ein synchroner Zähler, bei dem alleFlipflops gemeinsam durch CLK getaktet werden.

Schaltnetz für die 8 Booleschen Funktionen

Ji,Ki(Q0, Q1, Q2, Q3); i ∈ {0, 1, 2, 3}

CLKQ0 Q1 Q2 Q3

Die einzelnen Flipflops sind JK-Flipflops. Der momentane Zählerstand bestimmt die Ein-gangskombinationen Jj ,Kj aller Flipflops durch das o.a. Schaltnetz und damit auch denneuen Zählerstand nach dem nächsten Taktimpuls.

24

Page 29: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I203: Schaltwerke: Zähler

Besonders große praktische Bedeutung haben 4-bit-Zähler. Im „natürlichen Binärco-de“ zählen sie von 0 bis 15. Zum dezimalen Zählen werden zweckmäßigerweise 4-bit-Dezimalzähler verwendet.

Von den möglichen 16 verschiedenen Zuständen (Tetraden) eines 4-bit-Binärzählers nutztein 4-bit-Dezimalzähler nur 10 aus. Die verschiedenen dezimalen 4-bit-Codes unterschei-den sich durch die Auswahl der für die Kodierung der Dezimalziffern 0 bis 9 herange-zogenen Bit-Muster. Die restlichen 6 Tetraden heißen Pseudotetraden; sie sind in derfolgenden Tabelle mit „X“ gekennzeichnet.

Alle 4-bit-Dezimalcodes sind BCD-Codes (Binary Coded Decimals). Der einfachste BCD-Code ist der 8-4-2-1-Code, ein bewerteter Code, bei dem die erste Ziffer den Stellenwert1 = 20 und die folgenden die Stellenwerte 2 = 21, 4 = 22 und 8 = 23 haben. Liest manalso den Zählerstand eines im 8-4-2-1-Code zählenden Zählers als Binärzahl, so entsprichtdies genau der umgerechneten Dezimalzahl.

Es gibt aber auch Codes, bei denen der Zählerstand anders interpretiert wird, welchesunterschiedliche Vorteile haben kann, wie beispielsweise eine leichtere Fehlererkennungusw.

In der nachfolgenden Tabelle sind neben dem 8-4-2-1-Code noch der Gray- und derGlixon-Code aufgeführt. Diese beiden Codes sollen in der zweiten Aufgabe I203 A2 be-handelt werden.

25

Page 30: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Zusammenstellung einiger 4-bit-Dezimalcodes (BCD-Codes)

DezimaleZählerstand Interpretation

Q3 Q2 Q1 Q0 C1 C2 C3 oktal hexadezimal0 0 0 0 0 0 0 0 00 0 0 1 1 1 1 1 10 0 1 0 2 3 3 2 20 0 1 1 3 2 2 3 30 1 0 0 4 7 7 4 40 1 0 1 5 6 6 5 50 1 1 0 6 4 4 6 60 1 1 1 7 5 5 7 71 0 0 0 8 9 X X 81 0 0 1 9 X X X 91 0 1 0 X X X X A1 0 1 1 X X X X B1 1 0 0 X 8 8 X C1 1 0 1 X X 9 X D1 1 1 0 X X X X E1 1 1 1 X X X X F

C1: 8-4-2-1-CodeC2: Glixon-CodeC3: Gray-Code

In den folgenden Aufgaben verwenden Sie bitte ausschließlich das JK-System-Flipflophwp_jkff.

I203 A1: Asynchroner Binärzähler

a) Entwerfen und testen Sie einen asynchronen modulo-16-Binärzähler.

b) Schauen Sie sich die Simulation an (Zoomfunktion benutzen) und suchen Sie feh-lerhafte Zwischenzustände. Erklären Sie das Zeitimpulsdiagramm des asynchronenZählers in zeitgedehnter Darstellung beim Übergang des Zählerstandes von 7 nach8.

c) Beschreiben Sie, wie man aus dem entworfenem Vorwärtszähler einen Rückwärts-zähler machen kann unter Verwendung der gleichen Zählerausgänge?

26

Page 31: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I203: Schaltwerke: Zähler

I203 A2: Synchroner Glixon-Code-Zähler

In dieser Aufgabe soll schrittweise ein synchroner im Glixon-Code zählender 4-bit-Dezimalzähler entworfen werden.

a) In der Einleitung haben Sie über den Aufbau erfahren, dass Sie ein Schaltnetzzu entwerfen haben, welches die Belegung der Eingänge J und K jedes Flipflopsso vornimmt, dass sich für die Flipflop-Ausgänge nach einem Taktdurchlauf dergewünschte Folgezustand ergibt. Zuerst sollen Sie verstehen, durch welche Belegungvon J undK ein J-K-Flipflop von einem ZustandQ in den FolgezustandQ+ kommt.Tragen Sie die dafür notwendigen logischen Pegel bei J und K in die folgendeTabelle ein. Beachten Sie dabei auch das Auftreten von Redundanzen, die mit Xzu kennzeichnen sind:

Q→ Q+ J K

0→ 00→ 11→ 01→ 1

b) Vervollständigen Sie folgende erweiterte Wertetabelle und formulieren Sie Ji,Ki alslogische Funktion von Qi (i ∈ {3..0}). Minimieren Sie die erhaltenen Gleichungenmit Hilfe von KV-Diagrammen.

Ungenutzte Zählerzustände sollen als Folgezustand 0000 bekommen um einen kom-plett definierten Verlauf zu erhalten.

i Q3 Q2 Q1 Q0 Q+3 Q+

2 Q+1 Q+

0 J3 K3 J2 K2 J1 K1 J0 K0

0 0 0 0 0 0 0 0 1 0 X 0 X 0 X 1 X

1 0 0 0 1 0 0 1 1...

2 0 0 1 1...

......

c) Erstellen Sie mit Hilfe der minimierten Gleichungen das Schaltwerk des Zählersund testen Sie es.

d) Welche vorteilhafte Eigenschaft besitzt der Glixon-Code? Im direkten Vergleich,wann bietet sich der bekanntere Gray-Code an?

27

Page 32: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I203 A3: Synchroner Binärzähler

Entwickeln Sie einen positiv flankengesteuerten synchronen 5-Bit-Binärzähler mit paral-leler Eingabe zum Setzen eines frei wählbaren Zählerstandes im laufenden Betrieb. MitHilfe eines Steuereingangs ZP soll zwischen Zählen (ZP = [0]) und paralleler Eingabe(ZP = [1]) ausgewählt werden. Die an den parallelen Eingängen anstehende Informationsoll (bei ZP = [1]) taktsynchron übernommen werden, keinesfalls über die Initialisie-rungseingänge S und R.

a) Ermitteln Sie die Belegung der Eingänge J und K jedes Flipflops für das Zählen.

Tipp: Schreiben Sie sich die ersten Zählerstände untereinander auf. Durch „schar-fes Hinsehen“ lassen sich die einfachen Funktionen der J- und K-Eingänge leichterkennen. So ersparen Sie sich die Erstellung einer Tabelle analog zu I203 A2, be-gründen Sie im Protokoll.

b) Entwerfen Sie ein Schaltnetz, welches in Abhängigkeit von dem Steuereingang ZPdie Belegung der J- und K-Eingänge für das Zählen oder das parallele Ladenvornimmt.

c) Erstellen Sie das Schaltwerk des Zählers mit paralleler Eingabe und testen Sie es.

28

Page 33: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I204: Prozessor: ALU

I204: Prozessor: ALU

Einleitung: von-Neumann-Architekturen

Das Ziel der folgenden Aufgaben ist es, den Aufbau und die Arbeitsweise eines typischenProzessors eines nach dem von-Neumann-Prinzip aufgebauten Rechners kennenzulernen.Es sollen die wesentlichen Komponenten eines derartigen Prozessors entwickelt, realisiertund getestet werden.

Es werden Rechnersysteme betrachtet, die aus einem (Haupt-)Speicher, einem Prozes-sor und einer den Speicher und den Prozessor verbindenden Datensammelleitung (Bus)bestehen. Ein- bzw. Ausgabeeinheiten werden hier nicht betrachtet.

Zunächst sollen die Komponenten Speicher und Prozessor, sowie die Arbeitsweise einesderartigen Rechnersystems kurz vorgestellt werden:

Der Speicher ist in Zellen aufgeteilt, die jeweils ein Binärwort, d.h. eine endliche Folgefester Länge von Binärmustern aufnehmen können. Jede Zelle kann sowohl beschriebenals auch gelesen werden. Damit eine Zelle für eine Operation ausgewählt werden kann,sind die Zellen des Speichers mit eindeutigen Adressen versehen. Die Zellen können injeder beliebigen Reihenfolge angesprochen werden, es handelt sich um einen Speicher mitwahlfreiem Zugriff.

Der Speicher erfüllt zwei Aufgaben: Zum einen dient er zur Aufnahme des auszuführenden(Maschinen-)Programms. Ein solches Programm ist eine Folge von (Maschinen-)Befehlen,wobei jeder Befehl aus einer endlichen Folge von Binärmustern besteht. In einem Pro-gramm aufeinanderfolgende Befehle werden dabei in aufeinanderfolgenden Speicherzellenabgelegt. Das gesamte Programm ist somit ebenfalls eine endliche Folge von Binärmus-tern. Da Folgen von Binärmustern nur sehr schwer lesbar sind, werden für Maschinen-befehle mnemonische Bezeichner eingeführt, die durch Assembler in die entsprechendenMaschinencodes umgewandelt werden. Man kommt so zu den Assemblerbefehlen bzw.zur Assemblersprache.

Zum anderen sind im Speicher die Daten, mit denen das Programm operieren soll, abge-legt. Es ist zu beachten, dass es eine Besonderheit eines von-Neumann-Rechners ist, dassProgramm und Daten in einem gemeinsamen Speicher (als Binärworte) enthalten sind.Insbesondere lässt ein derartiges Binärwort nicht erkennen, ob es einen Befehl oder einDatum darstellt.

Die Aufgabe des Prozessors ist es nun, das im Speicher abgelegte Programm auszufüh-ren, also die Befehle, aus denen das Programm besteht, in der vorgegebenen Reihenfolgeabzuarbeiten. Damit dies möglich ist, muss der Prozessor die Adresse des nächsten aus-zuführenden, sog. aktuellen Befehls kennen. Dies ist die Adresse derjenigen Speicherzelle,in der dieser Befehl abgespeichert ist.

Setzen wir der Einfachheit halber voraus, dass jeder Befehl in einer einzigen Speicherzel-

29

Page 34: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

le abgelegt werden kann, so stellt sich die Abarbeitung des aktuellen Befehls, der in derZelle mit der Adresse ADR abgelegt sei, grob gesagt wie folgt dar: Zunächst sendet derProzessor (über den Bus) die Adresse ADR und eine Leseanforderung an den Speicher.Dieser liefert den Befehl an den Prozessor zurück, der ihn daraufhin dekodiert und aus-führt. Im Zuge der Ausführung können nun Daten aus dem Speicher geholt, verändertund wieder im Speicher abgelegt werden. Dabei werden u.U. logische oder arithmetischeOperationen ausgeführt. Nach der Ausführung wird die Adresse des nächsten auszufüh-renden Befehls bestimmt. In der Regel ist dieses die „nächste“ Adresse im Speicher, alsoADR + 1. Die Befehlsausführung wird dann mit dieser neuen Adresse fortgesetzt usw..

Damit der Prozessor die skizzierten Aufgaben ausführen kann, ist er mit mehreren ver-schiedenen Komponenten ausgestattet:

• Ein Rechenwerk zur Ausführung der arithmetischen und logischen Operationen.Kern des Rechenwerks ist die sog. ALU.

• Ein Prozessor enthält sog. Register, diese dienen der Aufnahme von Operandenund Ergebnissen arithmetischer und logischer Operationen.

• Ein Programmzähler, in dem die Adresse des nächsten auszuführenden Befehlsabgelegt ist.

• Ein Steuerwerk, mit dessen Hilfe das Zusammenspiel aller Komponenten geregeltwird. Hauptaufgabe des Steuerwerks ist es, den oben skizzierten Befehlszyklus zurealisieren. Dazu generiert es Steuersignale, die den Zugriff auf den Speicher, aufdie Register, das Rechenwerk, den Programmzähler usw. steuern.

Das Ziel der nächsten Aufgaben besteht darin, diese einzelnen Komponenten zu entwi-ckeln, zu realisieren und zu einem einfachen Prozessor zusammenzustellen. Aus Zeitgrün-den wird jedoch das Zusammenspiel von Prozessor und Speicher nicht näher betrachtet.Vielmehr wird davon ausgegangen, dass der nächste auszuführende Befehl schon vomSpeicher geliefert worden ist und nun ausgeführt werden soll. Folglich wird der Pro-grammzähler nicht realisiert.

Da im Zuge der Ausführung eines Befehls im Allgemeinen mehrere atomare Operationen(Auswahl von Registern, Operationen des Rechenwerks, Ablage von Rechenergebnissenin Registern usw.) hintereinander durchgeführt werden und die Koordination dieses Ab-laufs dem Steuerwerk obliegt, wird sich später schwerpunktmäßig dem Aufbau dieserKomponente zugewandt.

Zunächst soll das Rechenwerk und die Register realisiert werden. Das Rechenwerk bestehtim wesentlichen aus der sog. ALU, der arithmetisch-logischen Einheit. Hier wird eine 4-Bit-ALU entwickelt, also eine ALU, die in einem Schritt 4-Bit-Worte verarbeiten kann.

30

Page 35: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I204: Prozessor: ALU

I204 A1: Carry-Look-Ahead-Addition

Bei einer mehrstelligen Addition unter Verwendung des Addierers aus I201 A1 kommt eswegen der seriellen Weitergabe der Überträge COk → CIk+1 bei bestimmten Datenkom-binationen zu erheblichen Laufzeitverzögerungen (Ripple-Carry-Adder). Diese Verzöge-rungen lassen sich mit einer sog. C(arry)L(ook)A(head)-Schaltung deutlich vermindern.

Dazu sollen Sie die Schaltung des Addierers aus I201 A1 so abändern, dass ein Zusam-menschalten mit einem noch zu entwerfenden CLA-Generator möglich wird.

Anstelle des CO-Ausgangs sollen Sie zwei Hilfsvariablen G (generate) und P (propagate)zur Verfügung stellen.

ADD CLAG

B A

Cin

PGS

P3G3 C3

P2G2 C2

P1G1 C1

P0G0

CinCoutCLAG

Die minimale Form für die Erzeugung eines CO

CO = (A ·B) + (A · Cin) + (B · Cin)

lässt sich umformen in

CO = (A ·B) + (A + B) · Cin

woraus wir die beiden Hilfsvariablen

G = (A ·B) und P = (A + B)

gewinnen.

Die Schaltung für den CLA-Generator ergibt sich dann wie folgt:

C1 = G0 + P0 · Cin

C2 = G1 + P1 · C1

= G1 + P1 · (G0 + P0 · Cin)

= G1 + P1 ·G0 + P1 · P0 · Cin

C3 = · · ·Cout = · · ·

31

Page 36: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

a) Ändern Sie die Schaltung des Addierers aus I201 A1 wie oben angesprochen undverpacken Sie sie in dem Symbol add_1.

b) Entwerfen Sie einen CLA-Generator für 4-bit Wortbreite und verpacken Sie dieSchaltung in dem Symbol clag_4. Achten Sie auf die zweistufige Auslegung derÜbertragserzeugung.

Das Testen der beiden Schaltungen ist für Sie hier nicht notwendig, da die Tests automa-tisch in den nächsten Aufgaben erfolgen, in denen Sie Ihre hier erstellten Komponentenweiterverwenden sollen.

I204 A2: 1-bit-ALU

��

HH

��

HH

Op-Code Funktion

000 and001 or010 add110 sub

1b

a

cin s

g

p

≥ 1

&A

B

OP2 P G OP1 OP0

Cin

F

b r r

b r

br

rr

bb b b

b

b

B

A

OP [2 : 0]Cin

F

G

P

alu-1

Realisieren Sie die oben angegebene 1-bit-ALU. Erklären Sie die Funktionsweise derSchaltung. Warum braucht man für 4 Befehle einen 3-bitigen OP-Code? Überlegen Siesich für die logischen Operationen (und und oder) jeweils min. 2 Fälle und für die arith-metischen Funktionen (add und sub) jeweils min. 3 Fälle. Schreiben Sie für alle Fälle dieAusgaben F, P und G auf (Vorbereitung) und vergleichen Sie Ihre Ergebnisse mit derSimulation. Verpacken Sie die Schaltung im Symbol alu_1.

32

Page 37: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I204: Prozessor: ALU

I204 A3: Flags

a) Wird bei arithmetischen Operationen im Zweierkomplement der erlaubte Zahlen-bereich von ⊥ = −(2n−1) bis > = +(2n−1 − 1) überschritten, kommt es zu ei-nem Überlauf (overflow) in das Vorzeichenbit. Dieses muss erkannt und in demOverflow-Flag OV angezeigt werden.

Überlegen Sie sich ein Schaltnetz, das einen Overflow erkennt und mit [1] anzeigt.Betrachten Sie dazu die von den Eingabezahlen abhängigen relevanten Fälle, führenSie je eine Beispiel-Operation (4 Bit) durch und erstellen Sie eine Wertetabelle ausder sich die gesuchte Funktion ermitteln lässt. Ein separater Test mit der XilinxSoftware ist nicht notwendig.

Hinweis: Die gesuchte Funktion kommt bei einer n-bit-ALU allein mit den Ein-gängen Cn−1 und Cn aus.

b) Oft ist es auch sinnvoll zu signalisieren, dass das Ergebnis einer Operation Null ist.Dieses Signal wird Z-Flag (zero) genannt. Eine [1] bedeutet dabei, dass der gesamteALU-Ausgang den Wert Null . Welche Funktion erfüllt genau diese Bedingung(Wertetabelle, Gleichung)?

33

Page 38: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I204 A4: 4-bit-ALU

Durch Aneinanderfügen von 1-bit-ALUs lassen sich ALU-Einheiten beliebiger Wortlän-ge zusammenstellen. Erstellen Sie mit den Bausteinen alu1 und clag4 eine 4-Bit-ALU.Die Overflow-Signalisierung sowie das Z-Flag aus der vorigen Aufgabe sollen ebenfallsgeneriert werden.

��

@@

Op-Code Funktion000 and001 or010 add110 sub

B0

A0

OP [2 : 0]

alu-4

Cin

F0

Z

OV

Cout

Testen Sie alle Funktionen der 4-Bit-ALU mit mehreren Beispiel-Eingaben (min. 4 logi-sche Operationen und min. 6 arithmetischen Operationen jeweils gleichmäßig verteilt aufdie möglichen Befehle), überprüfen Sie auch die Funktion der Ausgänge Cout, OV undZ. Schreiben Sie die Beispiel-Eingaben und die zu erwartenden Ergebnisse auf (Vorberei-tung) und vergleichen Sie sie mit der Simulation. Testen Sie die Funktionsfähigkeit derCLAG-Einheit u.a. mit einer Rechnung −1+1. Warum gerade diese Zahlenkombination?

Wenn Sie das korrekte Verhalten Ihrer ALU nachgewiesen haben, legen Sie sie als Sub-komponente alu_4 an.

34

Page 39: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I205: Prozessor: R(egister)-T(ransfer)-Struktur

I205: Prozessor: R(egister)-T(ransfer)-Struktur

Nachdem in I204 die ALU aufgebaut wurde, wird sich nun den Registern des Prozes-sors zugewandt. Die Register nehmen u.a. die Operanden, dies sind die Argumente fürdie auszuführende Rechenoperation, auf. In typischen Prozessoren sind mehrere Regis-ter vorhanden. Hier sollen vier Register (R0, R1, R2, R3) realisiert werden. Jedes dieserRegister kann ein 4-bit-Wort speichern und einen Wert an den X-Eingang oder den Y -Eingang der ALU liefern. Die Auswahl zwischen den Registern erfolgt mit Hilfe einesMultiplexers, der als Besonderheit ein fünftes Register R4 enthält, welches bei Anwahlimmer den Wert Null [0000] liefert. Die Register selbst werden als positiv flankengesteu-erte D-Register realisiert. Dies erlaubt uns, sie sowohl als Eingaberegister als auch alsErgebnisregister (Akkumulator) zu benutzen.

Dazu wird der Ausgang der ALU mit den Eingängen aller Register verbunden (Daten-bus). Die Auswahl des Registers für die Ablage des Ergebnisses erfolgt dann mit Hilfeder Takteingänge TR0, TR1, TR2 und TR3 der Register. Damit nun die Register auchmit Werten geladen werden können, sehen wir einen weiteren Multiplexer vor, dessenerster Eingang mit dem Ausgang der ALU verbunden wird. Der zweite Eingang, Ein-Busgenannt, kann „von außen“, etwa vom Hauptspeicher, die Register mit Werten versorgen.Der Ausgang dieses Multiplexers beschreibt also direkt den Datenbus.

Die Schaltung sieht dann wie folgt aus:

4

tr3

tr2

tr1

tr0

CI

Steuerleitungen

X

Y

ALU

MUX

MUX

MUX

Ein−Bus

R0

R1

R2

R3

35

Page 40: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Mit Hilfe der erhaltenen Schaltung, einer sog. Register-Transfer-Struktur oder RT-Struktur, können nun Operationen der Form Rx := Ry op Rz ausgeführt werden. Dabeiist op eine atomare Rechenoperation, die die ALU direkt ausführen kann. Ein kompletterRechenzyklus besteht dabei aus zwei Schritten:

1. Auswahl der Operandenregister und der Rechenoperation.

Dazu werden die Steuerleitungen mit geeigneten Werten belegt. Nach einer gewissenZeit (Gatterlaufzeiten beachten) liefert die ALU das Ergebnis der Rechenoperation,das über den Datenbus auf die Eingänge der Register gelangt.

2. Übernahme des Ergebnisses in ein Register Rx. Dazu wird am Takteingang TRx

des Registers eine positive Taktflanke erzeugt.

Durch die Ablage des Ergebnisses einer solchen atomaren Rechenoperation in einemRegister steht es für eine weitere atomare Operation als Argument zur Verfügung. Sokönnen auf diese Weise komplexe Operationen realisiert werden, die aus einer Folge vonatomaren Rechenoperationen bestehen.

I205 A1: Eine kleine Rechnung

Führen Sie auf der RT-Struktur die Rechnung (2 + 3)− 6 im Zweierkomplement aus.

Laden Sie dazu zunächst die Register in geeigneter Weise mit den positiven Werten 2,3 und 6. Diese Werte sollen am Ein-Bus zur Verfügung gestellt werden und vor Ausfüh-rung der ersten Rechenoperation in Register geladen werden. Das Ergebnis soll in einemRegister abgelegt werden.

Hinweis: Bei Fragen lassen Sie sich von einem Betreuer des Praktikums die vorgefer-tigte RT-Struktur erklären. Sie dient als Basis für die weiteren Versuche und sollte inallen Details von Ihnen nachvollzogen werden. Zur Schaltung wird Ihnen ebenfalls eineTestbench bereitgestellt. Diese muss von Ihnen nicht angepasst oder modifiziert werden.

Zu beachten ist, dass die verwendeten Registerbausteine hwp_register positiv flanken-gesteuert sind. Damit die Simulation mit definierten Werten startet, sind die Registerzunächst zurückzusetzen. Dazu ist am Reset-Eingang der Register ein geeigneter Impulsangelegt.

Die Multiplexer hwp_mux20 liefern unter der Adresse [100] die Konstante [0000], diesist das oben erwähnte Nullregister R4.

Weiterhin ist bei der vorgegebenen Schaltung von der Möglichkeit Gebrauch gemachtworden, mehrere Leitungen in einem Bus ∗ zusammenzufassen.

∗Ein Bus ist eine gemeinsame Sammelleitung zusammengehörender Signale.

36

Page 41: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I205: Prozessor: R(egister)-T(ransfer)-Struktur

I205 A2: Carry-Flipflop

Wie in der letzten Aufgabe zu sehen war, können mit Hilfe der vorgestellten RT-Strukturkomplexere arithmetische und logische Operationen ausgeführt werden. Ein Nachteil istjedoch, dass sich auf Zahlen beschränkt werden muss, die sich mit 4 Bit (im Zweierkom-plement) darstellen lassen. Der Grund dafür ist, dass nur das Ergebnis einer atomarenOperation, also der Wert, den die ALU an ihrem Ausgang liefert, in ein Register abgelegtwerden kann, der evtl. entstehende Übertrag geht aber verloren.Insbesondere kann z.B. die Rechnung 87 + 25 mit der vorgestellten RT-Struktur nichtausgeführt werden. Mit der nachfolgend beschriebenen Erweiterung wird dies trotzdemmöglich.

Da die Zahlen 87 und 25 nicht mit 4 Bit im Zweierkomplement darstellbar sind, muss einelängere Darstellung gewählt, also die Anzahl der Binärstellen erhöht werden. In diesemFall reichen 8 Bit aus. Da das Rechenwerk aber in einem Schritt nur 4-bit-Worte verarbei-ten kann, muss die 8-bit-Addition in zwei Schritten (genauer: Rechenzyklen) ausgeführtwerden: Zunächst werden die beiden niederwertigen Worte der Argumente addiert. Derdabei entstehende Übertrag (Carry), der von der ALU am Ausgang Cout zur Verfügunggestellt wird, muss abgespeichert werden. Im zweiten Schritt werden die beiden höher-wertigen Worte zusammen mit dem abgespeicherten Übertrag, der am Eingang CI derALU anliegen muss, addiert.

Die vorgestellte RT-Struktur stellt keine Möglichkeit zur Verfügung, einen Übertrag auf-zubewahren und in einem späteren Rechenzyklus an den Eingang CI der ALU zu legen.Sie soll daher um ein D-Flipflop, das den Übertrag bei Bedarf speichert, erweitert werden.Dieses Flipflop wird Carry-Flag genannt. Der Ausgang dieses Flipflops wird über einen2-zu-1-Multiplexer an den Eingang CI zurückgeführt. Der Multiplexer gestattet es, beiBedarf CI mit einem festen Wert oder dem Carry-Flag zu belegen.

37

Page 42: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Die Schaltung für das Carry-Flipflop kann wie folgt aussehen:

ALU

D

D−FF

MUX

CinCsel tc

Carry

CoutCI

• Erweitern Sie die RT-Struktur um das vorgestellte Carry-Flipflop und führen Siedie Rechnungen (Vorbereitung) 87 + 25, 87 + 41 und 87−41 im Zweierkomplementdurch und vergleichen Sie Ihre Ergebnisse mit der Simulation. Die positiven Werte87, 25 bzw. 41 sollen vor Ausführung der Operationen über den Ein-Bus in Registerübernommen werden. Beachten Sie, dass Sie für eine Zahl zwei Register benötigen.

Hinweise zum Aufbau: Verwenden Sie für das Carry-Flag das positiv flankengesteuerteD-Flipflop hwp_dff. Dieses Flipflop ist am Anfang der Simulation durch einen geeignetenImpuls am Reset-Eingang in einen definierten Zustand zu bringen.

Greifen Sie außerdem auf den 2-zu-1-Multiplexer hwp_mux2 aus der BibliothekHWP_advanced zurück.

Bauen Sie unbedingt platzsparend auf. Bei Platzmangel können Sie auch davon Gebrauchmachen, dass Leitungsenden, die mit gleichem Label versehen sind, eine Verbindunguntereinander darstellen.

Hinweis zur Simulation: Damit Sie nicht so viel Zeit verlieren mit dem Anordnen derSignale im Simulationsfenster, kopieren Sie sich die Simualtionskonfigurationsdatei vomvorherigen Versuch in die aktuelle Konfigurationsdatei ( siehe 60 ).

38

Page 43: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I205: Prozessor: R(egister)-T(ransfer)-Struktur

Prozessorarchitekturen

Sie haben nun wesentliche Teile des Rechenwerks eines Prozessors kennengelernt. MitHilfe von Registern können komplexe Operationen ausgeführt werden. Das Carry-Flagerlaubt es darüber hinaus, beliebig große Zahlen zu addieren und zu subtrahieren. Je-doch werden komplexe Operationen quasi per Hand ausgeführt indem explizit Werte andie Steuerleitungen gelegt und Taktflanken an den Takteingängen der Register erzeugtwerden. Die Aufgabe des Steuerwerks eines Prozessors besteht nun darin, diesen Ab-lauf zu automatisieren. Das Steuerwerk ist somit ein Schaltwerk, das (abhängig von derauszuführenden Operation) die Steuerleitungen mit Folgen von Signalmustern und dieTakteingänge mit Taktflanken versorgt.

Für konkrete Aufgaben, wie beispielsweise der eben durchgeführten zweigeteilten Addi-tion, gibt es prinzipiell zwei Ansätze:

Zum einen könnte man ein fest verdrahtetes Schaltwerk aufbauen, das diese Aufgabeerfüllt. Beispielsweise könnte man mit Hilfe verschiedener Zähler und mehrerer Gatterdie benötigten Signalfolgen erzeugen. Der Nachteil dieses Ansatzes ist offensichtlich. Erist sehr unflexibel und komplexere Operationen (wie z.B. die Multiplikation) sind nurmit unverhältnismäßig großem Aufwand zu realisieren. Der Vorteil ist aber, dass sichso sehr schnelle Steuerwerke aufbauen lassen, wenn man sich auf einfache Operationenbeschränkt.

Dieser Ansatz wird beispielsweise in sog. RISC-Architekturen (reduced instruction setcomputer) verfolgt. Entsprechende Prozessoren stellen nur elementare Operationen zurVerfügung, die sehr schnell ausgeführt werden können. Komplexere Operationen müs-sen mit Hilfe von Maschinenprogrammen realisiert werden, sofern keine weitere spezielleHardware (z.B. Coprozessor für arithmetische Operationen) vorhanden ist. Ein Beispielfür eine derartige Prozessorarchitektur ist der SPARC der Firma Sun.

Der zweite Ansatz besteht darin, die benötigten Signalmuster in einem Speicher abzule-gen. Genauer, die Steuerleitungen werden mit den Ausgängen eines Speichers verbunden.Sie werden daher mit den im Speicher vorhandenen Werten belegt. Der Vorteil dieserLösung besteht in einer hohen Flexibilität. Das so realisierte Steuerwerk ist frei program-mierbar. Soll eine bestimmte komplexe Operation ausgeführt, so wird auf die Folge deratomaren Operationen zurückgegriffen. Die den atomaren Operationen entsprechendenBitmuster für die Steuerleitungen (die „Steuerworte“) werden dazu in aufeinander fol-genden Zellen des Speichers abgelegt, d.h. das Steuerwerk wird programmiert.

Der Nachteil hierbei ist die in der Regel kleinere Geschwindigkeit eines derart realisier-ten Steuerwerks gegenüber eines fest verdrahteten. Dies macht sich insbesondere dann

39

Page 44: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

bemerkbar, wenn sehr einfache Maschinenbefehle ausgeführt werden sollen. Hier ist dieflexible Lösung der fest verdrahteten im Allgemeinen unterlegen. Dies wiegt umso schwe-rer, da in einem typischen Maschinenprogramm einfache Befehle (wie etwa das Erhöheneines Registers) häufiger ausgeführt werden als komplexe Befehle (wie etwa der Multipli-kationsbefehl).

Prozessoren, die mit einem Steuerwerk gemäß dem zweiten Ansatz ausgestattet sind, sindsog. CISC-Architekturen (complex instruction set computer). Beispielsweise gehört derMotorola M68000 -Prozessor zu dieser Familie. Neuere Prozessoren aus der x86-Reihe,wie beispielsweise der Core i7 von Intel, verfolgen einen hybriden Ansatz. Der CISC-Befehlssatz wird in Folgen von RISC-Mikrobefehlen übersetzt.

Der klassischen CISC-Variante ähnlich soll hier weiter verfahren werden. Das Steuerwerkbesteht dann aus zwei Komponenten:

1. Der oben angesprochene Speicher, der Mikroprogrammspeicher genannt wird. DieFolge der Bitmuster für die Steuerleitungen, d.h. der Inhalt des Speichers, heißtMikroprogramm. Die Steuerworte selbst werden Mikroprogrammworte oder Mi-kroprogrammbefehle genannt. Um dem neueren Hybrid-Ansatz gerecht zu werden,können die Steuerworte mit RISC-Befehlen und das gesamte Mikroprogramm miteinem CISC-Befehl verglichen werden.

2. Der sog. Mikroprogrammzähler. Dieser wählt ein Wort des Mikroprogramms aus,also spricht die Adresse der Speicherzelle des Mikroprogrammspeichers an, die dennächsten auszuführenden Mikroprogrammbefehl enthält.

(Man vergleiche dazu die Aufgaben des Hauptspeichers eines Computers und des Pro-grammzählers.)

Taktung der RT-Struktur

Damit nun ein zweigeteilter Rechenzyklus realisiert werden kann und ein zeitlich ge-ordneter Ablauf gewährleistet ist, wird der gesamte Ablauf mit Hilfe eines Taktes CLKgesteuert. Im Detail geschieht dabei folgendes (Zunächst gelte CLK = [0]):

1. Die positive Taktflanke des Taktes CLK zählt den Mikroprogrammzähler um einshoch. Dadurch wird die nächste Adresse im Mikroprogrammspeicher und somit dasnächste Steuerwort ausgewählt und aktiviert.

2. Während CLK = [1] werden die Steuerleitungen des Rechenwerks mit Werten ver-sorgt, die Register für die Operanden ausgewählt und die Rechenoperation durch-geführt. Vor (!) der negativen Taktflanke von CLK ist das Ergebnis der atomarenOperation berechnet worden.

40

Page 45: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I205: Prozessor: R(egister)-T(ransfer)-Struktur

3. Die negative Taktflanke liefert den Takt für die Übernahme des Ergebnisses inein Register.

4. Ist das Ergebnis (während CLK = [0]) in das Register übernommen worden, so istder Rechenzyklus beendet.

Der Ablauf wird wie folgt durch CLK gesteuert:

Ergebnis in Register

ablegen

Steuerleitungen belegen

Mikroprogrammbefehlaktive Flanke

für Ergebnisregisterauswählen

nächsten

Rechnung ausführen

CLK

Die Schaltung eines entsprechenden Steuerwerkes kann dann etwa wie folgt aussehen:

hwp_cnt32 hwp_rom3224

ResetReset

Q Adressen

Daten

24 zu den

Steuer−

leitungen

ROM

5−Bit

32x24

5CK

SEL

Zähler

41

Page 46: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Die Takteingänge der Register für die Übernahme des Ergebnisses können nach folgendemPrinzip beschaltet werden:

4 4

Ein Aus

CLK

TRx

1

xR

&

Hier ist anzumerken, dass der Inverter dafür zuständig ist, das Register während dernegativen Taktflanke von CLK mit einer positiven Flanke zu versorgen. Wird die Steu-erleitung TRx mit [0] belegt, so erfolgt keine Übernahme des Ergebnisses, bei TRx = [1]dagegen wird das Ergebnis während der negativen Flanke von CLK in das Register über-nommen.

I205 A3: Taktung und Mikroprogramm

a) Erweitern Sie die oben entwickelte RT-Struktur um ein Steuerwerk mit Mikro-programmspeicher und -zähler. Orientieren Sie sich dabei an den vorgestelltenSchaltskizzen.

Verbinden Sie die Steuerleitungen der RT-Struktur mit den Ausgängen des Spei-chers. Die Signalbelegungen werden aus dem Mikroprogramm abgeleitet, der Zäh-lerstand gibt dabei die jeweilige Programmzeile an. Daher müssen die bisher ver-wendeten Ports entfernt werden, damit es keine Kollisionen gibt. Sorgen Sie dafür,dass nur eindeutige Signalpegel verwendet werden.

Bedenken Sie, dass obige Schaltung zur Registertaktung auch an anderer Stellenotwendig ist. Nämlich wo?

b) Schreiben Sie das Mikroprogramm für die Rechnung (87+25) aus Aufgabe I205 A2.

42

Page 47: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I205: Prozessor: R(egister)-T(ransfer)-Struktur

Hinweise zum Aufbau: Verwenden Sie für den Zähler den synchronen 5-Bit-Binärzählerhwp_cnt32. Belegen Sie vorerst den Steuereingang ZP mit [0] für Zählen. Für den Mi-kroprogrammspeicher soll ein ROM verwendet werden. Benutzen Sie hier den Bausteinhwp_rom3224.

Hinweise zum Entwurf der Mikroprogramme: Es hat sich als hilfreich erwiesen, einEntwurfsblatt zu verwenden, auf dem spaltenweise die einzelnen Bits des Mikropro-gramms und deren Kurzbezeichnung z.B. TR3, MX2, OP0 usw. vorgegeben sind. In diefreien Felder darunter sind dann die [0]/[1]-Bitmuster für den jeweiligen Rechenvorgangeinzutragen. Das Entwurfsblatt ist online zu finden, kann Ihnen aber auch vom Betreuerüberreicht werden.

Beachten Sie, dass das Laden der Register ebenfalls mit Mikroprogrammbefehlen erfolgenmuss.

Hinweise zur Simulation:

• Das Mikroprogramm kann von Ihnen in einem beliebigen Texteditor angefertigtwerden. Zum Beispiel können Sie in ISE über File - New - Textfile eine neue Dateianlegen. Das Mikroprogramm sollte so aussehen, dass Sie die binären Sequenzenvom Zeilenanfang eingeben. Alle Zeichen, die auf den 24Bit-Mikroprogrammbefehlfolgen, werden nicht mehr als Programm interpretiert. So können Sie einzelne Zeilenmit hilfreichen Kommentaren versehen.

• Dem Mikroprogrammspeicher muss der Pfad zum Mikroprogramm zugewiesen wer-den. Gehen Sie mit einem Rechtsklick auf hwp_rom3224 und Push into Symbol aufdie unterliegende Systemkomponente hwp_rom3224. Der Pfad zu Ihrem Programmkann in den Eigenschaften der Systemkomponente eingetragen werden, welche Sieüber einen Doppelklick mit der linken Maustaste erreichen (Attribut PATH ).

Eine Beispieldatei, bestehend aus drei Mikroschritten, sieht wie folgt aus:

000000000011000000000000 ld R0 - Lade einen Wert in Register R0000000000101000000000000 ld R1 - Lade einen Wert in Register R1000000001000001000000010 R2=R0+R1

• Die Testbench sollte keinerlei Steuersignale mehr enthalten, da gerade diese Pegel janun über Mikroprogrammbefehle definiert werden. Der Port CLK sollte von Ihnenin die Schaltung eingefügt worden sein. Die Taktung der Schaltung erfolgt in derTestbench über einen separaten Prozess. Stellen Sie das Taktsignal so ein, dass einkompletter Rechenzyklus 200ns umfasst.

43

Page 48: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

I206: Prozessor: Mikroprogrammierung

Im Folgenden soll das Rechenwerk aus der vorherigen Serie erweitert und komplexereMikroprogramme entwickelt werden.

Die ALU, die eben entwickelt und realisiert worden ist, kann arithmetische und logischeOperationen ausführen. Ein typischer Prozessor stellt jedoch noch eine weitere Klassevon atomaren Operationen zur Verfügung. Dies sind Schiebe- und Rotieroperationen, dievon einer sog. Schiebe-Einheit oder Shifter ausgeführt werden.

Diesen Operationen ist gemeinsam, dass der Inhalt eines Registers um eine Stelle (nachlinks oder rechts) verschoben wird. Dabei wird ein Bit aus dem Register herausgeschoben.Durch Einfügen eines weiteren Flipflops, dem sog. X-Flag, kann dieses Bit aufgefangenund weiter verarbeitet werden.

Beim Schieben eines Registerinhaltes wird auch stets eine Stelle frei. Wird eine (logische)Schiebeoperation ausgeführt, so wird diese Stelle auf [0] gesetzt. Im Fall einer Rotierope-ration muss diese Stelle mit dem Inhalt des X-Flags geladen werden.

0Register LinksschiebenX

Register LinksrotierenX

Die Schiebe-Einheit wird zwischen ALU-Ausgang und Eingang des Multiplexers, der denDatenbus versorgt, geschaltet. Das X-Flag wird als D-Flipflop realisiert. Wahlweise liefertdieses Flipflop den Wert für die freiwerdende Stelle (Rotieroperation) oder diese Stellewird mit Hilfe eines UND-Gatters auf [0] gesetzt (logische Schiebeoperation):

44

AusEin

Xin Xout

D X−Flag

D−FF

MUXALU

Q

Xsel

&

SHIFTER

Sh1 Sh0

Sh1 Sh0

TX

44

Page 49: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I206: Prozessor: Mikroprogrammierung

Die erweiterte RT-Struktur kann nun Operationen der Art Rx := shift_op(Ry op Rz)ausführen, wobei op eine ALU-Operation und shift_op eine Operation der Schiebe-Einheit ist.

I206 A1: Schieben und Rotieren

a) Erweitern Sie die RT-Struktur um eine Schiebe-Einheit gemäß den obigenSchaltskizzen und verwenden Sie die neu hinzugekommenen Steuerleitungen Xsel,TX, Sh1, Sh0 des Mikroprogrammspeichers.

Laden Sie in die ersten beiden Register die Zahl 9 und in die beiden anderen Registerdie Zahl 5. Führen Sie nacheinander folgende Operationen aus:

1. Linksschieben von R0

2. Rechtsschieben von R1

3. Linksrotieren von R2 und

4. Rechtsrotieren von R3.

Was ist bei den Rotationsoperationen zu beachten?

Hinweis zum Aufbau: Verwenden Sie die Schiebe-Einheit hwp_shifter. Das X-Flag soll als positiv flankengesteuertes D-Flipflop realisiert werden. Benutzen Sieden Baustein hwp_dff.

b) Welchen arithmetischen Funktionen entsprechen das hier realisierte Links- bzw.Rechtsschieben? Wie sieht es mit Zahlen in Zweierkomplementdarstellung aus?

45

Page 50: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Sprungbefehle

Bisher gab es keine Möglichkeit im Mikroprogramm Verzweigungen durchzuführen, wiesie beispielsweise für Schleifen benötigt werden. Das Steuerwerk soll nun so erweitertwerden, dass Sprungbefehle unterstützt werden.

Ein Sprungbefehl besteht aus dem Befehl selbst, der angibt, dass eine Programmverzwei-gung stattfinden soll, und der Zieladresse, an der die Ausführung des Mikroprogrammsfortgesetzt werden soll, vorausgesetzt die evtl. vorhandene Bedingung für den Sprung isterfüllt. Im Fall eines Mikroprogramms sind Sprungbefehl und neue Zieladresse in einereinzigen Zelle des Mikroprogrammspeichers abgelegt. Die Ausführung des Sprungbefehlsbesteht dann im wesentlichen darin, den Mikroprogrammzähler mit dieser neuen Adressezu laden.

Der verwendete 5-Bit-Zähler cnt-32 kann dazu parallel geladen werden. Es werden so-mit fünf Ausgangsleitungen des Mikroprogrammspeichers, die die parallelen Eingängedes Mikroprogrammzählers mit der Sprungadresse versorgen, benötigt. Da während derAusführung eines Sprungbefehls der Einfachheit halber keinerlei Rechenoperationen aus-geführt werden sollen, können die Ausgänge des Mikroprogrammspeichers, die die Steu-erleitungen der ALU mit Werten versorgen, ebenfalls mit den parallelen Eingängen desZählers verbunden werden.

Grundsätzlich gibt es zwei Arten von Sprungbefehlen: unbedingte und bedingte Sprung-befehle. Im Fall der unbedingten Sprungbefehle erfolgt stets eine Verzweigung zur an-gegebenen Adresse. Dagegen hängt die Ausführung des Sprunges im Fall der bedingtenSprungbefehle von den Werten bestimmter Flags ab. Im Folgenden sollen drei verschie-dene Sprungbefehle realisiert werden.

46

Page 51: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I206: Prozessor: Mikroprogrammierung

I206 A2: Software-Multiplikation

a) Erweitern Sie zunächst das Steuerwerk um eine Schaltung, die drei verschiedeneSprünge unterstützt:

1. Eine unbedingte Verzweigung (J – jump).

2. Eine Verzweigung, falls das X-Flag nicht gesetzt ist (JNX – jump if not x )

3. Eine Verzweigung, falls das Z-Flag nicht gesetzt ist (JNZ – jump if not zero)

Hierzu wird zusätzlich ein D-Flipflop benötigt, welches den Z-Ausgang derALU speichert. Dieses muss mit dem Takt (CLK · JNZ) betrieben werden,damit es den Z-Ausgang automatisch jeden Takt speichert, außer bei einemSprung selbst.

Hinweis zum Aufbau: Orientieren Sie sich an nachfolgend aufgeführter Skizze. DieSteuerleitungen, die den Zähler mit der Sprungadresse versorgen, sollen (bitte ohne Per-mutation der Stellen) [Csel, Cin, OP2, OP1, OP0] sein.

ZP

JNZ

Z−Flag

32x24

DSBL

5

5

Zähler

(Steuerleitungen für ALU)

& &

JNX

X−FlagQ

Adressen

Daten

ROM1

E

24

Q

J

CLK

NReset NReset

Q

47

Page 52: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Multiplikationsverfahren: Ein bekanntes Verfahren, zwei Zahlen zu multiplizieren, istdas der Multiplikation durch stellenversetzte Addition. Dabei wird der Multiplikand stel-lenversetzt auf das Ergebnis addiert. Statt den Multiplikanden zu verschieben, kann aberauch das Ergebnis verschoben werden.Um die Multiplikation mit der Beschränkung aufvier Register durchführen zu können, soll folgender Trick angewendet werden:

Der Zugriff auf die einzelnen Bits des Multiplikators wird durch eine Schiebeoperationrealisiert. Der Multiplikator liegt dabei zunächst in den oberen (am Anfang nicht benö-tigten) vier Bit des Registerpaares für das Ergebnis.

Die Register werden also wie folgt verwendet: R0 nimmt den Multiplikanden auf. InR1 wird der Zähler abgespeichert. Das Registerpaar R3, R2 steht für das Ergebnis zurVerfügung, wobei am Anfang in R3 der Multiplikator abgelegt wird.

Es ergibt sich das folgende Verfahren im Pseudocode:

R0 := Multiplikand;R1 := 4; (Initialisierung des Zählers)R2 := 0; (niederwertige 4 Bit des Ergebnisses)R3 := Multiplikator; (später höherwertige 4 Bit des Ergebnisses)repeat

Registerpaar R3, R2 um eine Stelle nach links verschieben,dabei das herausgeschobene Bit im X-Flag ablegen;if X-Flag = 1 then

addiere zum Registerpaar R3, R2 den Inhalt von R0;end if;R1 := R1 − 1;

until R1 = 0;

b) Entwickeln Sie ein Mikroprogramm, das das obige Verfahren realisiert und führenSie folgende Rechnungen durch: 5 · 7, 7 · 5, 0 · 7 und 11 · 13.

Was sind die Besonderheiten für jede dieser Aufgaben?

Hinweise: Die repeat-until-Schleife soll, ebenso wie die if-then-Bedingung, mitHilfe von Sprungbefehlen realisiert werden. Um die Dekrementierung des RegistersR1 effizient zu lösen, können Sie das Nullregister R4 in geeigneter Weise nutzen.

Empfehlung: Um das Prinzip besser zu verstehen, empfiehlt es sich die Multipli-kation einmal auf Papier durchzuspielen.

48

Page 53: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I206: Prozessor: Mikroprogrammierung

I206 A3: Hardware-Multiplikation

X

Y

FSHIFTER

X

Y

P0

P1

ALU

MUL

000

001

and

or

add

mul1

mul2

sub

Op−Code Funktion

010

100

101

110

Op−Code

In dieser Aufgabe soll das eben entwickelte Mikroprogramm durch einen 4 · 4-Bit Multi-plizierer in Hardware ersetzt werden. Dieser soll nach dem Verfahren der stellen-versetzten Addition der Partialprodukte arbeiten.

b3 · a0 b2 · a0 b1 · a0 b0 · a0b3 · a1 b2 · a1 b1 · a1 b0 · a1

b3 · a2 b2 · a2 b1 · a2 b0 · a2b3 · a3 b2 · a3 b1 · a3 b0 · a3

p7 p6 p5 p4 p3 p2 p1 p0

Jeder UND-Term stellt ein Partialprodukt dar. Das Produkt ergibt sich aus der Additionder Spalten mit geeigneter Weitergabe der Überträge.

49

Page 54: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

a) Wie sieht ein 1-Bit-Multiplizierer aus?

b) Welche Funktion muss eine Grundzelle, die das lokale Partialprodukt (a · b) berech-net, zusätzlich erfüllen? Wie wird das Ergebnis gebildet?

c) Bauen Sie den 4 · 4-Bit Multiplizierer (nach dem Verfahren der stellenversetztenAddition der Partialprodukte) aus den Bauteilen hwp_mul1 auf (16 x hwp_mul1und 2 x hwp_gnd). Die Ausgänge A_o und B_o dienen dabei nur einem übersicht-licheren Aufbau. Testen Sie die Schaltung mit der Berechnung 11 · 15. VerpackenSie sie in das Symbol mul_4. Auch hier ist die Namensvergabe der Ports wie beimSymbol wählen.

d) Fügen Sie entsprechend der Skizze den Multiplizierer mul_4 parallel zur ALU vordem Shifter ein. Die Daten werden über einen Multiplexer hwp_mux12 entspre-chend weitergegeben. Wegen der 4-Bit-Struktur muss das Ergebnis der Multiplika-tion in zwei Portionen zu 4 Bit über den Datenbus in die Register übernommenwerden. Die Adressierung des Multiplexers erfolgt in geeigneter Weise über denOp-Code.

e) Testen Sie mit einer beliebigen 4 · 4-Bit Multiplikation.

50

Page 55: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

I206: Prozessor: Mikroprogrammierung

Befehlsausführung in CISC-Architekturen

Abschließend sollen noch einmal die Ausführung eines Maschinenbefehls durch einenCISC-Prozessor betrachtet werden. Es wird davon ausgegangen, dass der Prozessor miteinem Steuerwerk ausgestattet ist, wie es oben entwickelt und realisiert worden ist.

In den gestellten Aufgaben sind Mikroprogramme für die Ausführung einzelner Maschi-nenbefehle entwickelt worden, so z.B. ein Mikroprogramm, das den Maschinenbefehlmult,den Multiplikationsbefehl, ausführen kann.

Der Mikroprogrammspeicher eines Prozessors enthält nun für jeden Maschinenbefehl,den der Prozessor zur Verfügung stellt, ein entsprechendes Mikroprogramm. Soll nunein bestimmter Maschinenbefehl ausgeführt werden, wird das diesen Befehl realisierendeMikroprogramm ausgeführt. Dazu wird der Mikroprogrammzähler auf die Startadressedieses Mikroprogrammes gesetzt.

Damit die Startadresse des zu einem Maschinenbefehl gehörenden Mikroprogrammesschnell bestimmt werden kann, dient der Maschinenbefehl oder Teile dieses Befehls (inder Regel der sog. Operationscode, der die auszuführende Operation angibt) als Start-adresse. In diesem Sinne sind Maschinenbefehle (bzw. Teile von Maschinenbefehlen) Mi-kroprogrammspeicheradressen.

Ähnlich funktionieren heutige Prozessorarchitekturen immer noch. Der zur Verfügungstehende CISC-Befehlssatz wird in eine Folge von RISC-Befehlen übersetzt und direktauf dem Prozessor ausgeführt. Dieses entspricht in entfernter Weise der Ausführung einesMikroprogramms, wie die hier vorgestellten, auf einer klassischen CISC-Architektur.

51

Page 56: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

A. Bausteine für die Digitaltechnik

Für die digitale Simulation der Versuche aus der Serie I200 stehen Ihnen eine Anzahlvon digitalen Bausteinen Verfügung. Es folgt eine kurzgefasste Funktionsbeschreibung,die Ihnen bei der Vorbereitung der Versuche helfen soll.

Symbolname Eigenschaftenhwp_nand2 Nand-Gatter mit 2 Eingängenhwp_nand3 Nand-Gatter mit 3 Eingängenhwp_nand4 Nand-Gatter mit 4 Eingängenhwp_nand8 Nand-Gatter mit 8 Eingängenhwp_and2 And-Gatter mit 2 Eingängenhwp_and3 And-Gatter mit 3 Eingängenhwp_and4 And-Gatter mit 4 Eingängenhwp_nor2 Nor-Gatter mit 2 Eingängenhwp_nor3 Nor-Gatter mit 3 Eingängenhwp_nor4 Nor-Gatter mit 4 Eingängenhwp_or2 Or-Gatter mit 2 Eingängenhwp_xor2 Exclusiv-Oder-Gatter mit 2 Eingängenhwp_inv Inverterhwp_invninv invertierender / nichtinvertierender Treiberhwp_treiber nichtinvertierender Treiber mit Tristate-Ausganghwp_mux12 (3*4)-zu-4-Multiplexerhwp_mux20 (5*4)-zu-4-Multiplexer mit Konstante 0000hwp_dff D-FlipFlop, pos. flankengesteuert, mit async. Setz- und Rücksetz-Einganghwp_jkff JK-FlipFlop, neg. flankengesteuert, mit async. Setz- und Rücksetz-Einganghwp_register 4-bit D-Register, pos. flankengesteuert, mit async. Rücksetz-Einganghwp_ROM3224 Lesespeicher (ROM), 768 Bit in 32 Worten zu 24 Bithwp_pwr Power, Symbol für die Versorgungsspannung (+ 5V), entspricht [1]hwp_gnd Ground, Symbol für Masse (0V), entspricht [0]

Wichtiger Hinweis:Nicht benutzte Eingänge von digitalen Schaltkreisen sollten nicht unbeschaltet bleiben,da sie i.d.R. ein unerwünschtes Verhalten hervorrufen. Sie müssen je nach Erfordernismit PWR oder GND verbunden werden.

Für die Darstellung der Symbole wird die IEC–Norm (International ElectrotechnicalCommission) benutzt.

52

Page 57: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Beispiele für die Signalgenerierung

B. Beispiele für die Signalgenerierung

Für die Simulation braucht man häufig Signale, die einen vorgegebenen Zeitverlauf habensollen. In diesem Abschnitt werden einige einfache Beispiele gezeigt, wie man Signalegenerieren kann.

Unsymmetrisches Rechtecksignal

Falls für eine Aufgabe ein unsymmetrisches Signal verlangt wird, könnte man es durchfolgende Befehlsfolge erzeugen:

tb : PROCESSBEGIN

Sig_A <= ’0’;wait for 10ns;Sig_A <= ’1’;wait for 20ns;Sig_A <= ’0’;wait for 5ns;Sig_A <= ’1’;wait for 15ns;Sig_A <= ’0’;wait for 25ns;Sig_A <= ’1’;wait for 30ns;Sig_A <= ’0’;wait for 10ns;Sig_A <= ’1’;wait for 15ns;Sig_A <= ’0’;wait for 5ns;Sig_A <= ’1’;wait for 25ns;

WAIT; -- will wait foreverEND PROCESS;

Das Simulationsergebnis sieht so aus:

Rechtecksignal ohne Verzögerung

Am einfachsten lässt sich ein symmetrisches Rechtecksignal durch folgende Testsequenzerzeugen:

53

Page 58: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

tb : PROCESSBEGIN

Sig_B <= ’1’;wait for 15ns;Sig_B <= ’0’;wait for 15ns;

END PROCESS;

Das Simulationsergebnis sieht so aus:

Rechtecksignal mit Verzögerung (Loop)

Ein symmetrisches Rechtecksignal mit einer Startverzögerung (Delay) kann man auchmit einer Schleife (Loop)generieren:

tb : PROCESSBEGIN

Sig_C <= ’1’;wait for 10ns;loop

Sig_C <= not Sig_C;wait for 30 ns;end loop;

WAIT; -- will wait foreverEND PROCESS;

Das Simulationsergebnis sieht so aus:

Rechtecksignal mit Verzögerung (for-Schleife)

Möchte man nur eine bestimmte Anzahl an Rechtecksignalen erzeugen, bietet sich ei-ne for-Schleife an. Eine for-Schleife kann man ebenfalls mit einer Anfangsverzögerungkombinieren.

tb : PROCESSBEGINSig_D <= ’0’;wait for 30ns;

54

Page 59: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Beispiele für die Signalgenerierung

for i in 0 to 4 loopSig_D <= ’1’;wait for 10 ns;Sig_D <= ’0’;wait for 10ns;

end loop;

WAIT; -- will wait foreverEND PROCESS;

Das Simulationsergebnis sieht so aus:

Mehrere Prozesse gleichzeitig

Natürlich ist es möglich mehrere Prozesse parallel ablaufen zulassen, um so mehrereSignale zu generieren.

a1 : PROCESSBEGIN

Sig_B <= ’1’;wait for 15ns;Sig_B <= ’0’;wait for 15ns;

END PROCESS;

a2 : PROCESSBEGIN

Sig_C <= ’1’;wait for 10ns;loop

Sig_C <= not Sig_C;wait for 30 ns;

end loop;WAIT; -- will wait foreverEND PROCESS;

a3 : PROCESSBEGINSig_D <= ’0’;wait for 30ns;

for i in 0 to 4 loop

55

Page 60: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

Sig_D <= ’1’;wait for 10 ns;Sig_D <= ’0’;wait for 10ns;

end loop;

Das Simulationsergebnis sieht so aus:

56

Page 61: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Verwendung eines Vektors aus Einzelsignalen in einer Testbench

C. Verwendung eines Vektors aus Einzelsignalen in einerTestbench

Hat man in seiner Schaltung mehrere Einzelsignale und möchte sie in der Testbench inder Vektorschreibweise verwenden, muss man folgendes machen.Man definiert in der Testbench erst einen Vektor. Anschließend wird dem Signal ein Vek-tor zugewiesen. Danach kann man dann die Wertzuweisung in der Vektorschreibweisedurchführen.Die grau unterlegten Zeilen in der Testbench (siehe unten) sorgen dafür, dass man ausz.B. vier Einzelsignalen in der Schaltung, einen Vektor in der Testbench machen kann.Siehe dazu auch Seite 4.So wie im Hardwarepraktikum die Testbench verwendet wird, macht es keinen so großenSinn, auch Ausgangssignale als Vektor in der Testbench zu definieren. Da ist es besser,in der Simulation einen Virtual Bus zu definieren. Trotzdem zeigt das Beispiel, wie manauch Ausgangssignale als Vektor definieren kann. Der Unterschied besteht eigentlich nurin der Zuweisung vom Signal zu dem Vektor.

LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.numeric_std.ALL;LIBRARY UNISIM;USE UNISIM.Vcomponents.ALL;ENTITY test12_test12_sch_tb ISEND test12_test12_sch_tb;ARCHITECTURE behavioral OF test12_test12_sch_tb IS

COMPONENT test12PORT( SH0 : IN STD_LOGIC;

SH1 : IN STD_LOGIC;E0 : IN STD_LOGIC;E1 : IN STD_LOGIC;E2 : IN STD_LOGIC;E3 : IN STD_LOGIC;Xin : IN STD_LOGIC;A0 : OUT STD_LOGIC;A1 : OUT STD_LOGIC;A2 : OUT STD_LOGIC;A3 : OUT STD_LOGIC;Xout : OUT STD_LOGIC);

END COMPONENT;

SIGNAL SH0 : STD_LOGIC;SIGNAL SH1 : STD_LOGIC;SIGNAL E0 : STD_LOGIC;SIGNAL E1 : STD_LOGIC;SIGNAL E2 : STD_LOGIC;SIGNAL E3 : STD_LOGIC;SIGNAL Xin : STD_LOGIC;

57

Page 62: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

SIGNAL A0 : STD_LOGIC;SIGNAL A1 : STD_LOGIC;SIGNAL A2 : STD_LOGIC;SIGNAL A3 : STD_LOGIC;SIGNAL Xout : STD_LOGIC;

SIGNAL E : std_logic_vector(3 downto 0);

SIGNAL A : std_logic_vector(3 downto 0);

BEGIN

UUT: test12 PORT MAP(SH0 => SH0,SH1 => SH1,E0 => E0,E1 => E1,E2 => E2,E3 => E3,Xin => Xin,A0 => A0,A1 => A1,A2 => A2,A3 => A3,Xout => Xout

);

--EingängeE0 <= E(0);

E1 <= E(1);

E2 <= E(2);

E3 <= E(3);

--AusgängeA(0) <= A0;

A(1) <= A1;

A(2) <= A2;

A(3) <= A3;

-- *** Test Bench - User Defined Section ***tb : PROCESSBEGIN

-- No shiftSH0 <= ’0’;SH1 <= ’0’;E <= "0101";Xin <= ’0’;

58

Page 63: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Verwendung eines Vektors aus Einzelsignalen in einer Testbench

wait for 50ns;END PROCESS;

-- *** End Test Bench - User Defined Section ***

END;

59

Page 64: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

D. Simulations Konfigurationsdatei

Die Simulations-Konfigurationsdatei (.wcfg Datein) kann von dem Benutzer des Simula-tors selbständig konfiguriert werden. In dieser Konfigurationsdatei stehen z.B. die Signale,die man darstellen möchte, die Farbe der Signale, die Zahlendarstellung etc. Des weiterenenthält diese Datei eventuell vorhandene Divider, Markers, Cursors etc. .

Das Schreiben einer Konfigurationsdatei läuft im Hintergrund ab. Sobald man im Simu-lationsfenster ein Signal hinzufügt, löscht, verändert etc. merkt sich die Software dieseVeränderungen. Beim schließen des Simulationsfensters wird man gefragt, ob man dieÄnderungen in der Default.wcfg abspeichern möchte. Diese Frage beantwortet man man„Yes“ . Im anschließendem Fenster kann man dann einen Dateinamen angeben, der iden-tisch zu den Versuchsnamen sein sollte. Wenn man dann die Simulation wiederholt, kannman diese Konfigurationsdatei wieder aufrufen und erhält dann die identische Anordnungim Simulationsfenster.

Bei den Versuchen IP205-IP206 und der 300er Serie werden die Simulationen aufwendi-ger. Sowohl für den Versuch IP205A1 als auch für den Versuch IP301A1 gibt es schonvorgegebene Simulations-Konfigurationsdateien (ip205a1.wcfg und ip301a1.wcfg).

Damit man für die jeweils folgenden Versuche nicht jedes mal in der Simulation die Signaleneu anordnen muss, empfiehlt es sich das Shell-Skript new-wcfg zu benutzen. Durchdas Skript wird eine vorhandene Konfigurationsdatei auf eine neue Konfigurationsdateikopiert und angepasst.

Der Aufruf des Shell-Skriptes sieht folgendermaßen aus:new-wcfg [alte.wcfg] [neue.wcfg]

Dabei ist [alte.wcfg] eine schon vorhandene Konfigurationsdatei und [neue.wcfg] die zuerzeugende Konfigurationsdatei.

Damit man dieses Skript ausführen kann öffnet man ein Terminal-Fenster und wechseltin sein Projektverzeichnis. Im Projektverzeichnis wird dann der Befehl ausgeführt. (sieheBild)

60

Page 65: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

In den Datenblättern benutzte Begriffe und Abkürzungen

E. In den Datenblättern benutzte Begriffe und Abkürzungen

Die Ihnen zur Verfügung gestellten Bausteine sind der Serie 74LSxxxx entnommen.In der Typenbezeichnung bedeutet 74, dass es sich um einen TTL-Baustein (TTL →Transistor-Transistor-Logik) für den Temperaturbereich 0˚C bis 70˚C handelt, L (LowPower) weist auf den relativ niedrigen Stromverbrauch hin und S (Schottky) auf dieVerwendung von schnell schaltenden Halbleitern in Schottky-Technologie. Für xxxx isteine bis zu vierstellige Ziffer einzusetzen, die die verschiedenen Typen unterscheidet. DieBetriebsspannung beträgt +5 Volt, [0] entspricht einer Spannung zwischen 0 und 0,8Volt und [1] einer Spannung zwischen 2,4 Volt und 5 Volt. Zur Vereinfachung wurde dieTypenbezeichnung durch einen Namen ersetzt, der die Funktion beschreibt (z.B. 74LS00→ nand-2 ).

Besondere Beachtung verdient das zeitliche Verhalten der Bausteine. Bei nichtgetaktetenBausteinen ist die je nach Pegelwechsel unterschiedliche Verzögerungszeit zu beachten,bei getakteten Bausteinen

1. die maximale Taktfrequenz,

2. die minimale Impulsbreite,

3. die Setzzeit (set-up time) (die Zeit, während der die Eingangsinformation vor derschaltenden Flanke des Taktimpulses an den Eingängen bereitstehen muss),

4. die Haltezeit (hold time) (die Zeit, die die Eingangsinformation nach der schalten-den Flanke des Taktimpulses an den Eingängen anstehen muss).

Es folgen einige der in Datenblättern benutzten Abkürzungen:

tpdpropagation delay time, die Verzögerungs- oder Schaltzeit.

tPHL

propagation delay time, high-to-low-level output, die Verzögerungszeit beim Übergangvon [1] zu [0].

tPLH

propagation delay time, low-to-high-level output, die Verzögerungszeit beim Übergangvon [0] zu [1].

twpulse duration (width), die minimale Impulsbreite.

tsusetup time, die Setzzeit.

thhold time, die Haltezeit.

61

Page 66: HARDWARE - PRAKTIKUM...HARDWARE - PRAKTIKUM Digitaltechnik I200 Version 1/2016 16.März2016 EinführungindieXilinxISEDesignSuite I201:Schaltnetze I202:FlipflopsundRAM I203:Schaltwerke

Grundpraktikum für Ingenieure

F. Literatur zum Grundpraktikum Informatik

Schimmler Skriptum zur Vorlesung Digitale Systemehttp://www.techinf.informatik.uni-kiel.de/de/lehre/vorlesungen/inf-digisys-digitale-systeme-vorlesung

Schiffmann, Schmitz Technische Informatik, 1. Grundlagen der digitalen ElektronikSpringer–Verlag, 2004

Tietze, Schenk Halbleiter–SchaltungstechnikSpringer–Verlag, 2002

Paul Elektrotechnik und Elektronik für InformatikerBand 2: Grundgebiete der ElektronikB.G. Teubner, 1995

Liebig, Thome Logischer Entwurf digitaler SystemeSpringer–Verlag, 1996

Hinweise zu den Protokollen:http://www.techinf.informatik.uni-kiel.de/de/lehre/praktika-1/hardwarepraktikum/protokolle-1

Homepage des Praktikums:http://www.techinf.informatik.uni-kiel.de/de/lehre/praktika-1

62