67
·

Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

Entwurf digitaler Schaltungen (F1)Kapitel 1: Einführung

G. Kemnitz

Institut für Informatik, TU Clausthal (EDS-F1)21. April 2016

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 1/67

Page 2: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

Was ist Technische Informatik

Zwei relativ selbständige Gebiete:die technischen Anwendungen der Informatik

informationstechnische Erfassung, Modellierung und Steuerungtechnischer Systeme

die technische Basis der InformatikDigitaltechnik: Modellierung, Simulation, Entwurf und TestRechnerarchitektur bis hardwarenahe Programmierung.

Die LV Entwurf digitaler Schaltungen legt die Grundlagen für denzweiten Teil. Schwerpunkt Digitaltechnik.

Organisation:Vorkenntnisse: imperative Programmierung (C, Pascal o.ä.)Prüfung ab 10 Teilnehmen schriftlich (90min), sonst mündlich.Hausübungen: Prüfungsvorleistung + Bonuspunkte.Präsenzübungen: alternierend Labor / Hörsaal.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 2/67

Page 3: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

Digitale Systeme sind groÿ

1970 1980 1990 2000 2010

Z804004

103

104

105

106

107

108

109

Transistoran

zahl

Six-Core i7

Core 2 Duo

Pentium 4

Pentium

8086

Einfuhrungsjahr

anzahl in Prozessoren(Verdopplung alle2 Jahre)

Zunahme der Transistor-

8048680386

Nach dem Mooreschen Gesetz verdoppelt sich die Transistoranzahldigitaler Schaltungen alle 2 Jahre. Die gröÿten derzeit gefertigtenSchaltkreise enthalten über eine Milliarde Transistoren.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 3/67

Page 4: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

Wenn es die Möglichkeit gibt, innerhalb weniger Jahrefunktionierende digitale Schaltungen mit 109 Transistoren zuentwickeln, herzustellen und in Betrieb zu nehmen, sollte es für einenangehenden Bachelor of Science möglich sein, funktionierendeSchaltungen aus einigen Hundert bis Tausend Gattern zu verstehen,zu entwerfen und auszuprobieren.

Wie beherrscht man so groÿe Entwürfe?

rechnergestützt, teilautomatisiert,

hierarchisch, Bausteinkonzept.

Bausteine für digitale Funktionseinheiten:

Standardschaltkreise,

Rechnerschaltkreise,

programmierbare Logikschaltkreise,

Sensor- und Aktoreinheiten mit digitalen Schnittstellen, ...

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 4/67

Page 5: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

Aufbau der Vorlesung

F1: Einführung anhand von zwei Beispielentwürfen:

1 Klassisch mit Standardschaltkreisen.

2 Rechnergestützt in einer Hardware-Beschreibungssprache mitprogrammierbaren Logikschaltkreisen.

Lernziele:

Entwurf erfolgt nach einfachen Regeln.

Herausforderung ist die Beherrschung der Gröÿe.

Der moderne rechnergestützte Entwurf eignet sich für vielgröÿere Systeme.

Die Vorlesung legt den Schwerpunkt auf den modernen rechner-gestützten Entwurf. Ähnlichkeit besteht mit einem modernenSoftware-Entwurf.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 5/67

Page 6: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

Weitere Foliensätze

F2: Simulation

Einführung in VHDL (Hallo Welt, Signale, Datentypen,imperative Modelle, ereignisgesteuerte Simulation).

Strukturbeschreibung (Schnittstellen, Instanziierung undVerbinden von Teilschaltungen, Testrahmen).

Laufzeittoleranz (Glitches, Simulation von Zeittoleranzen,Laufzeitanalyse).

Speicher (Latches, Register, Verarbeitung + Abtastung,Register-Transfer-Funktionen, adressierbare Speicher).

F3: Synthese und Schaltungsoptimierung

Synthese (Verarbeitungsfunktionen,Register-Transfer-Funktionen, typische Beschreibungsfehler,Constraints).

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 6/67

Page 7: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

Asynchrone Eingabe (Abtastung, Initialisierung, Entprellen,asynchrone Schnittstellen mit und ohne Übertragung desSendertaktes).

Schaltungsoptimierung (Energieverbrauch,Schaltungsumformung, KV-Diagramm, Verfahren von Quineund McCluskey, reduziertes geordnetes binäresEntscheidungsdiagramm (ROBDD)).

F4: Rechenwerke und Operationsabläufe

Rechenwerke (Addierer, Subtrahierer, Zähler, Multiplizierer,Komparatoren, Block-Shifter, ...).

Automaten (Entwurf mit KV-Diagrammen, Beschreibung inVHDL, redundante Zustände, Spezikation und Entwurf).

Operationsabläufe (serielle Schnittstelle, serieller Addierer,Dividierer).

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 7/67

Page 8: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

F5: Vom Transistor zur Logikschaltung

Gatterentwurf (MOS-Transistoren als Schalter, FCMOS-Gatter,deaktivierbare Treiber, Transfergatter und Multiplexer,geometrischer Entwurf).

Signalverzögerung (Inverter, Logikgatter, Puer).

Latches und Register.

Blockspeicher (SRAM, Mehrport- und Assoziativspeicher,DRAM, Festwertspeicher).Programmierbare Logikschaltkreise.

F6: Rechner

Entwurf eines Prozessors (Befehlssatz, Verarbeitungs-Pipeline,Load/Store-Befehle, Sprungbefehle)Cordic (Algorithmus, erstes Simulationsmodell,Festkommazahlenformate, Algorithmus weiter optimiert).

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 8/67

Page 9: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

Inhalt F1: Einführung

Standardschaltkreise

1.1 Entwurf eines Zählers

1.2 Test der Zählfunktion

1.3 Zustandsregister

1.4 Leiterplattenentwurf

VHDL + FPGA

2.1 Einfache Gatterschaltung

2.2 Increment Rechenwerk

2.3 Zähler und Ampelsteuerung

2.4 Simulation

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 9/67

Page 10: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise

Standardschaltkreise

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 10/67

Page 11: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise

Aufbau und Schaltplan einer digitalen Schaltung

Kondensator

Steckver-binder

(US-Symbol)Widerstand

Taster

Inverter, Schmitt-Trigger (Schwell-wertschalter mit Hysterese)

Das Beispiel zeigt ein Foto und einen Ausschnitt aus dem Schaltplaneiner Mikrorechneransteckbaugruppe aus dem Labor mit vier Tastern.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 11/67

Page 12: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise

H-Brückenmodul aus der Informatikwerkstatt

En

10

1

-01

Dir Motorspannung UM

0 VUVM

−UVM

Sensorsign.

UM

UVM

Abbildung der Mikrorechner Steuersignale EN (Enable, Freigabe)und Dir (Direction, Richtung) auf Motorschaltsignale. Rückgabe derWinkelmesssignale1.

1Die Vorlesung betrachtet nur den logischen Teil der Schaltung.

Elektronische Beschaltung später, siehe Vorlesung Elektronik.G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 12/67

Page 13: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise

Logikfamilie

Schaltkreise unterschiedlicher Funktion mit gleichem elektrischenAnschlussverhalten, gleicher Versorgungsspannung, ...

Klassiker war die 74...-Logikfamilie. Schaltungstechnik TTL(Transistor-Transistor-Logik). Heute veraltet.

In der Übung Nachfolger 74HC... CMOS-Logikfamilie. Schalt-kreisnummern und Anschlusswerte kompatibel zur 74er-Serie.

74HC00 4 × NAND274HC02 4 × NOR274HC04 6 × Inverter74HC08 4 × AND274HC10 3 × NAND374HC11 3 × AND374HC14 6 × Inverter (Schwell-wertschalter mit Hysterese)

74HC20 2 × NAND474HC30 1 × NAND874HC32 4 × OR274HC74 2 × D-Flipop74HC75 4 × Latch74HC86 4 × EXOR74HC174 6-Bit-Register

...G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 13/67

Page 14: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise

und Rucksetzeingang74HC174: 6 Bit-Register mit Takt-

Bei R = 0 werden alle 6 Speicher-

sonst bei steigender Flanke an Tzellen geloscht: Qi = 0

Ubernahme Qi ← Di

sonst speichern

MasseUV Versorgungsspannung

RD

RD

RD

RD

RD

RD

R

UV

1 2 3 4 5 6 7 8

91012131416 15 11

D1 D2 D3

D4D5

Q1 Q2 Q3

Q4 TQ5Q6D6

& &

&&

A1 B1 Y1 A2 B2 Y2

A3B3 Y3A4B4 Y4UV

1 2 3 4 5 6 7

891011121314

A1 B1 Y1 A2 B2 Y2

Funktion:

74HC00: 4 × NAND2 74HC86 4 × EXOR

1 2 3 4 5 6 7

891011121314

=1

=1 =1

=1

A3B3 Y3A4B4 Y4UV

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 14/67

Page 15: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise

Elektrische Eigenschaften

&

UIH

UIL

UIH UIL

UIL UIH

UOL

UOHUV

Ua

Testschaltung

Ue

Ue

Ua

Signalverzogerung

Ue

Ua

Ubertragungsfunktion

UOH

UOL maximale Spannung fur eine 0 am Ausgangmaximale Spannung fur eine 0 am Eingang

minimale Spannung fur eine 1 am Ausgangminimale Spannung fur eine 1 am Eingang

Versorgungs-spannung

rungszeitVerzoge-

UV

td

UV

2V4,5V6V

UOH UOL td1,9V 1,5V 0,5V 0,1V 100 ns4,4V 3,2V 1,4V 0,1V 20 ns5,9V 4,2V 1,8V 0,1V 16 ns

tdtdt

Typische elektrischeEigenschaften der74HC-Familie

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 15/67

Page 16: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise

Untersuchung einer Beispielschaltung

&

&&

&

R3

R4

1 × 74HC00

C

R2

2 Taster

UV = 3...5VR1, R2

R3, R4

C

LED-Vorwider-stande 50...200ΩStutzkondensatorLeuchtdiodenBT2

a

b

c

d

R1

BT1

LD1

LD2LD..

2...10mA beiUF = 1, 5...2, 5V

stande 10...100 kΩPullup-Wider-

Was passiert, wenn man die Taster nacheinander wie folgt drückt:

BT1 BT2 a b c d LD1 LD2

aus aus 0 1 1 0 aus anan ausaus ausaus an

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 16/67

Page 17: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise

Einige wichtigste Regeln für den Entwurf

Alle Versorgungsanschlüsse aller Schaltkreise mit UV = 2...6 Vund alle Masseanschlüsse mit Masse verbinden.Stützkondensator von 10/100nF zwischen UV- undMasseanschluss der Schaltkreise.Ein Ausgang kann mehrere Eingänge oder eine Low-CurrentLED treiben.LEDs brauchen immer einen Vorwiderstand zurStrombegrenzung.Ungenutzte Eingänge nicht oen lassen, sondern mit UV oderMasse verbinden.Ausgänge nie miteinander, mit UV oder Masse verbinden.Wenn Eingangsspannungen > UV oder < 0 nicht ausschlieÿbarsind, bei Eingabe über Stecker, 100Ω Schutzwiderstand in Reiheschalten.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 17/67

Page 18: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 1. Entwurf eines Zählers

Entwurf eines Zählers

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 18/67

Page 19: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 1. Entwurf eines Zählers

Entwurf der Zählfunktion

Aufgabe sei der Entwurf eines 4-Bit-Zählers aus Gattern und einem4-Bit-Register. Schaltungsentwurf für die Zähloperation:

&

=1

&

=1

&

=1

&

=1

x3 y3

c4

x2 y2y1x1x0 y0

c2c1 c3c0

xi ci ci+1 si0 0 00

101 01 1

11

100

0

c0+

y0y1y2y3

Zahloperation

x0x1x2x3 1101+ 1

Beispiel

0011

&

=1

Schaltung

Wertetabellefur jedes Bit

xi

ci

yi

ci+1

Erfordert einen 74HC08 (4×AND2) und einen 74HC86 (4×EXOR).

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 19/67

Page 20: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 1. Entwurf eines Zählers

Platzierung und Verdrahtung

UV

1 2 3 4 5 6 7

891011121314

UV

& &

&&

x0 y0x1 y1

x2 y2x3

c0

c474HC08 74HC86

UV

1 2 3 4 5 6 7

891011121314

=1

=1 =1

=1

y3

Anordnung auf einem Steckbrett. Blau gesteckte Drahtbrücken, rotStützkondensatoren. Eingerahmte Punkte sind intern verbunden.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 20/67

Page 21: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 2. Test der Zählfunktion

Test der Zählfunktion

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 21/67

Page 22: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 2. Test der Zählfunktion

Schaltungsaufbau mit Electronics Explorer

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 22/67

Page 23: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 2. Test der Zählfunktion

Testen

· · · objekt

Test-

objekt

Test-

· · ·Signal-genera-tor

· · ·Logik-analy-sator

UV

· · ·

UV

statischer Test dynamischer Test

Ein statischer Test legt die logischen Eingaben über Schalter oderSteckbrücken an und prüft die Ausgabewerte mit Leuchtdioden odereinem Multimeter. Kontrolliert wird die Funktion nach derWertetabelle. Bei einem dynamischen Test werden die Eingaben inEchtzeit von einem Signalgenerator erzeugt und die Ausgabe miteinem Logikanalysator aufgezeichnet. Dabei werden zusätzlich dieSignalverzögerungen kontrolliert.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 23/67

Page 24: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 2. Test der Zählfunktion

Statischer Test mit dem Electronics Explorer

Electronics Explorer: Steckbrett mit Spannungsquellen,Signalquellen, Messwandlern, ... Ansteuerung und Messwert-erfassung über PC-Programm. Programmoberäche mit Led's undSchaltern für den statischen Test, ...:

c4 y3 y2 y1 y0

x3 x2 x1 x0 c0

Nacheinander mit Schaltern alle Testeingaben einstellen undLed-Ausgaben mit Sollwerten der Wertetabelle vergleichen.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 24/67

Page 25: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 2. Test der Zählfunktion

Dynamischer Test

Bedienoberäche des Signalgenerators. Testeingaben sind im BeispielZufallswerte. Anschluss durch Namenszuordnung.

Im Beispiel bilden die Eingänge x0 bis x3 einen Bus und c0 ist einEinzelsignal. Für alle Eingabesignale ist eingestellt 10 MHz undZufallssignale. Nach Konguration starten mit Run.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 25/67

Page 26: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 2. Test der Zählfunktion

Ergebnisaufzeichnung mit Logikanalysator

Ein Logikanalysator zeichnet digitale Abtastwerte auf. ErforderlicheEinstellungen: abzutastende Signale, Abtastfrequenz, Trigger(Bedingung für den Aufzeichnungsbeginn), ...

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 26/67

Page 27: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 2. Test der Zählfunktion

Im Beispiel werden alle Ein- und Ausgangssignale mit 100 MHz, d.h.mit 10 Werten je Eingabeänderung aufgezeichnet. Damit sindVerzögerungen mit einer Auösung in 10ns-Schritten erkennbar.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 27/67

Page 28: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 3. Zustandsregister

Zustandsregister

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 28/67

Page 29: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 3. Zustandsregister

Schaltungen mit Registern

Ein Register besitzt i. Allg. einen Initialisierungs- und einen Takt-eingang sowie Dateneingänge. Bei aktivem Initialisierungssignal (imBild I = 1), Übernahme eines Anfangswertes, meist null. Sonst beiaktiver Taktanke (hier steigender) Datenübernahme, sonstspeichern.

unbestimmtbeliebig

10

10

10

10

I

x y

x DateneingangI InitialisierungseingangT Takteingangy Datenausgang

T

y

x

I

TI

Register diesen zur Abtastung, zur Verzögerung um einen Takt, undals Zustandsspeicher für Schaltungen mit Gedächtnis.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 29/67

Page 30: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 3. Zustandsregister

Vom bisherigen Entwurf zum Zähler

Auf der Register-Transfer-Ebene besteht ein 4-Bit-Zähler auseiner Inrement-Funktion +c0für den Zählzustand undeinem Zustandsregister mit Takt-und Initialisierungseingang. II

T

+c0

4 xy

0001 0010

0010 00110000

0000

0001

0011

0100 0011 0100 0101 0110

01010100y

x

c0

T

I

01

01

01

Als 4-Bit-Register eignet sich z.B. der Schaltkreis 74HC174, der 6Registerzellen mit gemeinsamem Takt- und Init-Eingang enthält.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 30/67

Page 31: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 4. Leiterplattenentwurf

Leiterplattenentwurf

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 31/67

Page 32: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 4. Leiterplattenentwurf

Leiterplattenentwurf

Weitere Schritte nach dem Entwurf des Schaltplans:

Rechnereingabe in das Entwurfssystem (z.B. Eagle).

Kontrolle der elektrischen Anschlussregeln, z.B. dass jedesSignal genau eine Quelle hat, ...

Simulation mit Testbeispielen,

Platzierung und Verdrahtung,

Fertigung,

Test gefertigter Baugruppen ohne Versorgungsspannung aufBestückungs- und Verbindungsfehler,

Test unter Spannung mit Beispieleingaben.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 32/67

Page 33: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 4. Leiterplattenentwurf

Schaltplaneingabe in Eagle

zwei Schaltkreise, einer mit 4 NAND2 und einer mit 4 EXORStecker mit 3 Eingängen, 2 Ausgängen, UV und Masse.Impliziter Anschluss von UV und Masse an die Schaltkreise.Stützkondensatoren bei der Platzierung, unmittelbar an denSchaltkreisen anordnen.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 33/67

Page 34: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 4. Leiterplattenentwurf

Platzierung

sind noch anzuordnende VerbindungenBauteile platziert. Die dunnen LinienNach Wechsel von

der Schaltung- zurGeometrieansicht.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 34/67

Page 35: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 4. Leiterplattenentwurf

Verdrahtung

(blau Unterseite, rot Oberseite; grün Lötaugen, beizweiseitigen Leiterplatten mit Durchkontaktierungen (Vias)).

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 35/67

Page 36: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

1. Standardschaltkreise 4. Leiterplattenentwurf

Zusammenfassung traditioneller Digitalentwurf

Zusammenfügen passgerechter Bausteine nach einfachen Regeln.Überwiegend Fleiÿarbeit. Hauptaufwand Inbetriebnahme, Test undFehlersuche.

Auÿer Schaltkreisen mit Gattern und Registern gibt es auch höherintegrierte Schaltkreise mit

Zählern, Schieberegistern, Multiplexern,Rechenwerken, Rechnerbausteinen, Prozessoren, ...

Entwicklung in den vergangenen 30 Jahren:Zunehmend komplexere Funktionseinheiten alsStandardschaltkreise.ASICs (anwendungsspezische Schaltkreise).Programmierbare Logikschaltkreise.Kleinere Bauteile und höhere Packungsdichte auf Leiterplatten.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 36/67

Page 37: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA

VHDL + FPGA

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 37/67

Page 38: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA

Hardware-Programmierung

Heutiger Stand der Technik für den Entwurf digitaler Schaltungen istdie Beschreibung der Zielfunktion in einerHardware-Beschreibungssprache. Simulation auf dem Rechner.Prototyp-Fertigung mit programmierbaren Logikschaltkreisen (FPGAField Programmable Gate Array). FPGAs bestehen aus

programmierbaren Logikblöcken,programmierbaren EA-Schaltungen,einem programmierbaren Verbindungsnetzwerk undoptional weiteren kongurierbaren Schaltungsblöcken, z.B.Blockspeichern, Multiplizierern, Taktversorgung (Taktteiler und-vervielfacher, Zeitversatzkorrektur) und Prozessorkernen.

Programmierung ähnlich wie bei Mikrorechnern über eine serielleProgrammierschnittstelle (JTAG, ISP,...). ProgrammierdauerSekunden bis Minuten.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 38/67

Page 39: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA

Prototyp-Plattform für die Laborübungen

Prototype-Board Nexys 3:

ProgrammierbarerLogikschaltkreis Gröÿen-ordnung 106 Gatter.

100MHz Quarztakt,8 Leuchtdioden,

4 7-Segment-Anzeigen,

8 Schalter, 5 Taster,1MB SRAM,

Anschlüsse für USB-Tastatur/Maus, USB-UART, VGA,

Kameras, Touch-Screen, ...

Ausreichend für alles, was im Studium gelehrt wird.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 39/67

Page 40: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA

Der Programmierbare Logikschaltkreis

be-Ausgabe-Schaltungprogrammierbare Einga-

Verbindungsnetzwerkprogrammierbares

Logikblockprogrammierbarer

PLB PLB

PLB PLB

IO

IO

IO

IOPLB

Die Konguration wird ähnlich wie ein Programm auf dem PCentwickelt, übersetzt, ...

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 40/67

Page 41: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Einfache Gatterschaltung

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 41/67

Page 42: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Einprogrammieren von Logikfunktionen

&

&

≥1

=1

LD0

LD1

LD2

LD3

Schalter programmierbarer Schaltkreis Leuchtdioden

SW0

SW1

SW2

SW3

SW4

SW5

SW6

SW7

T10

T9

V9

M8

N8

U8

V8

T5

U16

V16

U15

V15

Im ersten Beispiel sollen vier Gatter so einprogrammiert werden, dassdie Eingänge von Schaltern steuer- und die Ausgänge mit LEDsbeobachtbar sind. Die Kästchen mit T10 etc. sind die Bezeichnerder Schaltkreisanschlüsse, an denen die Schalter und LEDs auf derBaugruppe angeschlossen sind.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 42/67

Page 43: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Eine VHDL-Beschreibung besteht aus Schnittstellenbeschreibung:

entity Gatterscha l tung i s

port ( sw : in std_logic_vector (7 downto 0 ) ;l ed : out std_logic_vector (3 downto 0 ) ) ;

end entity ;

und einer Beschreibung der Realisierung:

architecture t e s t of Gatterscha l tung i s

begin

l ed (0 ) <= sw (0) and sw ( 1 ) ;l ed (1 ) <= sw (2) nand sw ( 3 ) ;l ed (2 ) <= sw (4) or sw ( 5 ) ;l ed (3 ) <= sw (6) xor sw ( 7 ) ;

end architecture ;

&

&

≥1

=1

LD0

LD1

LD2

LD3

SW0

SW1

SW2

SW3

SW4

SW5

SW6

SW7

U16

V16

U15

V15

T10

T9

V9

M8

N8

U8

V8

T5Die Schnittstelle deniert für dieAnschlüsse Bezeichner, Flussrich-tung (Ein-/Ausgang) und Datentyp. In der Realisierung stehen imBeispiel Signalzuweisungen mit logischen Verknüpfungen.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 43/67

Page 44: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Entwurf

Projekt anlegen, einige Kongurationen vornehmen, ...Beschreibung eingeben, Syntaxtest, optional Simulation, ...Übersetzen (Synthesize bis Congure Target Device)

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 44/67

Page 45: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Das Constraint-File

Die Constraints-Datei enthält alle zusätzlichen Informationen zurVorgabe der Zielfunktion, die nicht in der VHDL-Datei stehen: diePin-Namen der Schaltungsanschlüssen (s.o.), Taktfrequenz, obereund untere Schranken für Verzögerungen, ...

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 45/67

Page 46: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Synthese

Berechnung einer Schaltung aus der VHDL-Beschreibung. ImBeispiel ist das trivial, weil die Schaltung nur aus vier Gatternbesteht. Für gröÿere Entwürfe wird die Zielfunktion mit Bitvektoren,arithmetischen Operatoren, Fallunterscheidungen, Unterprogrammen,... beschrieben. Die Synthese muss daraus die logischen Funktionenextrahieren, optimieren, mit Teilschaltungen nachbilden, ...

x0 x1 ∧ ∧ ∨ ⊕0101

0011

0001

1

0

11

0

1

0110

11

Unser programmierbarer Schaltkreis hatstatt Gatter als logische GrundbausteineTabellenfunktionen (LUT Look-Up Table,kleine programmierbare Speicher).An den Anschlüssen werden Buer eingefügt, die die internenkleineren Spannungspegel (0/1V) auf die gröÿeren Anschlusspegel(0/2,5...3,3V) umsetzen.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 46/67

Page 47: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Syntheseergebnis

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 47/67

Page 48: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Verdrahtung

Nach der Synthese folgt die Platzierung der einzelnenFunktionsblöcke und ihre Verdrahtung. Die blauen Quadrate sindPins und die Rechecke sind programmierbare Logikblöcke (slices).

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 48/67

Page 49: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 1. Einfache Gatterschaltung

Schaltung in dem rot hervorgehobenen Slice:

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 49/67

Page 50: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 2. Increment Rechenwerk

Increment Rechenwerk

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 50/67

Page 51: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 2. Increment Rechenwerk

Komplexere Gatterschaltungen

Die Inkrementoperationcout &y = x + cin

(x, y 4-Bit-Vektoren) lässt sich mit derselben Schaltung wie aufFolie 19 implementieren:

&

=1

&

=1

&

=1

&

=1

x2 y2y1x1x0 y0

c2c1 c3cin

x3 y3

cout

entity Increment4Bit i s

port ( c in : in std_logic ;x : in std_logic_vector (3 downto 0 ) ;y : out std_logic_vector (3 downto 0 ) ;

cout : out std_logic ) ;end entity ;

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 51/67

Page 52: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 2. Increment Rechenwerk

&

=1

&

=1

&

=1

&

=1

x2 y2y1x1x0 y0

c2c1 c3cin

x3 y3

cout

architecture Gatter_Arch of Increment4Bit i s

signal c : std_logic_vector (4 downto 0 ) ;begin

c (0 ) <= c in ;y (0 ) <= x (0) xor c ( 0 ) ; c (1 ) <= x (0) and c ( 0 ) ;y (1 ) <= x (1) xor c ( 1 ) ; c (2 ) <= x (1) and c ( 1 ) ;y (2 ) <= x (2) xor c ( 2 ) ; c (3 ) <= x (2) and c ( 2 ) ;y (3 ) <= x (3) xor c ( 3 ) ; c (4 ) <= x (3) and c ( 3 ) ;cout <= c ( 4 ) ;

end architecture ;

Neu benutzte Konstrukte: Bitvektoren und Signale für interneVerbindungen.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 52/67

Page 53: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 2. Increment Rechenwerk

Die vier bis auf die Indizes gleichen Zeilen können auch zu einerSchleife zusammengefasst werden. Das ist keine Ablaufschleife, derenAnweisungen im Schleifenkörper hintereinander mit dem Index 0 bis3 abgearbeitet werden, sondern eine Generierungsschleife, die bei derÜbersetzung durch je eine Anweisungspaar für jeden Indexwertersetzt wird.

architecture Gen_Arch of Increment4Bit i s

signal c : std_logic_vector (4 downto 0 ) ;begin

c (0 ) <= c in ;genHA : for i in 0 to 3 generate

y ( i ) <= x( i ) xor c ( i ) ; c ( i +1) <= x( i ) and c ( i ) ;end generate ;cout <= c ( 4 ) ;

end architecture ;

Die Schleifenvariable einer Generierungsschleife braucht keineexplizite Deklaration und die Iterationsgrenzen müssen zumÜbersetzungszeitpunkt bekannt sein.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 53/67

Page 54: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 2. Increment Rechenwerk

Noch einfacher ist die Beschreibung mit dem Additionsoperator:

use ieee . numeric_std . a l l ;. . .architecture Num_Arch of Increment4Bit i s

signal sum : unsigned (4 downto 0 ) ;begin

sum <= ( '0 ' & x ) + c in ;y <= sum(3 downto 0 ) ;cout <= sum ( 4 ) ;

end architecture ;

Anmerkungen:Das Package ieee.numeric_std deniert u. a. den Datentypunsigned und den Additionsoperator dafür.x, y müssen vom Typ unsigned(3 downto 0) und cin vom Typunsigned(0 downto 0) sein. Erfordert Typumwandlungen.'0' & ... hängt an x zur Verlängerung auf 5 Bit eineführende null an. Erforderlich für Übertragsberechnung.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 54/67

Page 55: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 3. Zähler und Ampelsteuerung

Zähler und Ampelsteuerung

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 55/67

Page 56: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 3. Zähler und Ampelsteuerung

Zähler als Taktteiler

25

26

27

28

29

30

31

32

Z+1

LD0

LD1

LD2

LD3

LD7

LD6

LD5

LD4

U16

V16

U15

V15

M11

N11

R11

T11V10

24

100MHz

GCLK0

An Pin V10 liegt auf der Baugruppe der 100MHz-Takt an. Diesersoll mit einem 32-Bit-Zähler gezählt und die höchstwertigen 8 Bitauf LEDs ausgegeben werden. Jedes Zählbit halbiert den Takt:

f (zi) = 100 MHz · 2−(i+1)

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 56/67

Page 57: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 3. Zähler und Ampelsteuerung

z3

z2

z1

GCLK0

z0

01

01

01

01

01

25

26

27

28

29

30

31

32

Z

LD0

LD1

LD2

LD3

LD7

LD6

LD5

LD4

U16

V16

U15

V15

M11

N11

R11

T11

24

+1

V10GCLK0

100MHz

f tP = 1f

programmierter SchaltkreisdiodenLeucht-

745mHz

373mHz

186mHz

93mHz

47mHz

23mHz

1,34 s

0,67 s

21,5 s

1,5Hz

3Hz 0,34 s

2,68 s

5,37 s

10,7 s

43,0 s

50MHz

25MHz

12,5MHz

6,25MHz

100MHz

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 57/67

Page 58: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 3. Zähler und Ampelsteuerung

Schnittstellenbeschreibung:

entity Tak t t e i l e r i s

port (GCLK0: in std_logic ;l ed : out unsigned (7 downto 0 ) ) ;

end entity ;

Beschreibung der Realisierung:

architecture t e s t of Tak t t e i l e r i s

signal z : unsigned (31 downto 0 ) ;begin

process (GCLK0)begin

i f r i s ing_edge (GCLK0) then

z <= z + 1 ;end i f ;

end process ;

−− Ausgabefunkt ionl ed <= z (31 downto 24 ) ;

end architecture ;

led(0)

led(1)

led(2)

led(3)

led(4)

led(6)

led(5)

led(4)

z24

z25

z26

z27

z28

z29

z30

z31

+132

z

GCLK0V10

U16

T11

R11

N11

M11

V15

U15

V16

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 58/67

Page 59: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 3. Zähler und Ampelsteuerung

Die Beschreibungsschablone für eine Register-Transfer-Funktion istein Prozess2 mit dem Takt in der Weckliste (hier CCLK0) undSignalzuweisungen nur bei aktiver Taktanke:

+1

GCLK0

ledz

32

8

process (GCLK0)begin

i f r i s ing_edge (GCLK0) then

z <= z + 1 ;end i f ;

end process ;

Die Beschreibungsschablone einer einfachen kombinatorischenSchaltung, hier die Verbindung der Registerausgänge mit denSchaltkreisausgängen zu den LEDs, bleiben weiterhin nebenläugeSignalzuweisungen ohne Prozessrahmen:

l ed <= z (31 downto 24 ) ;

2Prozess ist ein Rahmen, in dem die Anweisungen bei der Simulation

imperativ, d.h. wie bei einem normalen Programm hintereinander, statt

nebenläug abgearbeitet werden.G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 59/67

Page 60: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 3. Zähler und Ampelsteuerung

Die meisten Register-Transfer-Funktionen haben eine asynchroneAnfangsinitialisierung für die Reset-Funktion des Gesamtsystems. Beidieser steht zusätzlich zum Takt das Initialisierungssignal in derWeckliste. Wenn es aktiv ist (im Beispiel bei I='1') übernimmt dasRegister eine Konstante (im Beispiel alles null). Alle anderenSignalzuweisungen nur bei inaktivem Initialisierungssignal und aktiverTaktanke:

+1ledz

32

8

I I

GCLK0

process ( I , GCLK0)begin

i f I = '1 ' then

z <= ( others=>'0 ')3 ;e l s i f r i s ing_edge (GCLK0) then

z <= z + 1 ;end i f ;

end process ;

3Das ist eine Zuordnungsliste, die allen anderen Bits, den der Wert nicht

explizit zugeordnet wird, z.B. mit 0=>'1' der Wert '0' zugeordnet.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 60/67

Page 61: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 3. Zähler und Ampelsteuerung

Erweiterung zu einer Ampelsteuerung

z24

32+1

z(28...25) Autos

0000 gelbgelb

00100001

00110100

grungrungrun

Fussg.

rotrotrotrotrot

. . . . . . . . .

z

led(0)

led(3)

led(4)

led(5)

led(6)

led(7)GCLK0 V10

U16

V15

M11

N11

R11

T11

Komplexere kombinatorische Funktionen werden durch Prozesse mitallen Eingabesignalen in der Weckliste beschrieben, die bei jedemAufwecken alle Ausgabesignale neu berechnen:

process ( z )begin

l ed (0 ) <= z ( 2 4 ) ; −− Ausgabe von z (24) auf e ine LED<Beschreibung der Tabelle siehe nächste Folie>

end process ;G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 61/67

Page 62: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 3. Zähler und Ampelsteuerung

z24

32+1

z(28...25) Autos

0000 gelbgelb

00100001

00110100

grungrungrun

Fussg.

rotrotrotrotrot

. . . . . . . . .

z

led(0)

led(3)

led(4)

led(5)

led(6)

led(7)GCLK0 V10

U16

V15

M11

N11

R11

T11

Tabellenbeschreibung mit einer Case-Anweisung:

case z (28 downto 25) i s

when "0000" | "0001"=> led (7 downto 3)<=b"010_01" ; −− A: ge l b ,F: ro twhen "0010" | "0011"=> led (7 downto 3)<=b"100_01" ; −− A: grün ,F: ro t−− ab h i e r s e l b s t we i t e r en tw i c k e l nwhen others

=> led (7 downto 3)<=b"001_01" ; −− A: rot ,F: ro tend case ;

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 62/67

Page 63: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 4. Simulation

Simulation

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 63/67

Page 64: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 4. Simulation

Simulation

Die Simulation benötigt ein Testobjekt. Das sei die Zählfunktion:

l ibrary ieee ;use ieee . std_logic_1164 . a l l ;use ieee . numeric_std . a l l ;

entity Inc i s

port ( x : in std_logic_vector (3 downto 0 ) ;y : out std_logic_vector (3 downto 0 ) ) ;

end i n c ;

architecture behahv iora l of Inc i s

begin

y <= std_logic_vector ( unsigned ( x ) + 1 ) ;end architecture ;

Zusätzlich wird ein Testrahmen zur Erzeugung der Eingabesignalebenötigt. Das ist eine Entwurfseinheit mit dem Testobjekt als Teil-schaltung und einem Prozess zur Erzeugung der Eingabe.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 64/67

Page 65: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 4. Simulation

l ibrary ieee ;use ieee . std_logic_1164 . a l l ;use ieee . numeric_std . a l l ;

entity IncTB i s end entity ;

architecture behahv iora l of IncTB i s

signal x : std_logic_vector (3 downto 0) :=( others=> '0 ');signal y : std_logic_vector (3 downto 0 ) ) ;

begin

−− Einbindung des Te s t o b j e k t ( Unit under Test )uut : entity work . Inc port map ( x=>x , y=>y ) ;

process −− Erzeugung der Eingabenbegin

for i in 1 t i 10 loop

wait for 10 ns ;x <= std_logic_vector ( unsigned ( x ) + 1 ) ;

end loop ;wait ;

end process ;end architecture ;

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 65/67

Page 66: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 4. Simulation

Simulationsarten

Simulation des Verhaltens ohne Verzögerungen:

Simulation der synthetisierten und verdrahteten Schaltung (mitVerzögerungen)

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 66/67

Page 67: Entwurf digitaler Schaltungen (F1) Kapitel 1: Einführung

2. VHDL + FPGA 4. Simulation

Zusammenfassung

Im modernen Digitalentwurf wird die Zielfunktion in einerHochsprache mit Datentypen und -objekten, arithmetischen undlogischen Operatoren, Fallunterscheidungen, Schleifen,Unterprogrammen, ... beschrieben.

Eine so beschriebene Schaltung kann simuliert und innerhalb wenigerMinuten übersetzt, in einem Schaltkreis geladen und getestetwerden. Ähnlich wie Software-Entwurf.

Die bisher eingeführten Beschreibungsmittel sind bereits ausreichend,um die Zielfunktionen digitaler Schaltungen mit einigen hundert bistausend Gattern zu beschreiben, zu simulieren und erfolgreich inBetrieb zu nehmen.

G. Kemnitz · Institut für Informatik, TU Clausthal (EDS-F1) 21. April 2016 67/67