Top Banner
A Digitaltechnik 1 Kombinatorische Schaltungen Revision 1.01
75

Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Jul 19, 2018

Download

Documents

phungnhi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

A

Digitaltechnik

1 KombinatorischeSchaltungen

Revision 1.01

Page 2: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Boole’sche Algebra

Gatter

Rechenregeln

Minimierung kombinatorischer Schaltungen

Kombinatorische Schaltungen in Verilog

Page 3: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Kombinatorische Schaltungen

I Kombinatorische Schaltungen haben Eingange und Ausgange,und sind zyklusfrei

I Abstraktion: Die Werte der Ausgange sind durcheine Boole’sche Funktion der Eingange gegeben

8 Wirklichkeit: Schaltverzogerung! (spater)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 3

Page 4: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Boole’sche Algebra

George Boole(1815 – 1864)

I Zwei Wahrheitswerte: {0, 1}(Konstanten)

I Variablen: V = {x, y, z, . . .}I Boolesche Operatoren:¬, ∧, ∨,→,↔(absteigende Prioritat)

I Rechenregeln (spater)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 4

Page 5: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Semantik der Boole’schen Algebra

Semantik der Operatoren:

x y ¬x x ∧ y x ∨ y x→ y x↔ y

0 0 1 0 0 1 10 1 1 0 1 1 01 0 0 0 1 0 01 1 0 1 1 1 1

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 5

Page 6: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Semantik der Boole’schen Algebra

I eine Belegung β ist eine Abbildung β : V → {0, 1}I eine Belegung wird rekursiv uber die Formel-Struktur ausgewertetI eine Belegung β erfullt eine Formel f gdw. β(f) = 1

I eine Formel heißt erfullbar gdw. es eine erfullende Belegung gibt(engl. satisfiable⇒ SAT)

I eine Formel heißt Tautologie gdw. alle Belegungen erfullend sind

I Formel g wird von Formel f impliziert (f ⇒ g) gdw. f → g

TautologieI Formeln f und g sind aquivalent (f ≡ g) gdw. f ↔ g Tautologie

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 6

Page 7: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Semantik der Boole’schen Algebra

I eine Belegung β ist eine Abbildung β : V → {0, 1}I eine Belegung wird rekursiv uber die Formel-Struktur ausgewertetI eine Belegung β erfullt eine Formel f gdw. β(f) = 1

I eine Formel heißt erfullbar gdw. es eine erfullende Belegung gibt(engl. satisfiable⇒ SAT)

I eine Formel heißt Tautologie gdw. alle Belegungen erfullend sind

I Formel g wird von Formel f impliziert (f ⇒ g) gdw. f → g

TautologieI Formeln f und g sind aquivalent (f ≡ g) gdw. f ↔ g Tautologie

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 6

Page 8: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Basis

I nicht alle Operatoren sind notwendigI eine Basis B ist eine funktionale minimale Anzahl von OperatorenI funktional, heißt alle anderen lassen sich damit darstellen

I Beispiel: x ∨ y ≡ (x ∧ x) ∧ (y ∧ y) wenn nur NAND vorhanden

I technologisch bedingt ist das NAND sehr beliebtI Software Reprasentation von Schaltkreisen mit B = {¬,∧}

⇒ Signed-And-Graphs

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 7

Page 9: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Basis

I nicht alle Operatoren sind notwendigI eine Basis B ist eine funktionale minimale Anzahl von OperatorenI funktional, heißt alle anderen lassen sich damit darstellen

I Beispiel: x ∨ y ≡ (x ∧ x) ∧ (y ∧ y) wenn nur NAND vorhanden

I technologisch bedingt ist das NAND sehr beliebtI Software Reprasentation von Schaltkreisen mit B = {¬,∧}

⇒ Signed-And-Graphs

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 7

Page 10: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Gatter – Teil I

Bezeichnung Boolesche Algebraische Traditionelles IEEE(Verilog) Logik Schreibweise Schaltbild Schaltbild

Disjunktion(||) x ∨ y x+ y 1

NegierteDisjunktion

(nicht in Verilog)¬(x ∨ y) x+ y 1

Konjunktion(&&) x ∧ y x · y

(oder x.y, xy, . . .)&

NegierteKonjunktion

(nicht in Verilog)¬(x ∧ y) x · y &

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 8

Page 11: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Gatter – Teil II

Bezeichnung Boolesche Algebraische Traditionelles IEEE(Verilog) Logik Schreibweise Schaltbild Schaltbild

Exklusiv-Oder(ˆ)

x 6↔ y(oder x 6= y)

x⊕ y 1

Aquivalenz(==)

x↔ y(oder x = y)

x⊕ y 1

Implikation(nicht in Verilog)

x→ y 1

Negation(!) ¬x x

(oder x′)1

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 9

Page 12: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Einfache Rechenregeln der Booleschen Algebra

Konjunktive DisjunktiveFormulierung Formulierung

Kommutativitat x ∧ y ≡ y ∧ x x ∨ y ≡ y ∨ x

Assoziativitat x ∧ (y ∧ z) ≡ (x ∧ y) ∧ z x ∨ (y ∨ z) ≡ (x ∨ y) ∨ z

Distributivitat x ∧ (y ∨ z) ≡ (x ∧ y) ∨ (x ∧ z) x ∨ (y ∧ z) ≡ (x ∨ y) ∧ (x ∨ z)

De’Morgan ¬(x ∧ y) ≡ ¬x ∨ ¬y ¬(x ∨ y) ≡ ¬x ∧ ¬y

Idempotenz x ∧ x ≡ x x ∨ x ≡ x

Controlling Value x ∧ 0 ≡ 0 x ∨ 1 ≡ 1

Neutraler Wert x ∧ 1 ≡ x x ∨ 0 ≡ x

Doppelte Negation ¬(¬x) ≡ x

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 10

Page 13: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

De’Morgan in Action

Und-Oder Schaltung lasst sich einfach als NAND-Schaltung darstellen!

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 11

Page 14: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Komplexe Rechenregeln – Teil I

Shannonsches Expansionstheorem (Fallunterscheidung)

e ≡ x ∧ e[1/x] ∨ ¬x ∧ e[0/x]

mitI e, f Boolesche Ausdrucke,I x Variable,I e[f/x] Substitution von x durch f in e.

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 12

Page 15: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Beispiel Shannonsches Expansionstheorem

Beispiel: (zwei Darstellungen fur Exklusiv-Oder)

(x ∨ y) ∧ (¬x ∨ ¬y)≡ x ∧ (1 ∨ y) ∧ (¬1 ∨ ¬y) ∨ ¬x ∧ (0 ∨ y) ∧ (¬0 ∨ ¬y)

≡ x ∧ 1 ∧ (0 ∨ ¬y) ∨ ¬x ∧ y ∧ (1 ∨ ¬y)

≡ x ∧ 1 ∧ ¬y ∨ ¬x ∧ y ∧ 1

≡ x ∧ ¬y ∨ ¬x ∧ y

Algebraische Schreibweise: (= statt ≡ ist auch erlaubt)

(x+ y) · (x+ y) ≡ x · y + x · y

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 13

Page 16: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Komplexe Rechenregeln – Teil II

Abschwachung x · y ≡ x, falls x⇒ y (y schwacher als x).

Verstarkung x+ y ≡ x, falls y ⇒ x (y starker als x).

Konsensus (Fallunterscheidung und Abschwachung)

x · y + x · z + y · z ≡ x · y + x · z

Intuition: If-Then-Else schwacher als Konjunktion vonThen und Else.

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 14

Page 17: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Komplexe Rechenregeln – Teil II

Abschwachung x · y ≡ x, falls x⇒ y (y schwacher als x).

Verstarkung x+ y ≡ x, falls y ⇒ x (y starker als x).

Konsensus (Fallunterscheidung und Abschwachung)

x · y + x · z + y · z ≡ x · y + x · z

Intuition: If-Then-Else schwacher als Konjunktion vonThen und Else.

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 14

Page 18: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Komplexe Rechenregeln – Teil II

Abschwachung x · y ≡ x, falls x⇒ y (y schwacher als x).

Verstarkung x+ y ≡ x, falls y ⇒ x (y starker als x).

Konsensus (Fallunterscheidung und Abschwachung)

x · y + x · z + y · z ≡ x · y + x · z

Intuition: If-Then-Else schwacher als Konjunktion vonThen und Else.

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 14

Page 19: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Beweis Konsensus-Regel mit Funktionstabelle

x y z x · y + x · z x · y + x · z + y · z

0 0 0 0 0

0 0 1 1 1

0 1 0 0 0

0 1 1 1 1

1 0 0 0 0

1 0 1 0 0

1 1 0 1 1

1 1 1 1 1

8 Muhsam fur viele Variablen (exponentielle Laufzeit)!

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 15

Page 20: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Regelbasierter Beweis Konsensus-Regel

(x · y + x · z + y · z)[0/x] ≡ 0 · y + 0 · z + y · z Substitution

≡ 0 + 1 · z + y · z Controlling Value ·

≡ 0 + z + y · z Non-Controlling Value ·

≡ z + y · z Non-Controlling Value +

≡ 1 · z + y · z Non-Controlling Value ·

≡ (1 + y) · z Distributivitat ·

≡ z Controlling Value +

Analog erhalt man (x · y + x · z + y · z)[1/x] ≡ y

Mit Shannonschem Expansionstheorem:x · y + x · z + y · z ≡ x · (x · y + x · z + y · z)[1/x] +

x · (x · y + x · z + y · z)[0/x]

≡ x · y + x · z

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 16

Page 21: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Regelbasierter Beweis Konsensus-Regel

(x · y + x · z + y · z)[0/x] ≡ 0 · y + 0 · z + y · z Substitution

≡ 0 + 1 · z + y · z Controlling Value ·

≡ 0 + z + y · z Non-Controlling Value ·

≡ z + y · z Non-Controlling Value +

≡ 1 · z + y · z Non-Controlling Value ·

≡ (1 + y) · z Distributivitat ·

≡ z Controlling Value +

Analog erhalt man (x · y + x · z + y · z)[1/x] ≡ y

Mit Shannonschem Expansionstheorem:x · y + x · z + y · z ≡ x · (x · y + x · z + y · z)[1/x] +

x · (x · y + x · z + y · z)[0/x]

≡ x · y + x · z

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 16

Page 22: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Regelbasierter Beweis Konsensus-Regel

(x · y + x · z + y · z)[0/x] ≡ 0 · y + 0 · z + y · z Substitution

≡ 0 + 1 · z + y · z Controlling Value ·

≡ 0 + z + y · z Non-Controlling Value ·

≡ z + y · z Non-Controlling Value +

≡ 1 · z + y · z Non-Controlling Value ·

≡ (1 + y) · z Distributivitat ·

≡ z Controlling Value +

Analog erhalt man (x · y + x · z + y · z)[1/x] ≡ y

Mit Shannonschem Expansionstheorem:x · y + x · z + y · z ≡ x · (x · y + x · z + y · z)[1/x] +

x · (x · y + x · z + y · z)[0/x]

≡ x · y + x · z

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 16

Page 23: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Disjunktive Normalform (DNF)

I gegeben eine feste Menge von Variablen

I ein Literal ist eine negierte oder unnegierte Variable, z.B. x, x, a, z,. . .

I ein Produktterm ist eine Konjunktion von Literalen, z.B x · y, b · c, . . .

I ein Minterm ist ein maximaler Produktterm (enthalt alle Variablen)

I eine DNF ist eine Disjunktion von Produkttermen (wie im Beispiel)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 17

Page 24: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

DNF-Beispiel

+

DNF

Literal

Produktterm

a b a dbc+c

man bezeichnet eine DNF auch als ein Polynom

die Produktterme heißen dann Monome

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 18

Page 25: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

PLA

in0

in1

in2

out0

out1

PLAs implementieren DNF

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 19

Page 26: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

PLA

in0

in1

in2

out0

out1

PLAs implementieren DNF

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 19

Page 27: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Regelbasierte Minimierung

Annahme: Chipgroße in etwa linear in der Große der Formel

Gegeben: Zu implementierende Funktion f dargestellt als Formel

Gesucht: (moglichst) minimal große Formel g mit f ≡ g

Beispiel:ac ∨ cb ∨ abd

Minimierung:ac ∨ cb ∨ abd ≡ ac ∨ cb ∨ ab ∨ abd Konsenus uber c

≡ ac ∨ cb ∨ ab Verstarkung

≡ ac ∨ cb Konsensus uber c

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 20

Page 28: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Regelbasierte Minimierung

Annahme: Chipgroße in etwa linear in der Große der Formel

Gegeben: Zu implementierende Funktion f dargestellt als Formel

Gesucht: (moglichst) minimal große Formel g mit f ≡ g

Beispiel:ac ∨ cb ∨ abd

Minimierung:ac ∨ cb ∨ abd ≡ ac ∨ cb ∨ ab ∨ abd Konsenus uber c

≡ ac ∨ cb ∨ ab Verstarkung

≡ ac ∨ cb Konsensus uber c

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 20

Page 29: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Zweistufige Logik

d

a

b

c

1. Stufe 2. Stufe 2. Stufe1. Stufe

a

c

b

(gleiches Beispiel wie bei der Minimierung)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 21

Page 30: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Karnaugh-Diagramme

I auch Karnaugh-Veitch-Diagramme, KV-Diagramme,Karnaugh-Maps, etc.

I praktikabel bis zu 5 VariablenI 2-Dimensionale Anordnung einer FunktionstabelleI benachbarte Zellen unterscheiden sich in einem Bit

0 1

2 3

3

2

1

0 0 0 0

0

0

0 1

1

01

1 1

0 0

0 1

2 Variablen

d

c

c ∧ ddcIndexMinTerm

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 22

Page 31: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Erzeugung des Gitters von Karnaugh-Diagrammen

0 1 72 3

0 1 5 4

6

8 9

1510 11 14

1213

0 1

2 3 72 3

0 1 5 4

6c c

1 Variable 2 Variablen

d d d

3 Variablen

4 Variablen

b

d

c

b

a

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 23

Page 32: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Lesen von Karnaugh-Diagrammen – 8er und 4er Blocke

a a

c

b

d d

b b

d

c

cd ac

a

cc

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 24

Page 33: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Lesen von Karnaugh-Diagrammen – 2er und 1er Blocke

a a

cc

b

a

c

b b

ddd

abd acd abcd

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 25

Page 34: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Minimierung mit Karnaugh-Diagrammen

À Hinreichend großes Gitternetz erstellen

Á Positive Literale markieren

 Zu maximalen Blocken zusammenfassen

à Minimale Uberdeckung ablesen

Zur Ubung:http://tech-www.informatik.uni-hamburg.de/applets/kvd/

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 26

Page 35: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Karnaugh-Diagramme – Beispiel

72 3

0 1 5 4

6

1111

0011

0000

8 9

10 11 15

13 12

14

0011

a

c

b

d

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

9

10

11

12

13

14

15

1

2

3

4

5

6

7

8

1

1

1

1

00 0

10

0

11

1

00 0

10

0

11

1

00 0

10

0

11

1

00 0

10

0

11

1

1

1

0

0

1

1

0

0

0

0

0

0

1

1

1

1

MintermIndex a b c d ac + cb + abd

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 27

Page 36: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Karnaugh Maps mit Don’t Cares

0 10 1 0 1

2 30 1

1

2 30 1

1

2 30 1

1 −0 1

cc

d d d

c

c + dc + dcd + cd 3

2

1

0 0 0

0

0 1

1

01

1 1

1

c d fMinTerm

Index

Don’t Cares “–” konnen zur Vergroßerung von Blockenverwendet werden

(mussen aber nicht abgedeckt werden)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 28

Page 37: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Implikanten und Primimplikanten

I ein Implikant einer DNF ist ein implizierender Produktterm

z.B. ein Monom oder der Konsensus zweier Monome

Block im Karnaugh-Diagramm

I ein Primimplikant ist ein maximaler Implikant

entspricht maximalen Block, der in keine Richtung erweitert werdenkann

I ein Kernimplikant uberdeckt einen sonst nicht uberdecktenMinterm

I ein redundanter Primimplikant wird von Kernimplikanten uberdeckt

z.B. der Konsens von zwei Primimplikanten

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 29

Page 38: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Abstrakte Minimierungsmethode

Einfache Konsensusregel

x · y + x · y ≡ y

(Beweis im Buch)

Auch fur mehr als zwei Variablen:

a · b · c · d + a · b · c · d ≡ b · c · d

1. Generiere alle Primimplikanten durch einfache Konsensusregel2. Gib Kernimplikanten aus, da in jeder minimalen DNF enthalten3. Entferne redundante Primimplikanten4. Wahle minimale Uberdeckung aus restlichen Primimplikanten

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 30

Page 39: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Gegeben Funktionstabelle

MintermIndex a b c d

Funktions-wert

MintermIndex a b c d

Funktions-wert

0 0 0 0 0 1 8 1 0 0 0 11 0 0 0 1 0 9 1 0 0 1 02 0 0 1 0 1 10 1 0 1 0 13 0 0 1 1 0 11 1 0 1 1 04 0 1 0 0 0 12 1 1 0 0 15 0 1 0 1 1 13 1 1 0 1 16 0 1 1 0 0 14 1 1 1 0 07 0 1 1 1 0 15 1 1 1 1 1

(Achtung: anderes Beispiel als beim Karnaugh-Diagramm)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 31

Page 40: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren: Generierung der Primimplikanten

Generierung aller Primimplikanten Schritt 1

MintermIndizes a b c d

AnzahlEinsen Primimplikant

0 0 0 0 0 0

nein

2 0 0 1 0 1

nein

8 1 0 0 0 1

nein

5 0 1 0 1 2

nein

10 1 0 1 0 2

nein

12 1 1 0 0 2

nein

13 1 1 0 1 3

nein

15 1 1 1 1 4

nein

(Gruppeneinteilung nach Anzahl Einsen reduziert Konsensusversuche)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 32

Page 41: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren: Generierung der Primimplikanten

Generierung aller Primimplikanten Schritt 1

MintermIndizes a b c d

AnzahlEinsen Primimplikant

0 0 0 0 0 0 nein

2 0 0 1 0 1 nein8 1 0 0 0 1 nein

5 0 1 0 1 2 nein10 1 0 1 0 2 nein12 1 1 0 0 2 nein

13 1 1 0 1 3 nein

15 1 1 1 1 4 nein

(Gruppeneinteilung nach Anzahl Einsen reduziert Konsensusversuche)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 32

Page 42: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Generierung aller Primimplikanten Schritt 2

MintermIndizes a b c d

AnzahlEinsen Primimplikant

0, 2 0 0 – 0 0

nein

0, 8 – 0 0 0 0

nein

2,10 – 0 1 0 1

nein

8,10 1 0 – 0 1

nein

8,12 1 – 0 0 1

ja

5,13 – 1 0 1 2

ja

12,13 1 1 0 – 2

ja

13,15 1 1 – 1 3

ja

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 33

Page 43: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Generierung aller Primimplikanten Schritt 2

MintermIndizes a b c d

AnzahlEinsen Primimplikant

0, 2 0 0 – 0 0 nein0, 8 – 0 0 0 0 nein

2,10 – 0 1 0 1 nein8,10 1 0 – 0 1 nein8,12 1 – 0 0 1 ja

5,13 – 1 0 1 2 ja12,13 1 1 0 – 2 ja

13,15 1 1 – 1 3 ja

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 33

Page 44: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Generierung aller Primimplikanten Schritt 3

MintermIndizes a b c d

AnzahlEinsen Primimplikant

0,2,8,10 – 0 – 0 0

ja

0,8,2,10 – 0 – 0 0

redundant

Alle nicht weiter vereinfachbaren Implikanten sind Primimplikanten:

8,12 5,13 12,13 13,15 0,2,8,10

a · c · d b · c · d a · b · c a · b · d b · d

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 34

Page 45: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Generierung aller Primimplikanten Schritt 3

MintermIndizes a b c d

AnzahlEinsen Primimplikant

0,2,8,10 – 0 – 0 0 ja0,8,2,10 – 0 – 0 0 redundant

Alle nicht weiter vereinfachbaren Implikanten sind Primimplikanten:

8,12 5,13 12,13 13,15 0,2,8,10

a · c · d b · c · d a · b · c a · b · d b · d

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 34

Page 46: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Generierung aller Primimplikanten Schritt 3

MintermIndizes a b c d

AnzahlEinsen Primimplikant

0,2,8,10 – 0 – 0 0 ja0,8,2,10 – 0 – 0 0 redundant

Alle nicht weiter vereinfachbaren Implikanten sind Primimplikanten:

8,12 5,13 12,13 13,15 0,2,8,10

a · c · d b · c · d a · b · c a · b · d b · d

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 34

Page 47: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Finde minimale Uberdeckung mit Primimplikantentafel

0 2 5 8 10 12 13 15

8,12

5,13

12,13

13,15

0,2,8,10

= Minterme in Primimplikanten= Minterme in Kernimplikanten= Minterme uberdeckt von Kernimplikanten

Minimalpolynom enthalt alle Kernprimimplikanten,aber nur entweder 8,12 oder 12,13

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 35

Page 48: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Finde minimale Uberdeckung mit Primimplikantentafel

0 2 5 8 10 12 13 15

8,12

5,13

12,13

13,15

0,2,8,10

= Minterme in Primimplikanten= Minterme in Kernimplikanten= Minterme uberdeckt von Kernimplikanten

Minimalpolynom enthalt alle Kernprimimplikanten,aber nur entweder 8,12 oder 12,13

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 35

Page 49: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren

Finde minimale Uberdeckung mit Primimplikantentafel

0 2 5 8 10 12 13 15

8,12

5,13

12,13

13,15

0,2,8,10

= Minterme in Primimplikanten= Minterme in Kernimplikanten= Minterme uberdeckt von Kernimplikanten

Minimalpolynom enthalt alle Kernprimimplikanten,aber nur entweder 8,12 oder 12,13

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 35

Page 50: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey-Verfahren: Zusammenfassung

À Alle Wahrheitsbelegungen mit Wahrheitswert 1 ausder Funktionstabelle auswahlen

Á Mit der einfachen Konsensusregel allePrimimplikanten generieren

 Kernimplikanten suchen,redundante Primimplikanten entfernen undUberdeckung aller Primimplikanten bestimmen

à Die Disjunktion der Primimplikanten der Uberdeckungergibt die gewunschte minimierte Formel

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 36

Page 51: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey mit Don’t Cares

Generierung Primimplikanten Schritt 1

3

2

1

0 0 0

0

0 1

1

01

1 1

1

c d fMinTerm

Index MintermIndizes c d

AnzahlEinsen Primimplikant

0 0 0 0

nein

1 0 1 1

nein

3 1 1 2

nein

Der Don’t Care Minterm 1 wird zunachst normal als Minterm behandelt

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 37

Page 52: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey mit Don’t Cares

Generierung Primimplikanten Schritt 1

3

2

1

0 0 0

0

0 1

1

01

1 1

1

c d fMinTerm

Index MintermIndizes c d

AnzahlEinsen Primimplikant

0 0 0 0 nein

1 0 1 1 nein

3 1 1 2 nein

Der Don’t Care Minterm 1 wird zunachst normal als Minterm behandelt

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 37

Page 53: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey mit Don’t Cares

Generierung Primimplikanten Schritt 2

MintermIndizes c d

AnzahlEinsen Primimplikant

0,1 0 – 0 ja

1,3 – 1 1 ja

Primimplikanten werden wie gewohnt bestimmt

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 38

Page 54: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Quine-McCluskey mit Don’t Cares

Minimale Uberdeckung mit Primimplikantentafel

0 �1 3

0,1

1,3

Ignoriere alle Don’t Care Spalten!

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 39

Page 55: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Zusammenfassung zweitstufiger Minimierung

I Quine-McCluskey ist exponentiell in der Anzahl Minterme

da exponentiell viele Primimplikanten und

Uberdeckungsproblem NP-vollstandig

I Heuristiken!

I Espresso von Berkeley als Standardverfahren:

Komplementierung: Berechnung der Negation einer DNF als DNF

Expansion: Erweitern von Implikanten zu Primimplikanten

Reduktion: Entfernen von redundanten Primimplikanten

Wiederholung: solange Kosten (z.B. Anzahl Gatter) sich verringern

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 40

Page 56: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Mehrstufige Logik

Kurzere Schaltzeit Weniger Gatter

ab

c

de

e

d

cb

a

Beide Schaltkreise sind aquivalent!

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 41

Page 57: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Minimierung Mehrstufige Logik

I Faktorisieren:

a · c+ a · d · e+ b · c+ b · d · e hat mehr Gatter als (a+ b) · (c+ d · e)I fuhrt zu mehrstufiger Logik (multi-level logic)

I Tradeoff zwischen Laufzeit und Platz (siehe spater Addierer)

I keine exakten Verfahren vorhanden!I SIS Synthese Werkzeughttp://www-cad.eecs.berkeley.edu

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 42

Page 58: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Verilog

I Sprache zur Beschreibung von Schaltungen

I Ubersetzung in Schaltung: Synthese

I Mehrere Stufen:1. Netzliste (Graph aus Gattern)2. Großendimensionierung der Gatter3. Gatter werden platziert und verdrahtet (place and route)

I Vor nicht allzu langer Zeit:CAD Zeichnungen einzelner Transistoren!

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 43

Page 59: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Verilog

I Sprache zur Beschreibung von Schaltungen

I Ubersetzung in Schaltung: Synthese

I Mehrere Stufen:1. Netzliste (Graph aus Gattern)2. Großendimensionierung der Gatter3. Gatter werden platziert und verdrahtet (place and route)

I Vor nicht allzu langer Zeit:CAD Zeichnungen einzelner Transistoren!

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 43

Page 60: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Verilog Module

I Verilog Modelle bestehen aus mehreren Modulen

I jedes Modul hat ein Interface,das die Inputs und Outputs definiert

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 44

Page 61: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Einfaches Beispiel

module main(input clk, schalter, output lampe);

wire x;assign x=!schalter;

5 assign lampe=x;

endmodule

I Verbindungsmoglichkeiten werden in der Klammer beschrieben(Semikolon nach der Klammer nicht vergessen)

I Rumpf des Moduls enthalt Implementierung

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 45

Page 62: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Fortsetzung zum einfachen Beispiel

I input Eingang,output Ausgang,inout bidirektionale Ports

I wire generiert ein ”Kabel”

I mit assign x=!schalter; wird x das Resultat von

!schalter zugewiesen (assigned)

I ! ist ¬ (wie C/C++, Java, . . . )

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 46

Page 63: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Bezeichner, Spaces und Kommentare

I Verilog unterscheidet Groß- und Kleinschreibung (wie C, JAVA)

I Bezeichner bestehen aus Buchstaben, Zahlen und (underscore)

I Escape-Mechanismus: \$ein+fancy%Bezeichner

I zeilenweise Kommentare beginnen mit Prefix //ahnlich den // Kommentaren in C++

I Mehrfachzeilen-Kommentare mit /* ... */ wie in C

I Spaces, Zeilenumschaltung, Tabulator trennen Tokens

I Semikolon definiert das Ende von Befehlen

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 47

Page 64: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Kombinatorische Schaltungen in Verilog

a b c z

0000

0 0101

011

111

1

0 0101

011

00

11

0101

b

0 0

1 1

01

1 0

a

c

module combinational function(input a, b, c, output z);

assign z = (!a && b) || (a && c);

5 endmodule

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 48

Page 65: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Netzlisten-Implementierung

module combinational function(input a, b, c, output z);

assign z = (!a && b) || (a && c);

5 endmodule

⇓INV

AND2

AND2

OR2

a

c

b

z

I Synthese des Verilog Codes mit Xilinx ISE generiertstrukturelle Netzliste

I Noch nicht technologieabhangig

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 49

Page 66: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Netzlisten-Implementierung

module combinational function(input a, b, c, output z);

assign z = (!a && b) || (a && c);

5 endmodule

⇓INV

AND2

AND2

OR2

a

c

b

z

I Synthese des Verilog Codes mit Xilinx ISE generiertstrukturelle Netzliste

I Noch nicht technologieabhangig

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 49

Page 67: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Netzlisten-Implementierung

module add (input a, b, ci, output s, co);assign s = a ˆ b ˆ ci ;assign co = (a && b) || (b && ci) || (a && ci);

endmodule

⇓a

b

ci

co

XOR3

a

b

ci

co

s

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 50

Page 68: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Kombinatorisches mit dem FPGA-Board (I)

yi1yi2yi3

yi4yi5yi1 FPGA von Xilinxyi2 Stromversorgung

yi3 Leuchtdioden (LEDs)yi4 Schiebeschalter

yi5 Taster

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 51

Page 69: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Kombinatorisches mit dem FPGA-Board (II)

I Der Prozess ’Assign Package Pins’ weist einem Input/Outputein ’Beinchen’ des FPGAs zu

I Die ’Beinchen’ sind fest mit den LEDs, Tastern/Schaltern verbunden

→ siehe erste Rechnerubung

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 52

Page 70: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Kombinatorisches mit dem FPGA-Board (III)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 53

Page 71: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Modulhierarchie

Module konnen zu großeren Modulen kombiniert werden:

module add2 (input a0, b0, a1, b1, ci,output s0, s1, co);

wire c;add A1(a0, b0, ci , s0, c );

5 add A2(a1, b1, c, s1, co);endmodule

add

a0 b0

a b

s

s0

cici co add

a1 b1

a b

s

s1

wire cci coco

module add2

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 54

Page 72: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Behavioral Modeling

Es gibt eine Alternative zu wire und assign:

module also comb(input a, b, ci, output s, co);

reg s, co;

5 always @(a, b, ci) begins = a ˆ b ˆ ci ;co = (a && b) || (b && ci) || (a && ci);

end

10 endmodule

Ahlich wie sequentielle Programmierspache, aber kombinatorisch!

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 55

Page 73: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Beispiel

module ifthen example(input a, b, c, output x);

reg x;

5 always @(a, b, c) beginx=0;if (a || b || c) x=1;

end

10 endmodule

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 56

Page 74: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Achtung!

I Mehrfachzuweisungen moglich

I Jedes Ausgangssignal muss auf allen Pfadenzugewiesen werden!

I Die Sensitivitatsliste @(....) muss vollstandigsein!

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 57

Page 75: Digitaltechnik Kombinatorische Schaltungen · Boole’sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Mini-Quiz

module thing(input [4:0] in1, in2, input s,output reg [4:0] out1);

integer i ;5 reg [4:0] t2 , t1 ;

always @(in1, in2, s) begini=4;while ( i>=0) begin

10 t1 [ i ] = s && in1[i ];t2 [ i ] = !s && in2[i ];i = i − 1;

endout1 = t1 | t2 ;

15 end

endmodule

Welches Bauteil stellt thing dar?(Klausur Fruhling 2008)

Digitaltechnik – Kapitel 1: Kombinatorische Schaltungen 58