Entwurf und Simulation einfacher Logikelemente

Ähnliche Dokumente
I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

Übungsblatt 8 Lösungen:

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardwarepraktikum WS 1997/98. Versuch 5. Sequentielle Systeme II

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Einführung in die technische Informatik

5.Vorlesung Rechnerorganisation

EHP Einführung Projekt A

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007

Eingebettete Systeme

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert

Reconfigurable Computing. VHDL Crash Course. Chapter 2

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2010/2011

5 VHDL Einführung (I)

Praktikum Systementwurf mit VHDL HDL Design Lab

Einstellige binäre Addierschaltung (Addierer)

17 Zähler. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 17-1

Computergestützter IC- Entwurf

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

Digitalelektronik. Philipp Fischer. 9. Dezember 2002

D.5 Versuchsreihe 5: Arithmetisch-Logische Einheit

Laborübung 3. Latches, Flipflops, Counter

Entwurfsverfahren digitaler Schaltungen

Klausur ( ): Technische Grundlagen der Informatik 1 Digitale Systeme WS 2006/2007

Hardwarepraktikum WS 2001/02

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2007/2008

Laborübung 4. Zustandsautomaten (Finite State Machines)

GTI Bonus VHDL - EXTRA

FPGA-Entwurf mit VHDL. Serie 3

Entwurf digitaler Schaltungen Groÿe Übung 3 Simulation mit ghdl

Hardware Praktikum 2008

Einführung in VHDL (2)

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt

Hardware Praktikum 2008

12 VHDL Einführung (III)

Paritäts-Bit- Generator

Computergestützter IC- Entwurf

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 2: VHDL-Einstieg

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

Grundlagen der Technischen Informatik. 13. Übung

SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik

Entwurf und Verifikation digitaler Systeme mit VHDL

ERA-Zentralübung 11. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 11

Klausur zur Vorlesung

Aufgabe 1: Kombinatorische Schaltungen

Erste praktische Übung zur Vorlesung Grundlagen der Technischen Informatik

Darstellung eines 1-Bit seriellen Addierwerks mit VHDL. Tom Nagengast, Mathias Herbst IAV 07/09 Rudolf-Diesel-Fachschule für Techniker

Endliche Automaten 1 WS 00/01. Steuerautomaten

Praktikum Grundlagen von Hardwaresystemen Wintersemester 2012/13. Versuch 4: VHDL-Grundlagen

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010

5.2 Endliche Automaten

Dipl.-Ing. (TU) Klaus-Eckart Schulz Birnbaumring Berlin Kempten, 24. Mai 2018

VHDL - Objekte und Typen

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

1.1 VHDL-Beschreibung

Praktikum Grundlagen von Hardwaresystemen Wintersemester 2013/2014. Versuch 1: VHDL-Grundlagen

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik

Anwendungen der Prozessdatenverarbeitung (Liste V) Leitung: Prof. Dr. Linn. Microcontroller Programmierung

9. Elektronische Logiksysteme ohne Rückführung, kombinatorische Schaltungen

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Aufgaben zum Elektronik - Grundlagenpraktikum

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.

Integrierte Schaltungen

Grundlagen der Technischen Informatik

Outline Logik Speicher Synthese Signale/Variablen Packages Generische Designs. Basics. Marc Reichenbach

Sequentielle Schaltungen 37 SS 96. Steuerpfad

VHDL Verhaltensmodellierung

Übung 3: VHDL Darstellungen (Blockdiagramme)

VHDL Objekte und Typen

Klausur zur Vorlesung. Grundlagen der Technischen Informatik (GTI) und. Grundlagen der Rechnerarchitektur (GRA)

Field Programmable Gate Array (FPGA) Complex Programmable Logic Devices (CPLD)

Martin V. Künzli Marcel Meli. Vom Gatter zu VHDL. Eine Einführung in die Digitaltechnik. : iasms!wil5i-8sb*l!f. 3. Auflage. zh aw

15 Einführung in den Entwurf von Zustandsautomaten

Praktikum Grundlagen von Hardwaresystemen Wintersemester 2012/13. Versuch 5: Carry-Ripple, Conditional-Sum und Carry-Lookahead-Addierer

VHDL-Einführung. Universität Hamburg MIN Department Informatik Eingebettete Systeme: VHDL-Einführung

Hardwarepraktikum WS05/06

6 Schaltwerke und endliche Automaten

Entwurf digitaler Systeme mit VHDL-1076

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 2: Multiplexer, Carry-Ripple- und Carry-Lookahead-Addierer

Hardwarepraktikum WS 1997/98. Versuch 2. Kombinatorische Systeme I

N. Schmiedel, J. Brass, M. Schubert VHDL Formelsammlung FH Regensburg, VHDL Formelsammlung

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

Verilog Hardware Description Language (HDL)

Aktuelle Trends bei der Simulation mechatronischer Systeme

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 2: Multiplexer, Carry-Ripple- und Carry-Lookahead-Addierer

Transkript:

Entwurf und Simulation einfacher Logikelemente Philipp Fischer 10. Dezember 2002 1

Inhaltsverzeichnis I Theoretische Grundlagen 3 Einleitung 3 Entwurf einer Schaltung 3 Entitys und Architectures......................... 3 Simulation / Stimulation.......................... 3 Konfiguration und Ausgabe........................ 4 II Aufgaben 5 NAND-Gatter 5 XOR-Gatter 5 Übertragen der Code-Dateien von NAND ach XOR........... 5 Algorithmische Beschreibung........................ 5 Strukturelle Beschreibung......................... 6 Fehlerquelle glitch............................ 6 2

Teil I Theoretische Grundlagen Einleitung Im Versuch Entwurf und Simulation einfacher Logikelemente ging es im wesentlichen darum, sich mit der Entwurfsumgebung VHDL auseinanderzusetzen und diese näher kennenzulernen. VHDL bedeutet: VHSIC Hardware Description Language, wobei VHSIC für Very High Speed Integrated Circuit steht. VHDL ist eine Hardwarebeschreibende Sprache, mit der Digitale Schaltungen simuliert werden können. Entwurf einer Schaltung Entitys und Architectures Der Entwurf einer Schaltung gliedert sich vorerst in die Definition der einzelnen Elemente. Diese werden vorerst als Black-Box defniniert, indem nur Ein- und Ausgänge, also Eingangs- und Ausgangsvektor, bezeichnet werden. Diese Definition nennt man Entity. Eine Verhaltensweise eines durch den Entity-Befehl definierten Elements wird durch den Befehl architecture eingeleitet. Es können zu jeder Entity mehrere Verhaltensweisen, also architectures definiert werden, sie unterscheiden sich durch den Bezeichner (hier: verhalten1, verhalten2, ): entity NAND_gate is end NAND_gate; architecture verhalten1 of NAND_gate is end Dataflow; architecture verhalten2 of NAND_gate is end Dataflow; Simulation / Stimulation Sind die Elemente und deren Verhalten definiert, kann eine Simulation der Schaltung vorgenommen werden. Dazu Schafft man sich eine Umgebung, ebenfalls eine Entity, die die Schaltung stimuliert, also mit Signalen versorgt. Für die Simulationsumgebung wird ebenfalls das Verhalten, also die architecture, festgelegt. In 3

unserem Fall, zum Überprüfen von Gattern, gibt sie zeitlich - im Nanosekundenbereich - verschiedene Werte vor: a_test <= 0 after 0 ns, 1 after 2 ns, 0 after 4 ns, Der Eingang a test wird hier beispielsweise von 0 auf 1 und dann wieder auf 0 gesetzt. Konfiguration und Ausgabe Schließlich benötigt man zum Simulieren noch eine Kofiguration: configuration NAND_test of SimBox is for Test_NAND for my_nand_gate : NAND_gate use entity work.nand_gate(dataflow); end for; end for; end NAND_test; Die Konfiguration wird im Simulator geladen. Daraufhin kann der Prozess gestartet werden. Die Ausgaben des Simulators sind individuell auswählbar, es gibt numerische und graphische Ausgaben. Die configuraton (sie trägt im Beispiel den Namen NAND test) leitet eine Struktur ein, in der die zur Simulation verwendeten Elemente ausgewählt werden, also die Entities mit den zugeordneten Architectures. Im Code oben ist das die Entity SimBox mit der Verhaltensvorschrift Test NAND. In Test NAND tritt nun die Komponente NAND Gate auf. Diese ist nicht weiter defniniert. Deshalb verweist der Code an dieser Stelle auf eine externe Deklaration in der Bibliothek work, der Verweis lautet dann NAND_gate use entity work.nand_gate(dataflow); und enthält die definierte Entity und die gewünschte Architecture - in diesem Fall Dataflow. 4

Teil II Aufgaben NAND-Gatter Der erste Schritt war die Realisation eines NAND-Gatters mit VHDL. Dazu wurde eine Simulationumgebung (s. o.) geschaffen, eine Konfigurationsdatei und eine Datei zur Beschreibung des Gatters, also dessen Entity und Architecture. Die Dateien befinden sich im Anhang auf dne Seiten 1, 2 und 3. Das Ergebnis der Simulation entspricht der Rechenvorschrift eines NAND-Gatters. Die Signale sind im Anhang auf Seite 4 ausgedruckt, a und b als Eingänge und o als Ausgang. XOR-Gatter Übertragen der Code-Dateien von NAND ach XOR Es wurden dann die Dateien so editert, daß ein XOR-Gatter beschrieben werden konnte. Dazu befinden sich die Audrucke auf den Seiten 5 bis 7 im Anhang und auf Seite 8 das Ergebnis der Simulation, die Signale. Algorithmische Beschreibung Als weitere Möglichkeit das Verhalten einer Entity zu Definieren steht die Algorithmische Beschreibung zur Verfügung. Der Code dazu befindet sich auf Seite 9 im Anhang. Es wird dabei der Befehl process verwendet. Er steht in einer architecture-anweisung und kapselt einen abzuarbeitenden Prozeß dessen Ergebnis dann als das Ergebnis der architecture vorliegt: architecture algorithm of XOR_gate is decide: process(a,b) if o <= end decide; end algorithm; Die im process auftretenden Variablen - in diesem Fall a,b und o - sind die von der (der Architecture zugeordneten) Entity vorgegeben Variablen. Auf Seite 10 im Anhang bestätigen die Signale, daß die Rechenvorschrift eines XOR eingehalten wird. 5

Strukturelle Beschreibung Eine weitere Möglichkeit Schaltungen zu beschreiben bietet die Strukurbeschreibung. In unserem Fall wurde ein XOR aus 4 NAND-Gattern realisiert (siehe dazu Anhang Blatt 0, Vorbereitung). In genau dieser Form soll eine Schaltung nun auch in der Architecture beshcrieben werden. Es wird also eine Schaltung aus mehreren Bausteinen zusamengesetzt, indem ihre Ports, die Ein- und Ausgänge, miteinander verbunden werden. Diese Verbindungen müssen dafür im kopf der architecture-anweisung zusätzlich definiert werden, sie sind vom Typ signal: architecture structure of XOR_gate is signal s3,s4,s5: STD_LOGIC; component NAND_gate port (); end component; end structure; In diesem Codeauszug tritt auch wieder eine componente auf, also eine extern beschriebene Entity. Nun werden im Hauptteil der architecture structure Komponenten benannt und mit den Signal-Variablen untereinander verbunden: architecture structure of XOR_gate is U1:NAND_gate port map (a,b,s3); end structure; Dabei werden ebenfalls die von der Entity bereitgestellten I/O-Variablen a, b und o verwendet. Der Befehl port map (a,b,s3) gibt der Komponente U1 (des Typs NAND gate) die Eingangs- und Ausgangsvariablen vor. Der vollständige Code dazu ist im Anhang auf Seite 13 zu finden (Simulationsumgebung auf Seite 14). Fehlerquelle glitch Der Nachteil einer solchen sehr überschaubaren Zusammensetzung einer Schaltung ist die nicht vorgegebene Abhängigkeit der Ein- und Ausgaben der Komponenten. Es gibt also keine vorgegebene Reihenfolge der Berechnung der Komponentenergebnisse, so daß eine Komponente, die den Ausgang einer anderen trägt, erst ein gültiges Ergebnis liefern kann, sobald die den Eingang beschaltende Komponente ein gültiges Ergebnis liefert. Auf diese Weise muß das Ergebnis einige Komponenten erneut berechnet werden, so daß sich eine Verzögerung ergibt, während der am Ende ein ungültiges Ergebnis vorliegen könnte. 6

Um dieses Verhalten zu untersuchen haben wir auf die Schaltung (XOR aus NAND-Gattern) von (a=b=0) unmittelbar auf (a=b=1) geschaltet. Das Ergebnis hätte eine bleibende 0 sein müssen. Doch durch die oben beschriebenen Abhängigkeiten lag dann kurzfristig eine 1 als ergebnis vor, also ein ungültiges Ergebnis. Die Gaphik des Signalverlaufs befindet sich im Anhang auf Seite 14. 7