• Keine Ergebnisse gefunden

Bit   n   Eingang …

N/A
N/A
Protected

Academic year: 2022

Aktie "Bit   n   Eingang …"

Copied!
25
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Speichern von Zuständen

Erweiterung eines R‐S‐Latch zu einem D‐Latch (D=Data, C=Clock) C D altes Q neues Q

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

R S altes Q neues Q

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

R

S

(2)

Beispiel

Ergebnis ist ein Bit

Eingang n Bit

Kombinatorische Schaltung

Zeit

Wir wollen das Ergebnis einer kombinatorischen Schaltung in einem  D‐Latch speichern. Q soll wohldefiniert entweder den Inhalt vor 

oder nach der „Berechnung“ speichern. 

D‐Latch D (Daten)

Q

NOT(Q) C (Clock)

Problem: Wann liegt das Ergebnis‐Bit stabil an D an? 

(3)

Lösung: Taktung

Ergebnis ist ein Bit

Eingang n Bit

Kombinatorische Schaltung

Zeit

Wir wollen das Ergebnis einer kombinatorischen Schaltung in einem  D‐Latch speichern. Q soll wohldefiniert entweder den Inhalt vor 

oder nach der „Berechnung“ speichern. 

D‐Latch D (Daten)

Q

NOT(Q) C (Clock)

Letztes Clock‐Signal

Nächstes Clock‐Signal Takt‐Zyklus

(4)

D‐Latches sind Transparent bzgl. Taktsignal

R

S

D

C

Q

(5)

D‐Flip‐Flop (ist nicht transparent)

Ausgang ändert sich nur bei einer fallenden Taktflanke.

D Latch D

C

Q D

Latch D

C D Q

C

!Q

D

C

Q

(6)

Logische Bausteine

Blockschaltdiagramme

(7)

Bausteine als Black‐Box

Wir haben jetzt einige Basisbausteine kennen gelernt.

In dieser Vorlesung sind wir mit Blockschaltbildern in der Regel eine  Abstraktionsebene höher.

Die betrachteten Bausteine sind „Kästen“ mit Eingangsleitungen und 

Ausgangsleitungen. Die Leitungen können entweder Daten (Datenleitungen) oder  Steuersignale (Steuerleitungen) transportieren.

Wie die Bausteine der Blockschaltbilder intern mit Grundbausteinen aufgebaut sind  und wie die Taktung der einzelnen Bausteine genau abläuft betrachten wir in dieser  Vorlesung nicht weiter. 

Bemerkung: In Blockschaltbildern  wird das für sequentielle Bausteine  erforderliche Clock‐Signal häufig der  Übersicht halber weg gelassen.

Baustein

Ausgangsleitungen Eingangsleitungen

Beispiel eines abstrakten Bausteins

(8)

Verschaltung von Bausteinen

n Bits Einzelne Leitung

Bus (lassen häufig die Markierung n‐Bits weg)

Verbinden von Bauelementen Datenflussrichtung

Eingabe eines logischen Bausteins Ausgabe

eines logischen Bausteins

Kreuzungen und Verbindungen Beispiel

Leitungen kreuzen sich, sind aber nicht verbunden

Verbindungen außerhalb der

Leitungsendpunkte sind durch einen

Punkt gekennzeichnet.

Baustein A

Baustein B

Baustein C

(9)

Arithmetische, logische Einheit (ALU)

ALU

Zero (1) Result (n) Overflow (1) ALU Operation (k)

CarryOut (1) A (n)

B (n)

Angabe in Klammern  ist die Anzahl Bits.

Beispiel‐Funktionen AND

OR NOT

Addition Subtraktion Vergleich

Ggf. ist die ALU auf  eine Operation  festgelegt. Dann  Entfällt der Eingang  und ALU wird mit  dem Namen der  Operation ersetzt.

Kombinatorisch?

Sequentiell?

(10)

Register und Shift‐Register

Speichert n Bits Eingang (n)

Ausgang (n)

Shift (1) Load (1) Reset (1)

Kombinatorisch?

Sequentiell?

(11)

Control

Kombinatorisch?

Sequentiell?

Control

Ein Baustein der das Zusammenarbeiten von anderen Bausteinen koordiniert.

In Abhängigkeit der Eingänge werden die passenden Steuerleitungen geschaltet.

Ausgänge sind Steuerleitungen  in andere Bausteine Eingänge sind 

Datenleitungen aus  anderen Bausteinen

(12)

Control Beispiel

4‐Bit‐Register R1

Store R1 4‐Bit‐Register R2

R2 Bit 0

Control

Zero

Store R2

SUB

Control soll folgenden Algorithmus implementieren:

wenn R2 gerade und R1-R2=0, dann R1 = 0

wenn R2 ungerade und R1-R2!=0, dann R2 = R1-R2

R2 Bit 0

Zero Store R1

Store R2

0 0

0 1

1 0

1 1

Control wird als kombinatorische  Schaltung realisiert.

Hierzu die Wahrheitstabelle:

Anhand der Wahrheitstabelle  wird dann die Schaltung gebaut.

Rückgekoppelte Register haben  immer einen wohldefinierten  Zustand, da Register nur zur  Clock‐Flanke aktualisiert werden.

Eingabe Ausgabe

(13)

Darstellung von Algorithmen

(14)

Pseudo‐Code‐Darstellungen

Elementaranweisungen

Variablenzuweisungen, z.B.:

x = 42

Arithmetik, z.B.:

y = 10

x = (42 + y) * 20

Das Symbol „=“ beinhaltet implizit eine zeitliche Abfolge, damit ist  z.B. sinnvoll:

x = x + 1

Abkürzende Schreibweise für voriges Konstrukt: x++

Allgemein: als Elementaranweisung betrachten wir jede 

Anweisung, die auf der betrachteten Abstraktionsebene nicht 

weiter sinnvoll in eine Folge von einfacheren Anweisungen 

unterteilbar ist.

(15)

Felder

Felder für den Zugriff auf den Speicher, z.B.: A[]

Zugriff auf ite Speicherstelle: A[i]

Beispiel:

0x0f00 : 14 A[0]

0x0f01 : 15 A[1]

0x0f02 : 42 A[2]

0x0f03 : 43 A[3]

...

...

0x0f0f : 255 A[15]

(16)

Sequenz von Elementaranweisungen

Setze i auf i+1 Setze j auf 2*i

usw.

Jedes Programm beginnt an einer Stelle und terminiert  (hoffentlich) irgendwann.

Im Flussdiagramm ist Beginn und Ende des Programms  mit den ovalen Symbolen dargestellt.

Im Beispiel also „Start“ und „Ende“.

Das einfachste Programm arbeitet einfach eine  Sequenz von elementaren Anweisungen ab.

Im Flussdiagramm wird so eine Sequenz durch ein  Rechteck dargestellt.

Die Abarbeitungsrichtung des Programms wird durch  die Pfeile gekennzeichnet.

Start

Ende

(17)

If‐then‐else

if‐then‐else am Beispiel:

if(i<10) then

<Code-Block 1>

else

<Code-Block 2>

Ist  i<10?

Code‐Block 1 Code‐Block 2 ja

nein

(18)

Switch‐Statement

Switch‐Statement am  Beispiel:

switch(i) case 1:

<Code-Block 1>

case 2:

<Code-Block 2>

...

defaut:

<Code-Block n>

i=1?

Code‐Block 2 Code‐Block 1 ja

Code‐Block n i=2?

nein

ja

nein

...

(19)

For‐Schleife

For‐Schleife am Beispiel:

for(i=0; i<10; i++) {

<das innere der Schleife>

}

Bedeutet:

• Initialisiere i mit 0

• Führe das innere der Schleife aus

• Erhöhe i um eins

• Wiederhole wenn immer noch i<10

Ist  i<10?

Ende Start

Innere der Schleife Setze i auf 0

Erhöhe i um 1 ja

nein

(20)

While‐Schleife

While‐Schleife an Beispiel:

i=0

while(i<10) {

<das innere

der Schleife>

i++

}

Bedeutet:

• Initialisiere i mit 0

• Führe das innere der Schleife aus

• Erhöhe i um eins

• Wiederhole wenn immer noch i<10

Ist  i<10?

Ende Start

Innere der Schleife Setze i auf 0

Erhöhe i um 1 ja

nein

(21)

Gegeben seien die ganzzahligen Variablen n und m.

Bestimme größtes k welches n

k

< m erfüllt:

Beispiel

(22)

Multiplikation

(23)

Multiplikation nach der Schulmethode

Gegeben seien die Binärzahlen A und B. Was ist a * b? Beispiel:

Multiplikand A: 1 1 0 1 0 Multiplikator B: * 1 1 0 1 ---

Produkt:

(24)

Maximale Länge des Ergebnisses

Beobachtung: Multiplikand der Länge n Bits und Multiplikator der 

Länge m Bits ergibt Produkt einer Länge mit maximal n+m Bits.

(25)

Das Verfahren als Algorithmus

Beispiel 1001*0101:

1 0 0 1

* 0 1 0 1 --- 1 0 0 1 + 0 0 0 0 ---

1 0 0 1 + 1 0 0 1

--- 1 0 1 1 0 1 + 0 0 0 0

--- 0 1 0 1 1 0 1

Start Teste erstes  Multiplikator

‐Bit

Shifte Multiplikand ein  Bit nach Links

Shifte Multiplikator  ein Bit nach Rechts Addiere Multiplikand 

zum Produkt

5ter  Durch‐

lauf?

Ende

0 1

ja

nein Beispiel für 

4‐Bit‐Zahlen

Referenzen

ÄHNLICHE DOKUMENTE

Estructura robusta que se compone de 4 parasoles (Poker) – 2 parasoles (Double) Nuevo soporte vertical en aluminio ycon acabado especial en imitacion madera Iroko y varillas

5 Platten (2950mm) abzuschnüren Den Startstreifen nach Variante A oder B montieren sodass am Ortgang 30mm Aufstellhöhe verbleiben.. Befestigung erfolgt durch 2 mitgelieferte

Einen Augenblick lang wird alles größer als es tatsächlich ist – man merkt nicht mehr, dass die 120 Priester vielleicht in diesem Augenblick auch mit den Leviten rivalisieren, wer

Aluminium Aussen – Eck - Verbinder für unterschiedliche Ausladungen Winkelverbindungen 90° ( andere Gradzahlen auf Anfrage lieferbar ! ).. Wir fertigen halbrunde Fensterbänke

Der zahnfarbene Dentalwerkstoff verfügt über eine hervorragende Lichtleitfähigkeit, so dass sich die Restauration gut in die Restzahnsubstanz eingliedern lässt und so für

Compact Endmill cutter cylindrical 90°, with inner coolant Groove- and shoulder milling, Helical Milling and universal application.

maximales Gewicht des Flügels 130kg - (kipp, dreh-kipp). Gewicht des Glases 1m² mit einer Stärke von 1mm = 2,5 kg maximales Gewicht 80kg - (Dreieck-, Rund-,

Zur Seiteneinstellung Flügel aushängen, dass Standard-Druckstück entfernen und nach Bedarf „Druckstück rechts“ (R), Mat.-Nr.. Beschlagteile ALU 5100 ALU. 1) Vor