• Keine Ergebnisse gefunden

Design of Digital Circuits (S1)

N/A
N/A
Protected

Academic year: 2021

Aktie "Design of Digital Circuits (S1)"

Copied!
106
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Design of Digital Circuits (S1)

Capter 1, Part 1

Modelling and Simulation

Section 1.1 Design Processes to 1.2 Modells & Simulation

Prof. G. Kemnitz

Institute of Informatics, Clausthal University of Technology

8. Mai 2012

(2)

1.2 Modelle und Entwurfsraum 1.3 Entwurfsfluss

1.4 Beschreibungssprache (VHDL) 1.5 Aufgaben

Modelle & Simulation 2.1 Signale, Datentypen 2.2 Signalflussplan 2.3 Imperative Modelle 2.4 Event Driven Sim 2.5 Structural description 2.6 Aufgaben

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 2012 2/105

(3)

What is Computer Engineering

Two relatively independent Zwei relativ independent sub fields:

technical application of computer science

informationstechnische Erfassung, Modellierung und Steuerung technischer Systeme

technical basis of computer science

Digitaltechnik: Modellierung, Simulation, Entwurf und Test digitaler Schaltungen

Die LV

Entwurf digitaler Schaltungen

legt die Grundlagen f¨ ur den zweiten Teil. Lernziele: theoretisches Grundverst¨andnis und praktische Fertigkeiten f¨ ur den rechnergest¨ utzten Entwurf.

Voraussetzung imperative Programmierung (C, Pascal o.¨a.)

(4)

Entwurfsprozess

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 2012 3/105

(5)

1. Entwurfsprozess

Digitale Schaltkreise, Baugruppen und Systeme bestehen aus Millionen von logischen Bausteinen.

Kein Mensch ist mehr in der Lage, diese Bausteine auch nur zu z¨ahlen.

Wie werden solche Schaltungen erfolgreich entworfen?

¨ahnlich wie Software:

rechnergest¨ utzt

mit einer hierarchischen Struktur aus parametrierten Bausteinen

Synthese aus einer Funktionsbeschreibung

(6)

Umgang mit der Komplexit¨ at

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 2012 5/105

(7)

1. Entwurfsprozess 1. Umgang mit der Komplexit¨ at

Digitale Systeme sind groß

Wie kann man eine digitale Schaltung mit Millionen von Gattern so entwerfen, dass sie am Ende funktioniert?

rechnergest¨ utzt in einer Programmiersprache hierarchisch

nach formal ¨ uberpr¨ ufbaren Entwurfsregeln mit Hilfe von

Simulation

Schaltungsgenerierung

rechnergest¨ utzter Synthese und Logikoptimierung

(teil-) automatischer Platzierung und Verdrahtung

(8)

Hierarchie digitaler Systeme

&

&

&

&

&

. . .

Gatter Funktions- Funktions- Schalt- Bau- Ger¨ate gruppe

kreise einheiten

bl¨ocke

Baukastenprinzip; Bibliothek zusammenpassender Bausteine + Regeln f¨ ur den Zusammenbau; Mehrfachverwendung Entwurfskomplexit¨at wird weniger von der Bauteilanzahl, sondern von der Typenanzahl bestimmt

parametrisierte Bausteine, z.B. Rechenwerke mit variabler Operandenbreite + Schaltungsgeneratoren ⇒ weniger Typen

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 2012 7/105

(9)

1. Entwurfsprozess 1. Umgang mit der Komplexit¨ at

Parametrierte Schaltungen

Parametrierte Schaltungen werden als Datens¨atze f¨ ur Algorithmen zur Schaltungsgenerierung modelliert. Beispiele parametrierter Schaltungen:

UND-Gatter mit einem Parameter f¨ ur die Eingangsanzahl und einem Parameter f¨ ur die maximale Lastanzahl (Last – am Ausgang angeschlossene Gattereing¨ange)

Speicher unterschiedlicher Gr¨oße und Organisation (Adressbusbreite, Datenbusbreite, ...)

Rechenwerke mit variabler Operandenbreite

Minderung der Entwurfskomplexit¨at durch Verringerung der

Anzahl der zu unterscheidenden Bausteintypen; in der Vorlesung

(10)

Synthese

Synthese

OS aus vorentworfenen GS

Rohschaltung optimierte Schaltung Grundschaltung GS

RS OS

Technologieabbildung Logikoptimierung

Schaltungsgeneratoren Schaltungsteile aus

universellen TS RS aus universellen GS extrahierte GS

OS aus universellen GS

Platzierung und Verdrahtung Zielfunktion, Steuerparameter Register-Transfer-Synthese

parametrierte GS

Layout, Fertigungsdaten

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 2012 9/105

(11)

1. Entwurfsprozess 1. Umgang mit der Komplexit¨ at Register-Transfer-Synthese: Analysieren der

Hochsprachenbeschreibung; Extrahieren der

Rohschaltung

(Schaltung aus Grundschaltungen (NAND2, NOR2, ...) und parametrierten Schaltungen) Schaltungsgenerierung: Nachbildung parametrierter Teilschaltungen durch Grundschaltungen

Logikoptimierung: Schaltungsminimierung mittels

Schaltalgebra, Konstanteneliminierung, Verschmelzung, ...

Technologieabbildung: Nachbildung der (universellen) Grundschaltungen durch vorentworfene Teilschaltungen f¨ ur eine bestimmte Fertigungstechnologie

Platzierung: 2D-Anordnung der vorentworfenen Teilschaltungen

Verdrahtung: Anordnung der Verbindungen

(12)

Simulation

Simulationsmodell f¨ ur das Testobjekt:

Berechnung der Ausgabesignalverl¨aufe und der internen Signalverl¨aufe aus den Eingabesignalverl¨aufen

Simulationsmodelle der Testumgebung:

Bereitstellung der Eingaben

Auswertung der Ausgaben und Zwischenergebnisse Jede Simulation ist ein Kompromiss zwischen

Programmieraufwand, Rechenaufwand (Kosten) ⇔ Anteil der erkennbaren Fehler (Nutzen)

Kosten: Test und Fehlersuche sind bei der Entwicklung von Hardware immer am teuersten

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201211/105

(13)

1. Entwurfsprozess 1. Umgang mit der Komplexit¨ at

Summary

Beherrschung der Entwurfskomplexit¨at rechnergest¨ utzt

durch die Beschreibungshierarchie durch parametrierte Funktionsbausteine durch Synthese und

durch Simulation.

(14)

Modelle und Entwurfsraum

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201213/105

(15)

1. Entwurfsprozess 2. Modelle und Entwurfsraum

Der Modellbegriff in der Informatik

Ein Modell ist ein Mittel, um einen Zusammenhang zu

veranschaulichen; stellt die wesentlichen Sachverhalte dar und verbirgt unwesentliche Details

formales Modell eindeutige Beschreibung der wesentlichen Merkmale (Simulationsmodell, Entwurfsergebnis) informales Modell Beschreibung wesentlicher Zusammenh¨ange in

einer anschaulichen Form ohne R¨ ucksicht auf

Eindeutigkeit oder Vollst¨andigkeit (Entwurfsskizzen, Spezifikation, Lehrbuchdarstellungen)

halbformales Modell Beschreibung, aus der Fachleute in der

Regel dasselbe herauslesen (Datenbl¨atter)

(16)

Design Space

3D-Raum zur Klassifizierung der Beschreibungen (Modelle), die im Entwurfsprozess entstehen:

Hierarchieebene hervorzuhebender Sachverhalt

(Beschreibungsart)

Beschrei- bungsart

F unk ti ons - b es chr ei bung St ruk tur - b es chr ei bung geo m et ri sc he B es chr ei bung Gesamtsystem

Funktionsbl¨ ocke

Transistoren Gatter Teilsysteme

Objektraum T es t- b es chr ei bung chieebene

Hierar-

dritte Dimension: informal, halbformal, formal

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201215/105

(17)

1. Entwurfsprozess 2. Modelle und Entwurfsraum

Beschreibungsart

y = x 1 ∨ x 2

x 1 y

x 2

Funktionsbeschreibung

Algorithmus oder Formalismus, zur Berechnung der Systemausgabe aus

den Eingaben (Gleichungssystem, Tabellen, Programm) informal: Kurzbeschreibung

halbformal: Datenblatt, Applikationsbeschreibungen

formal: Simulationsmodell

(18)

&

&

Strukturbeschreibung

Abstraktionsebene

Schaltung

Beschreibung der Zusammensetzung einer Entwurfseinheit aus Teilsystemen; hierarchisch

Basis f¨ ur einen Großteil der Schaltungsoptimierungen Durch Einsetzen der Funktionsbeschreibungen der Teilsysteme ⇒ Funktionsbeschreibung (eindeutige Abbildung)

Synthese (

Funktion ⇒ Struktur

) hat einen unbegrenzt großen L¨osungsraum; Suche mit Kostenfunktion

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201217/105

(19)

1. Entwurfsprozess 2. Modelle und Entwurfsraum

geometrische Beschreibung

Geometrische Abmessungen der einzelnen Komponenten, ihre Anordnung in einem Ger¨at, auf einer Leiterplatte oder in einem Schaltkreis

Grundlage f¨ ur die Generierung der Fertigungsdaten Beinhaltet die Strukturbeschreibung, ist aber f¨ ur strukturbasierte Algorithmen viel zu ¨ uberladen

Jede Strukturbeschreibung kann durch unbegrenzt viele

unterschiedliche geometrische Beschreibungen nachgebildet

werden.

(20)

Eingabe Ausgabe 0010

1001

101 011 . . . . . .

Testbeschreibung

Eingabewerte, Algorithmen zur Bereitstel- lung von Eingabewerten oder Regeln f¨ ur die Auswahl von Eingabewerten

zugeh¨orige Soll-Werte, Algorithmen oder Regeln zur Kontrolle der Ausgabewerte

die Testvorbereitung, die Testdurchf¨ uhrung und die Fehlerbeseitigung verursachen immer den gr¨oßten Teil des Entwurfsaufwands

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201219/105

(21)

1. Entwurfsprozess 3. Entwurfsfluss

Entwurfsfluss

(22)

Entwurfsfluss

Entwurfsprozesses als

F¨ ullen des Entwurfsraums

Entwurf Up-Entwurf

Fertigungsdaten Konfigurationsdaten Testdaten

Simulationsmodelle

Funktion Struktur Geometrie grob

fein

Funktionseinheiten Funktionsbl¨ ocke Gatter

Transistoren Top-Down-

Bottom-

Entwurfsbeschreibung, Randbedingungen

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201221/105

(23)

1. Entwurfsprozess 3. Entwurfsfluss

Top-Down Entwurfsziel

L¨osungs- raum . . . . . . Entwurfsfluss von oben links nach unten rechts

Bei den nachfolgenden Abbildungen gibt es jeweils unbegrenzt viele M¨oglichkeiten:

Entwurfsziel (informal) ⇒ Entwurfsskizzen (Funktion, Struktur, ...; informal)

Entwurfsskizzen (informal) ⇒ Simulationsmodell (Funktion, Systemebene, formal)

f¨ ur alle Hierarchieebenen

Funktion ⇒ Struktur aus Teilfunktionen ( ⇒ Geometrie) Gesamtfunktion Struktur ⇒ Geometrie

Was tun, um sich nicht zu verirren?

(24)

Phase I (auf dem Papier und im Kopf des Entwerfers):

Spezifikation: Auflistung der Anforderungen

schrittweise Entwicklung einer Skizze der Soll-Funktion Phase II (am Rechner mit einer simulierbaren Beschreibung)

Nachbesserungsiteration, bis die Zielfunktion o.k ist

Nachbesserungsiteration, bis die Zielfunktion realisierbar ist Nachbesserungsiteration, bis das System auch alle

Anforderung bez¨ uglich der Geschwindigkeit, des Schaltungsaufwands, des Stromverbrauchs und der Testbarkeit erf¨ ullt.

Jede Nachbesserungsiteration beinhaltet:

umfangreiche Simulationen und Analysen

die Entwicklung weiterer Simulationsbeispiele und kann Nachbesserungen auf der Ebene dr¨ uber verlangen.

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201223/105

(25)

1. Entwurfsprozess 3. Entwurfsfluss

Bottom-Up

Basiselemente . . . . . .

L¨osungs- raum Entwurfsfluss von unten rechts nach oben links.

Ausgangspunkt: Elemente mit bekannter Funktion und bekannter Realisierung Prinzip: Zusammensetzen großer aus kleinen Funktionseinheiten

Vorteil: gute Optimierungsm¨oglichkeiten hinsichtlich der der Gr¨oße, der Geschwindigkeit

des Stromverbrauchs und der Testbarkeit

Problem: vorgegebene Zielfunktion schwer zu erreichen

Hauptanwendung: Konstruktion von Teilschaltungen auf

Vorrat (Entwurfsbibliotheken); Entwurf von parametrierten

Schaltungsmodellen + Generierungsalgorithmen

(26)

Mensch-Maschine-Interaktion

Randbedingungen Entwurfsbeschreibungen Testbeispiele

Entwurfsziele

Fertigungsdaten Konfigurationsdaten Dokumentationen Testdaten

Simulationsmodelle Entwurfsergebnisse:

R¨ uckmeldungen:

Fehlermeldungen Warnungen G¨ utekennzahlen Simulationsergebnisse vom Rechner erzeugte

Entwurfssystem Entwickler

Entwurfsbeschreibungen

Manuelle Beschreibungen:

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201225/105

(27)

1. Entwurfsprozess 3. Entwurfsfluss Die Zielfunktion wird vom Entwerfer vorgegeben, der den gesamten Entwurfsprozess, in dem viele Megabyte an Beschreibungsinformationen entstehen, kontrolliert und steuert.

Das Entwurfssystem analysiert und simuliert die

Beschreibung; synthetisiert, generiert, platziert und

verdrahtet die Schaltung; die Softwarewerkzeuge liefern

zus¨atzliche Hinweise, Warnungen und Fehlermeldungen

bei unzureichendem Ergebnis ¨andert der Entwerfer die

Beschreibung und/oder die Steuerparameter der Werkzeuge

Ahnlichkeit mit einem Regelkreis mit dem Entwerfer als ¨

Regler

(28)

Entwurfsautomatisierung

Vorgabe

Geometrie Struktur Funktion Struktur

Funktion Aufgabe

Ziel

gute L¨osungen

Besch¨ankung der Dar- stellungsm¨oglichkeiten zur Automatisierung Darstellungsraum

L¨osungen (Entwurfsschritt)

viele M¨oglichkeiten

eindeutig (Probe)

L¨osungsraumbeschr¨ankung schließt auch gute L¨osungen aus Einzelergebnis im Mittel schlechter als

handoptimierte

L¨osungen

Untersuchung von viel mehr L¨osungsm¨oglichkeiten; beste L¨osung oft besser als Handentwurf

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201227/105

(29)

1. Entwurfsprozess 3. Entwurfsfluss Synthesebasierte L¨osungssuche (¨ahnlich wie genetischer

Algorithmus):

Variation auf der Ebene der manuellen Beschreibung Kombination guter L¨osungsdetails

manuelle Nachbesserung, wenn die Automatismen keine ausreichend gute L¨osung finden.

Generelle Vorteile der Entwurfsautomatisierung:

deutlich k¨ urzere Gesamtentwurfszeiten

besser vorhersagbare G¨ ute- und Aufwandskennzahlen f¨ ur die Projekt- und Kostenplanung

eine geringere zu erwartende Anzahl von Entwurfsfehlern.

(30)

Zusammenfassung

Mega- bis Gigabyte Entwurfsdaten; 3D-Klassifikation:

informal, halbformal, formal

Gesamtsystem, Teilsysteme, Funktionsbl¨ocke, Gatter, ...

Funktion, Struktur, Geometrie und Test Bewegung im Entwurfsraum

Top-Down: von der Zielfunktion zur Schaltung

Bottom-Up: Vorratsentwicklung g¨ unstiger Schaltungen Mensch-Maschine-Kommunikation

Entwerfer sieht einen strukturierten Entwurfsraum und Tools

wendet Bearbeitungsmethoden auf Entwurfsobjekte an und kontrolliert die Ergebnisse; ¨ahnlich wie Regelkreis mit Entwerfer als Regler

Optimieren durch Probieren auf High-Level-Ebene

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201229/105

(31)

1. Entwurfsprozess 4. Beschreibungssprache (VHDL)

Beschreibungssprache (VHDL)

(32)

VHDL als formale Beschreibungsplattform

Das Akronym VHDL:

V VHSIC (Very High Speed Integrated Circuits) H Hardware

D Description L Language

in Europa verbreitetste Hardwarebeschreibungssprache erweiterte imperative Sprache (ADA)

andere Hardwarebeschreibungssprachen: Verilog, System-C

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201231/105

(33)

1. Entwurfsprozess 4. Beschreibungssprache (VHDL) Mit VHDL werden Funktionen, Strukturen und Testabl¨aufe vom Gesamtsystem bis zum Gatterniveau beschrieben

F unk ti ons - b es chr ei bung St ruk tur - b es chr ei bung geo m et ri sc he B es chr ei bung Gesamtsystem

Funktionsbl¨ ocke

Transistoren Gatter Teilsysteme

in der Ebene Hirarchie

Beschrei- bungs- art

T es t- B es chr ei bung

·

·

· ·

¨ ublich m¨oglich +

+ +

+ +

+ +

+ + + +

+ +

(34)

Beschreibungsstruktur einer Entwurfseinheit:

1: library IEEE ;

2: use IEEE.STD LOGIC 1164.all;

--- Schnittstellenbeschreibung 3: entity Schaltungsname is

4: [generic (List der Konfigurationsparameter );]

5: [port(Liste der Anschlusssignale );]

6: end entity;

--- Beschreibung des Innenlebens

7: architecture Beschreibung of Schaltungsname is 8: –Vereinbarung ;˝

9: begin

10: –Anweisung ;˝

11: end architecture;

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201233/105

(35)

1. Entwurfsprozess 4. Beschreibungssprache (VHDL) Zeile 1, 2: Library- und Use-Anweisung; Einblendung von

Bibliotheksobjekten in den Namensraum Zeile 3-6: Schnittstellenbeschreibung; Vereinbarung der

Konfigurationsparameter und Anschlusssignale Zeile 7-11: Beschreibung der Entwurfseinheit

Zeile 8: Vereinbarungen von Datentypen, Signale, Unterprogramme etc.

Zeile 10: Anweisungen zur Beschreibung des Innenlebens Beschreibungsmittel f¨ ur das Innenleben:

Einbindung von Teilschaltungen ( ⇒ Strukturbeschreibung) Prozesse: Rahmen zur Verhaltensbeschreibung mit

imperativen Mitteln ( ⇒ Funktionsbeschreibung)

Kurzschreibweisen f¨ ur Verhaltensmodelle f¨ ur

(36)

Im Weiteren verwendete Schreibweisen/Farben

key Schl¨ usselwort

[...] optionales Element, darf Null mal oder einmal enthalten sein

{ ... } optionales Element, darf beliebig oft enthalten sein ... | ... Alternative, eines der aufgez¨ahlten Elemente muss

enthalten sein

Symbol Methasymbol (Nichtterminalsymbol): Symbol das nach weiteren Regeln zu ersetzen ist.

Name, IEEE eigener Bezeichner, standardisierter Bezeichner 1,”ab”, ... Wertangaben (Zahlen, Zeichenketten, ...) --- Text Kommentar

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201235/105

(37)

1. Entwurfsprozess 4. Beschreibungssprache (VHDL) Bezeichner sind explizit zu definieren

keine Mehrfachdefinition keine Schl¨ usselworte in VHDL

beginnen Bezeichner mit einem Buchstaben

bestehen nur aus den Buchstaben ’A’ bis ’Z’, ’a’ bis ’z’, den Ziffern ’0’ bis ’9’ und dem Unterstrich ’ ’

d¨ urfen nicht nicht mit einem Unterstrich enden und keine zwei Unterstriche hintereinander enthalten

keine Unterscheidung zwischen Groß- und Kleinschreibung

(38)

Simulierbare Entwurfseinheit (Testrahmen) keine Anschlusssignale

imperative Teilbeschreibungen in Prozesse gekapselt 1: entity hallo welt is

2: end entity;

3: architecture a of hallo welt is 4: begin

5: process 6: begin

--- Meldung ausgeben und Prozess beenden 7: report ”Hallo Welt”;

8: wait;

9: end process;

10: end architecture;

Simulationsausgabe:

HalloWelt.vhdl:7:5:@0ms:(report note): Hallo Welt

⇒WEB-Projekt: HalloWelt

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201237/105

(39)

1. Entwurfsprozess 4. Beschreibungssprache (VHDL) Gr¨oßere Teilbeschreibungen, die keine Entwurfseinheiten sind, werden in Packages ausgelagert: Typenvereinbarungen,

Konstanten, Unterprogramme, ...

--- Definitionssteil, exportierte Vereinbarungen 1: package HalloWelt pack is

2: constant c: STRING :=”Hallo Zeichenkette”;

3: function SchreibeText(s: STRING ) return STRING ; 4: end package;

--- Beschreibung der Unterprogramme 5: package body HalloWelt pack is

6: function SchreibeText(s: STRING ) return STRING is 7: begin

8: return s;

(40)

Nutzung eines Packages

1: use WORK .HalloWelt pack.all;

2: entity HalloWelt1 is 3: end entity;

4: architecture a of HalloWelt1 is 5: begin

6: process 7: begin

8: report ”Hallo Welt”;

9: wait for 1 ns;

10: report c;

11: wait for 1 ns;

12: report SchreibeText(”Hallo Funktionsaufruf”);

13: wait;

14: end process;

15: end architecture; ⇒WEB-Projekt: HalloWelt

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201239/105

(41)

1. Entwurfsprozess 5. Aufgaben

Aufgaben

(42)

Aufgabe 1.1:

Was ist eine Strukturbeschreibung, eine

Funktionsbeschreibung und eine geometrische Beschreibung?

Wozu dient der Testrahmen in einem Simulationsmodell?

Was sind die Merkmale, die Unterschiede, die Vorteile und die Nachteile formaler und informaler Modelle?

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201241/105

(43)

2. Modelle & Simulation

Modelle & Simulation

(44)

Begriffe

Eine digitale Schaltung ist ein System aus signalverarbeitenden Bausteinen (Teilsystemen), die ¨ uber Signale miteinander kommunizieren. Grundbegriffe:

Kombinatorische Schaltung (engl. combinational circuit, dt.

auch Schaltnetz): Schaltung ohne Speicherverhalten;

Ausgabe nur abh¨angig von den aktuellen Eingaben Sequentielle Schaltung (engl. sequential circuit, dt. auch Schaltwerk): Schaltung mit Speicherverhalten; Ausgabe auch abh¨angig von fr¨ uheren Eingaben

Signal: zeitlicher Werteverlauf einer physikalischen Gr¨oße.

Datentyp: beschreibt den Wertebereich eines Datenobjekts (Signal, Variable, Konstante) und optional die

Wertedarstellung

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201243/105

(45)

2. Modelle & Simulation 1. Signale, Datentypen

Signale, Datentypen

(46)

Bin¨ are Signale und Datentypen

x = 1 x = X x = 0

nicht darstellbar x = 0 x = 1 Sicherheitsbereich

Signal

groß

klein ϕ(x)

x (Signal)

Quelle Empf¨ anger

u(x) = ϕ(x)

Potenzial Signalwert

erweitert bin¨ ar Signal-

wechsel St¨orung

Der Datentyp beschreibt Wertebereich [+ Wertedarstellung]

Bit: zwei Wert + ung¨ ultig 1 Logik: B L = { falsch, wahr } Digitaltechnik: B = { 0, 1 [, X] }

1

Signale d¨ urfen nur innerhalb der G¨ ultigkeitsfenster ausgewertet werden

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201245/105

(47)

2. Modelle & Simulation 1. Signale, Datentypen

VHDL-Datentypen f¨ ur die Darstellung von Bits

In VHDL sind Bit-Typen Aufz¨ahlungstypen:

type BIT is (’0’, ’1’);

type BOOLEAN is ( FALSE , TRUE );

type STD LOGIC is (’U’, ’X’, ’0’, ’1’, ...) 2 ;

’0’, ’1’ – druckbare Zeichen

FALSE , TRUE – symbolische Konstanten variable b1, b2: BOOLEAN := TRUE ; ...

b1 := b1 and b2;

(48)

Bitvektoren

signal invalid t ϕ(x

0

)

x = x

1

x

0

ϕ(x

1

) b

1

b

0

b

2

b

3

· · ·

1

· · · 1

15 1 · · · 1 · · · 0

1

14 1 1 1

1

13 1 0 0

1

12 1 0 1

1

11 1 0 1 1 0 0 1 1 0 0

10 11 11 01 00 00 10 11 01

0 1 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 n = 1

n = 2 n = 3 n = 4

2 4 N = 8

numerical value (decimal):

1 1 1 0 1 0 1 0 1 0 1

4 3 2 1

0 5 6 7 8 9 10

1 1 1 1 1 0 0 0

N = 16

a)

x

1

u

x0

u

x1

x

b) x

0

ground voltage curve . . .

n Bits ⇒ N ≤ 2 n unterscheidbare Werte

N > 2 zu unterscheidende Werte ⇒ n ≥ log 2 (N ) ein BV ist nur g¨ ultig, wenn alle Bits g¨ ultig sind

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201247/105

(49)

2. Modelle & Simulation 1. Signale, Datentypen

Bitvektortypen und Zahlentypen

Bitvektoren 1D-Felder aus Bits:

type BIT VECTOR is array ( NATURAL range <>) of BIT ; type STD LOGIC VECTOR is array( NATURAL range<>) of

STD LOGIC ;

Bitvektorkonstanten sind Zeichenketten, z.B. ”0101”,”0X1”

Die Indexbereiche sind Zahlentypen:

type INTEGER range -2**31 to 2**31-1;

subtype NATURAL is INTEGER range 0 to INTEGER’HIGH ;

subtype POSITIVE is INTEGER range 1 to INTEGER’HIGH ;

(Zahlentyp range<>) – Obergrenze des Indexbereichs

(50)

Ohne Textverarbeitung geht es nicht

soh, dc1,

’1’,

’A’,

’Q’,

’a’,

’!’,

’q’,

etx, dc3

’3’,

’#’,

’C’,

’S’,

’c’,

’s’,

enq, nak,

’5’,

’%’,

’E’,

’U’,

’e’,

’u’,

bel, etb,

’7’,

’’’,

’G’,

’W’,

’g’,

’w’,

’Y’,

’I’, em, ht,

’)’,

’9’,

’i’,

’y’,

’[’,

’K’, esc, vt,

’+’,

’;’,

’k’,

’ { ’,

’]’,

’M’, gsp, cr,

’-’,

’=’,

’m’,

’ } ’,

’ ’,

’O’, usp, si,

’/’,

’?’,

’o’, del,

’X’,

’H’, can, bs,

’(’,

’8’,

’h’,

’x’, ack,

syn,

’6’,

’&’,

’F’,

’V’,

’f’,

’v’, eot,

dc4

’4’,

’$’,

’D’,

’T’,

’d’,

’t’, stx,

dc2,

’2’,

’B’,

’R’,

’b’,

’"’,

’r’, . . . );

type character is (

-- 128 additional characters (ISP 8859 Latin-1) -- 128 Zeichen des ASCII character set

nul, dle,

’0’,

’@’,

’P’,

’‘’,

’ ’,

’p’,

’ \ ’, ’ ∧ ’,

’>’,

’N’, rsp, so,

’.’,

’n’,

’ ∼ ’,

’L’, lf,

’,’,

’<’,

’ | ’,

’l’, fsp,

’Z’,

’J’, sub, lf,

’:’,

’j’,

’z’,

’*’,

type STRING is array( POSITIVE range <>) of CHARACTER ; ( POSITIVE range <>) ⇒ 1 ≤ idx ≤ INTEGER’HIGH

A ¨

,

O ¨

,

U ¨

und

ß

selbst in Kommentaren unzul¨assig

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201249/105

(51)

2. Modelle & Simulation 1. Signale, Datentypen

Die Zeit hat einen eigenen Typ

type TIME is range Minimalwert to Maximalwert units fs;

ps = 1000 fs; us = 1000 ps;

ms = 1000 us; sec = 1000 ms;

min = 60 sec; hr = 60 min;

end units;

Untertyp f¨ ur positive Zeiten:

subtype DELAY LENGTH is TIME range 0 fs to TIME’HIGH ;

(52)

Signalflussplan

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201251/105

(53)

2. Modelle & Simulation 2. Signalflussplan

Schaltungsbeschreibung durch einen Signalflussplan

Strukturbeschreibung / Graphendarstellung Teilsysteme ⇒ Knoten

Signale ⇒ Kanten, gerichtet vom Sender zum Empf¨anger

G1

&

G2

G3 z

2

z

1

x

2

x

1

x

4

x

3

& mit Anschl¨ Verarbeitungsbaustein ussen Signal

≥ 1 y

Symbol f¨ ur die Funktion

vorerst Beschr¨ankung auf kombinatorische Schaltungen:

Bausteine ohne Speicherverhalten

(54)

Logische Grundbausteine

f () x

n−1

y <= x

0

⊕ x

1

⊕ . . . y <= x

wenn s = 0 Multiplexer:

sonst y <= x

1

dann y <= x

0

y <= x

0

∨ x

1

∨ . . . y <= x

0

∧ x

1

∧ . . .

s x

0

x

1

allg. Funktion:

y <= f (x) y <= x

0

⊕ x

1

⊕ . . . y <= x

0

∨ x

1

∨ . . . y <= x

0

∧ x

1

∧ . . .

...

...

...

... ...

...

...

...

x

0

y

m−1

y

0

&

≥1 y x

n−1

y

x

0

x y

== y

x

0

x

0

x

n−1

x

n−1

XOR:

ODER:

UND:

Treiber (Identit¨at):

logische Funktion

x

0

=1 x

y

y y <= ¯ x

&

≥ 1

x

0

y

x

0

y

XNOR:

NOR:

NAND:

Inverter:

0

1 y

Symbol

x

n−1

x

n−1

x

n−1

logische Funktion Symbol

generische Modelle mit n als Parameter; Anschlusstyp BIT oder

STD LOGIC ; links Eing¨ange rechts Ausg¨ange

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201253/105

(55)

2. Modelle & Simulation 2. Signalflussplan

Signalflusspl¨ ane auf der Funktionsblockebene

f (x)

0 1

multiplexer diversification of a signal vector aggregation of a signal vector x

x 7

x 6,7

y x 2...6

y 1...4

y 5...8

number of bits x 1...5

z

combinatorial circuit

4 4

4

· · ·

· · ·

· · ·

Zusammenfassung von Bits zu Bussen; Typ BIT VECTOR ,

, sp¨ater auch weiter Typen

(56)

Imperative Modelle

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201255/105

(57)

2. Modelle & Simulation 3. Imperative Modelle

Imperative Funktionsmodelle

Die Funktion der Teilschaltungen wird imperativ beschrieben; als normales Programm f¨ ur einen normalen Rechner; wie normale Programm testbar. Testrahmen zum Experimentieren:

--- Vorspann library IEEE ;

use IEEE.STD LOGIC 1164.all;

library Tuc;

use Tuc.Ausgabe.all;

--- leere Schnittstelle entity test is end entity;

...

Package 1164 stellt Typen und Operationen

(58)

architecture a of test is

--- Vereinbarungsteil der Entwurfseinheit Signalvereinbarungen

begin process

--- Vereinbarungsteil Prozess Variablenvereinbarungen begin

--- Anweisungsteil Prozess zu testende Anweisungen wait; --- beendet Simulation end process;

end architecture;

--- Vereinbarungsteil Prozess variable a, b: STD LOGIC ; --- Anweisungsteil Prozess a := ’1’; b:=’X’;

write("a and b:" & str(a and b));

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201257/105

(59)

2. Modelle & Simulation 3. Imperative Modelle a :=’1’; b :=’X’; Wertzuweisungen an Variablen

write(Text ); Ausgabe auf dem Standardterminal

”a and b:” konstante Zeichenkette

Text1 & Text2 Verkettung zweier Zeichenketten str(Ausdruck ) Umwandlung des Ausdrucks in eine

Textdarstellung

Auf den Folien stehen im Weiteren nur die Vereinbarungen und Anweisungen; Download der kompletten Programme +

Download-Link f¨ ur Simulator + Hilfe zum ¨ Ubersetzen und Ausf¨ uhren:

http://techwww.in.tu-clausthal.de/

(60)

Definition von Datenobjekten und Zuweisungen

constant Bezeichner –,Bezeichner ˝: Typ [:=aw ];

variable Bezeichner –,Bezeichner ˝: Typ [:=aw ];

signal Bezeichner –,Bezeichner ˝: Typ [:=aw ];

aw – Anfangswert; ohne Angabe erster Wert der Typendefinition

BIT STD LOGIC BOOLEAN INTEGER NATURAL POSITIVE

’0’ ’U’ FALSE INTEGER’LOW 0 1

signal i: INTEGER ; signal b: STD LOGIC ; signal p: POSITIVE ; ...

write(”i=” & str(i) & ” b=” & str(b) & ” p=” & str(p));

Was wird ausgegeben?

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201259/105

(61)

2. Modelle & Simulation 3. Imperative Modelle die Indexbereich von Bitvektoren kann absteigend oder aufsteigend vereinbart werden

Elementezuordnung bei Wertezuweisungen von links nach rechts

signal s: STD LOGIC VECTOR (0 to 3) := "1100";

signal f: STD LOGIC VECTOR (3 downto 0) := "1100";

Vektorelement s(0) s(1) s(2) s(3) f(3) f(2) f(1) f(0)

Anfangswert 1 1 0 0 1 1 0 0

Ohne Anfangswertangabe Elementeinitialisierung mit Standardwerten

signal slv: STD LOGIC VECTOR (3 downto 0) ;

(62)

Variablenzuweisungen und Ausdr¨ ucke

Variablenname := Ausdruck;

Ein Ausdruck ist eine Textbeschreibung f¨ ur einen baumartigen Berechnungsfluss:

( ⋄ ) ( ⋄ )

s 1 s 2 . . . v 1 v 2 . . .

(logischer Ausdruck)

( ⊕ )

∨ ) (

( ∧ ) ( ∧ )

x 2

x 1 x 3 1 x 4

Signal Konstante

1 0

logische Funktion ein- oder zweistellige Variable

⇒ (¯ x 1 ∧ x 2 ) ∨ (¯ x 3 ∧ (1 ⊕ x 4 )) mit ⋄ ∈ {∧ , ∨ , ⊕}

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201261/105

(63)

2. Modelle & Simulation 3. Imperative Modelle

Schl¨ usselwort

0 0 1

1 1

1 0

0 0

0 0 1 0

1 1 1 0

1 1 1 0

0 0 1 x

1

0 1 x

2

0 0

0 1 1 1

x

1

⊕ x

2

x

1

∧ x

2

XNOR XOR

NOR ODER

x

1

⊕ x

2

x

1

∨ x

2

x

1

∨ x

2

x

1

∧ x

2

UND NAND

Inverter

¯ x

1

1 0

VHDL- not and nand or nor xor xnor

not

hat Vorrang

2-stellige VHDL-Operatoren sind gleichberechtigt

bei unterschiedlichen Operatoren Ausf¨ uhrungsreihenfolge mit Klammern festlegen

Was wird ausgegeben?

(64)

Verarbeitung ung¨ ultiger Bitwerte

type STD LOGIC is (’U’, ’X’, ’0’, ’1’, ...) ung¨ ultig (X): Wert kann

0

oder

1

sein Simulationsregeln:

X = X X ∧ 0 = 0 X ∨ 0 = X X ⊕ 0 = X X ∧ 1 = X X ∨ 1 = 1 X ⊕ 1 = X X ∧ X = X X ∨ X = X X ⊕ X = X variable x: STD LOGIC VECTOR (3 downto 0);

variable y: STD LOGIC ; ...

x := ”1001”; y := (x(3) and x(2)) or (x(1) and x(0));

x := ”10X1”; y := (x(3) and x(2)) or (x(1) and x(0));

x := ”X011”; y := (x(3) and x(2)) or (x(1) and x(0));

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201263/105

(65)

2. Modelle & Simulation 3. Imperative Modelle

Ausdruck ⇔ Berechnungsfluss ⇔ Signalfluss

Ergebnisweitergabe

Operation Verarbeitungselement

Signale ( ⊕ )

∨ ) (

( ∧ ) ( ∧ )

Berechnungsbaum

x 2

x 3

1 x 4

x 1

=1

&

≥ 1

&

x 2

x 1 x 3 1 x 4

Signalflussgraph Ausdruck

(¯ x 1 ∧ x 2 ) ∨ (

¯

x 3 ∧ (1 ⊕ x 4 ))

formal ineinander umrechenbare Beschreibungsformen

typ. Entwurfsablauf f¨ ur kombinatorische Schaltungen

(66)

Optimierung durch Konstantenelimination

Operationen mit Konstanten durch Ergebnis ersetzen Beschreibungsebene

logische Ausdr¨ ucke

((((x 1 ∧ 0) ∧ x 2 ) ∨ x 3 ) ⊕ 1) = (((0 ∧ x 2 ) ∨ x 3 ) ⊕ 1)

= ((0 ∨ x 3 ) ⊕ 1) = (x 3 ⊕ 1) = ¯ x 3 Beschreibungsebene

Signalfluss/Schaltung

& &

≥ 1

x 3 y

=1 x 1

0 0

0 x 3 x ¯ 3 y x 3 1

x 2

x 3 ⊕ 1 → x ¯ 3

x 3 ∨ 0 → x 3

x 2 ∧ 0 → 0

x 1 ∧ 0 → 0 vereinfachte

Schaltung

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201265/105

(67)

2. Modelle & Simulation 3. Imperative Modelle

Optimierung durch Verschmelzung

mehrfach ben¨otigte Teilergebnisse nur einmal zu berechnen Beschreibungsebene

logische Ausdr¨ ucke

y 1 := x 3 x 2 x 1 ∨ (x 4 ⊕ x 2 x 1 ) y 2 := x 5 x 4 ∨ x 2 x 1

Beschreibungsebene

Signalfluss/Schaltung

G5 y

1

G6 G1

G3 x

3

G2

x

1

x

2

G5 G3

G2

y

1

G1

x

3

G1a x

1

x = 1

z

&

& ≥ 1

= 1

≥ 1

&

&

&

(68)

Signalzuweisung

einem Signal werden Werte-Zeit-Tupel zugewiesen Signalname <= [VM ] Ausdruck [after td ]

–, Ausdruck [after td ]˝;

VM -- Verz¨ ogerungsmodell; Ausdruck -- Ausdruck Wert; td -- Ausdruck Verz¨ ogerungszeit

signal y: std logic;

...

y <= ’1’ after 1 ns, ’0’ after 2 ns, ’1’ after 3 ns;

Visualisierung:

ghdl -r Signal1 --wave=Signalverlauf.ghw gtkwave Signalverlauf.ghw [gtkwave setup.sav]

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201267/105

(69)

2. Modelle & Simulation 3. Imperative Modelle

Warteanweisungen und Weckbedingungen

Eine Warteanweisung legt den Prozess, bis die Weckbedingung erf¨ ullt ist, schlafen. Weckbedingungen:

die ¨ Anderung eines Signals aus einer Weckliste wait on Weckliste ;

das Weiterr¨ ucken der Simulationszeit um eine Verz¨ogerungszeit

wait for Verz¨ ogerungszeit ;

eine beliebige Bedingung, die Signalwerte oder die Simulationszeit auswerten:

wait until Bedingung ;

(70)

signal n: NATURAL ; ...

Z1: n <= n+1 after 1 ns, n+2 after 2 ns;

write("A1:" & str(now)&’:’&str(n));

wait on n; write("A2:" & str( NOW )&’:’&str(n));

wait on n; write("A3:" & str( NOW )&’:’&str(n));

wait for 0.5 ns; write("A4:" & str( NOW )&’:’&str(n));

Z2: n <= n+2 after 1 ns, n+4 after 2 ns;

write("A5:" & str( NOW )&’:’&str(n));

wait on n; write("A6:" & str(NOW)&’:’&str(n));

wait on n; write("A7:" & str(NOW)&’:’&str(n));

Ausgabe- wert von n

A1 0

A2 A3 A4/5 A6 A7

1 2 2 4 6

Zuweisung Z1 Z2

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201269/105

(71)

2. Modelle & Simulation 3. Imperative Modelle

Summary

Testrahmenschablone f¨ ur einzelne Anweisungen;

Testausgaben

write(Text & str(Datenobjekt ) & ...);

Datenobjekte: Konstanten, Variablen und Signale;

Vereinbarung:

Objekttyp Bezeichner –,Bezeichner ˝: Typ [:=aw ];

Variablenzuweisung/Ausdr¨ ucke:

Variablenname := Ausdruck ;

logische Ausdr¨ ucke ⇔ Berechnungsfluss ⇔ Signalfluss Signalzuweisungen

<= [VM ] [after ]

(72)

Event Driven Sim

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201271/105

(73)

2. Modelle & Simulation 4. Event Driven Sim

Event Driven Simulation

Each subcircuit monitors permanently it’s input signals In case of transition the new output values are calculated and delayed assigned

Output transitions Ausgabe¨anderungen trigger new

calculation in subsequent circuits

(74)

Simulation model of a subcircuit

PV x f(. . .) y

wait ... a)

PV

wait statement statements sequence of process variable initialisation of a

wait ...

b) y <= f(x);

wait on (x);

infinite loop:

calculation of output values out of the input values delayed assignment to the output signal

wait for an input transition

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201273/105

(75)

2. Modelle & Simulation 4. Event Driven Sim

Example

signal x: STD LOGIC VECTOR (5 downto 0);

signal y: STD LOGIC VECTOR (2 downto 0);

constant td: DELAY LENGTH := 1 ns;

...

process begin

y <= f(x) after td;

wait on x;

end process;

t d

f (x) y

x 6 3

y f (w2)

w1 w2

x

t d t

f (w1)

(76)

Circuit of three Gates

one process per gate + input process

t

d

= 1 ns

t

d

= 1 ns

t

d

= 2 ns

&

G1

G2 G3 z

1

z

2

&

x

4

x

3

x

2

x

1

≥ 1 y entity SimModell is

end entity;

architecture Sim of SimModell is

signal x1, x2, x3, x4, z1, z2, y: STD LOGIC :=’0’;

begin

--- Simulation G1 G1: process begin

z1<=x1 and x2 after 1 ns;

wait on x1, x2;

end process;

--- Simulation G2 G2: process begin

z2<=x3 and x4 after 1 ns;

wait on x3, x4;

end process;

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201275/105

(77)

2. Modelle & Simulation 4. Event Driven Sim

t

d

= 1 ns

t

d

= 1 ns

t

d

= 2 ns

&

G1

G2 G3 z

1

z

2

&

x

4

x

3

x

2

x

1

≥ 1 y

--- Simulation G3 G3: process

begin

y<=z1 or z2 after 2 ns;

wait on z1, z2;

end process;

--- Eingabeprozess Input Process: process

begin

wait for 1 ns; x3 <= ’1’;

wait for 2 ns; x1 <= ’1’; x4 <= ’1’;

...

wait;

(78)

Simulation of the example

initialisation no sheduled transaction

signal value 1 ns

1 ns 2 ns

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

010 0 0 0 0 010 0 0 0 0

0 0 0 0

1

1 1

0 0 0 0

1

1 1

0 0 0 0

1

1 1

0 0 0 0 0 0 0

0 ns Eingabe 1 ns 0 ns G3 0 ns G2

z2⇐1∧0 nach 1 ns 1 ns

3 ns

3 ns 3 ns 4 ns

010 1 0 0 0

0 0 0

1

1 1

0 0

1

1 1

1

1 1

6 ns

transactions G1

0 ns

scheduled

≥1

& z1

x2 G1 x1

& z2

x4 G2 x3

y G3

y x4

x3

z2

z1

x2

x1

x3⇐1 @1 ns:x3→1 E

y ⇐0∨0 nach 2 ns z2⇐0∧0 nach 1 ns

@1 ns: E + @3 ns: E G2

E x1⇐1 x4⇐1

@3 ns:x1→1

G1 z1⇐1∧0 nach 1 ns @3 ns:x4→1 G2 z2⇐1∧1 nach 1 ns @4 ns:z2→1 + @3 ns:x4→1

@3 ns:x1→1

G3 y ⇐0∨1 nach 2 ns @6 ns:y→1

· · · ·

@3 ns: E

input process E

z1⇐0∧0 nach 1 ns

tsim process signal assignment x4x3x2x1z2z1 y

0 1

tin ns

5 10 15

0

0 1

0 1

0 1 0 1 0 1 0 1

1 ns

2 ns 1 ns

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201277/105

(79)

2. Modelle & Simulation 4. Event Driven Sim simulation result

1 ns

1 ns

& 2 ns

&

x 4

x 3 x 2

x 1

≥ 1 y z 2

z 1 G1

G2

G3

x 2

x 1

x 1 ∧ x 2

z 1

z 1 ∨ z 2 z 2 x 4 x 3

x 3 ∧ x 4

0 1

0 1

0 1

0 1

1 ns

0 1

0 1

0 1

0 1

1 ns

0 1

(80)

Abbreviated form

Process with only one wait statement on signal transitions G1: process

begin

z1<=x1 and x2 after 1 ns;

wait on x1, x2;

end process;

⇒ abbriviated form: process with senstitivity list G1kurz: process (x1, x2)

begin

z1<=x1 and x2 after 1 ns;

end process;

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201279/105

(81)

2. Modelle & Simulation 4. Event Driven Sim

all input signals in the sensitive list

⇒ combinatorial process (process to describe a combinatorial circuit)

combinatorial process with only one signal assignment

⇒ abbriviated notation

z1<=x1 and x2 after 1 ns;

the abbriviated notation avoids error

missing wait statement

error

forgotten signal in the sensitivity list

What effect have those errors? Why difficuilt to detect?

(82)

Example description with concurrent signal assignments

t

d

= 1 ns

t

d

= 1 ns

t

d

= 2 ns

&

G1

G2 G3 z

1

z

2

&

x

4

x

3

x

2

x

1

≥ 1 y entity SimModel is

end entity;

architecture ConcSigAssign SimModel is

signal x1, x2, x3, x4, z1, z2, y: STD LOGIC := ’0’;

begin

--- Schaltung

G1:z1<=x1 and x2 after 1 ns;

G2:z2<=x3 and x4 after 1 ns;

G3: y<=z1 or z2 after 2 ns;

--- Eingabeprozess Input Process: process

begin

wait for 1 ns; x3<=’1’;

wait for 2 ns;

x1<=’1’; x4<=’1’;

... wait;

end process;

end architecture;

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201281/105

(83)

2. Modelle & Simulation 4. Event Driven Sim

Summary

The temporal flow is modeled by signal assigments and wait statements

The functional model of a combinatorial circuit ist a

process, which calculates the values of the output signals out of the values of the input signals, assigns them delayed, sleeps till the next transition of an input signal and repeats the all after waking up.

one process per subcircuit + one process to provide the

input signals + ...

(84)

Structural description

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201283/105

(85)

2. Modelle & Simulation 5. Structural description

Structural description

c

c y

a

b Type: Oder Name: G3 a

b x

3

x

4

c

z

2

a

b x

1

x

2

z

1

Type: Und Type: Und

Name: G1 Name: TObj

Type: G2u1o test bench

Name: G2

process to generate test input and check test output

graphical presentation: data flow plan

(86)

Entity declaration

entity circuit is

[generic (liste of configuration parameter s);]

[port (pin list )];

end entity;

pin list: comma-separated list of signals + flow direction + data type:

signal –,signal ˝:direction data type [:=default value ]

signal flow direction:

in Input out Output

inout In- and Output

buffer Output with value can be read back default value: initial value, if no other value is assigned

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201285/105

(87)

2. Modelle & Simulation 5. Structural description

Description of a single AND-Gate

t

d

& c a

c

b c

t

d

a

01

0 1

0 1

--- Schnittstellenvereinbarung entity And2 is

generic(td: DELAY LENGTH :=0 ns);

port(a, b: in STD LOGIC ; c: out STD LOGIC );

end entity;

--- Beschreibungsversion mit Verz¨ogerungszeit architecture with td of And2 is

begin

c <= a and b after td;

end architecture;

--- Beschreibungsversion ohne Verz¨ogerung

(88)

Subcircuit instance

Syntax for a subcircuit entity:

[subcircuit name:] entity [Library .]

entity name [(description name )]

[generic map(allocation map parameters )]

port map(allocation map interface signals );

Allocation list:

mapping by name:namensbasiert: comma-separated list of Tupels

object to be assigned => assigned object

mapping by position: comma-separated list of the assigned objects

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201287/105

(89)

2. Modelle & Simulation 5. Structural description

Struktural description

of the 3-gate-circuit x

1

&

x

2

≥ 1 y

&

x

3

x

4

z

2

G3 G1

G2

Entwurfseinheit: G2u1o z

1

Schnittstellenvereinbarung:

entity G3E is

port(x1, x2, x3, x4: in STD LOGIC ; y: out STD LOGIC );

end entity;

architecture Struktur of G3E is --- Vereinbarung der interenen Signale

signal z1, z2: STD LOGIC ; begin

--- Instanziierung und Verbindung der Gatter

(90)

x

2

x

1

y

&

G2 z

1

z

2

&

G1

≥ 1 G3

x

3

x

4

--- Instanziierung und Verbindung der Gatter G1: entity WORK .Und2(mit td)

generic map(1 ns) (1)

port map(x1, x2, z1) (1) ; G2: entity WORK .Und2(mit td)

generic map(td => 1 ns) (2)

port map(a=>x3, b=>x4, c=>z2) (2) ; G3: entity WORK .Oder2(mit td)

generic map(td => 2 ns) (2)

port map(a=>z1, b=>z2, c=>y) (2) ; end architecture;

⇒WEB-Projekt: G3/G3 Struk

(1) positionsbasierte Zuordnung (kurz, fehlertr¨achtig)

(2) namensbasierte Zuordnung (l¨anger, verst¨andlicher)

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201289/105

(91)

2. Modelle & Simulation 5. Structural description

Instanzbildung mit Platzhaltern

Der Design-Wizard von ise empfiehlt die ¨altere, umst¨andlichere Art der Instanziierung:

[Teilschaltungsname:] [component] Entwurfseinheit [generic map(Zuordnung sliste Parameter)]

port map(Zuordnung sliste Anschl¨ usse );

erfordert eine zus¨atzliche Deklaration der Schnittstelle als Komponente (in einem Package oder im Deklarationsteil der Entwurfseinheit)

component Entwurfseinheit is

[generic (Liste der Konfigurationsparameter );]

[port (Anschlussliste )];

(92)

Zuordnung von Entwurfseinheiten und Entwurfsbeschreibungen zu Komponenteninstanzen:

implizit: gleichnamige Entwurfseinheit mit derselben Schnittstelle, die zuletzt analysiert wurde mit der zuletzt analysierten Beschreibung

explizit: Zuordnung in einer zus¨atzlichen

Konfigurationsbeschreibung (wird in der Vorlesung nicht verwendet)

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201291/105

(93)

2. Modelle & Simulation 5. Structural description

Testrahmen

Testrahmen: oberste Hierarchieebene; keine Anschl¨ usse;

Testobjekt als Instanz; zus¨atzliche Prozesse zur Testdurchf¨ uhrung

c

x

3

x

4

x

1

x

2

a

b c

z

2

a b

z

1

type: Und2 name: G2 type: Und2

name: G1 Name: TObj

Typ: G3E test bench

a

b type: Oder2 name: G3

c y

e

4

e

3

e

2

e

1

a

processes to generate input and check output signals

(94)

x

3

x

4

x

1

x

2

e

4

e

3

e

2

e

1

y a

test input and test output name: TObj typ1: G3E

entity Test G3E is end entity;

architecture a of Test G3E is signal e1,e2,e3,e4,a: STD LOGIC ; begin

TObj: entity WORK .G3E(Struktur) port map(x1=>e1, x2=>e2, x3=>e3,

x4=>e4, y=>a);

Eingabe: process begin

wait for 1 ns; e3<=’1’; --- 1 ns wait for 2 ns; e1<=’1’; e4<=’1’; --- 3 ns ...

wait;

end process; ⇒WEB-Projekt: G3/Test G3E

Analyse mit

ghdl -a Test G3E.vhdl

l¨ost Hierarchie auf.

Ergebnis 4-Prozess-Simulationsmodell wie bereits behandelt.

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201293/105

(95)

2. Modelle & Simulation 5. Structural description

Zusammenfassung

Zur hierarchischen Strukturierung werden die Prozesse zu Entwurfseinheit zusammengefasst, mit Schnittstellen versehen und in ¨ ubergeordnete Entwurfseinheiten als Instanzen eingebunden.

Die oberste Ebene in der Beschreibungshierarchie eines Simulationsmodells ist der Testrahmen, eine Entwurfseinheit ohne Anschl¨ usse.

Bei der Schaltungsanalyse vor der Simulation wird die

Hierarchie wieder in einzelne ¨ uber Signale kommunizierende

Prozesse – das eigentliche Simulationsmodell – aufgel¨ost.

(96)

Aufgaben

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201295/105

(97)

2. Modelle & Simulation 6. Aufgaben

Aufgabe 1.2: Signalverlauf

ϕ(b

1

) ϕ(b

0

)

ϕ(b

2

)

ϕ(b

3

)

b = b

3

b

2

b

1

b

0

t – gesucht –

0001

In welchen Zeitbereichen ist der Signalvektor ung¨ ultig?

Welchen Wert hat er in den G¨ ultigkeitsfenstern?

(98)

Aufgabe 1.3: Typen und Datenobjekte

Vereinbaren Sie folgende Datenobjekte:

ein Signal mit dem Typ INTEGER und dem Anfangswert

30

eine Konstante vom Typ BOOLEAN und dem Anfangswert

TRUE

eine Bitvektorvariable vom STD LOGIC VECTOR , Indexbereich von 3 bis 0 absteigend und dem Anfangswert

alles null

.

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201297/105

(99)

2. Modelle & Simulation 6. Aufgaben

Aufgabe 1.4: Ausdruck ⇔ Berechnungsfluss ⇔ Signalfluss

x 1 ∧ x 2 ∧ x ¯ 3 ∧ x ¯ 1 ∧ x ¯ 2 ∧ x ¯ 3

Zeichnen des Berechnungsbaums unter Verwendung der ein- und zweistelligen logischen Operationen Invertierung, UND und ODER.

Zeichnen Sie den Signalflussplan unter Verwendung von

Invertern sowie UND- und NAND-Gattern mit n Eing¨angen.

(100)

Aufgabe 1.5: Signale und Variablen

Welche Werte schreiben die einzelnen Write-Anweisungen?

--- Vereinbarungsteil der Entwurfseinheit signal a: INTEGER := 0;

--- Vereinbarungsteil des Prozesses variable b: INTEGER := 0;

--- Anweisungsteil des Prozesses

A1: a <= a +1 after 0.5 ns; b := b+1; * A2: wait for 1 ns; *

A3: a <= a +1 after 0.5 ns; b := b+1; * A4: a <= a +1 after 0.5 ns; b := b+1; * A5: wait for 1 ns; *

* write("a=" & str(a) & " b=" & str(b));

Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201299/105

(101)

2. Modelle & Simulation 6. Aufgaben

Aufgabe 1.6: Bestimmung der Signalverl¨ aufe von z und y

0 2 4 6 8 10 12 t sim

10

1 0

10 10 1 0

& y z

x 2

x 1

x 0 &

t d = 1 ns

z x 2

x 1

x 0

t d = 1 ns

y

Tabelle mit allen ¨ Anderungen

Zeitverl¨aufe zeichnen

Abbildung

Tabelle mit allen ¨ Anderungen Zeitverl¨aufe zeichnen

Referenzen

ÄHNLICHE DOKUMENTE

While the process is executing and the current execution of a process instance is in between start and end milestone of a stage, the probability that the remaining steps until the

To assure that the concepts of relationships between events (time, causality, aggregation) and hierarchies of events of the technology Complex Event Processing (CEP) [Lu02] can be

Design Space Exploration: Perform a systematic search of the architectural design space based on the reference application and its properties; define and iteratively re- fine

With our third test case generation approach, we take a different direction and define a heuristic that generates a test suite to optimize our usage-based coverage criteria..

6.3 Updating Gravity field model during orbital exploration around Eros 433 asteroid 37 6.4 Trajectory points for spacecraft motion at different exploration points within an orbit of

RrBase is the class providing base implementation of methods required for resource handlings such as loading and unloading resources, notifying of clients, and registering of

Us- ing RNA-seq data from human lymphoblastoma cell lines obtained from GEUVADIS project we performed statistical fine mapping and colocalization analysis with external databases..

The architecture of the developed star tracker consists of a CMOS image sensor for taking images of the stars, an FPGA for extracting stars from the image and a microcontroller for