Praktikum Grundlagen von Hardwaresystemen · PDF file3 VHDL 6 3 VHDL 3.1 Entity, Architektur und Signale Die nachfolgend aufgef uhrten VHDL-Elemente sind als grundlegende Strukturelemente

Embed Size (px)

Citation preview

  • Praktikum

    Grundlagen von Hardwaresystemen

    Sommersemester 2013

    Versuch 1: VHDL-Grundlagen

    24. April 2013

    Fachbereich 12: Informatik und MathematikInstitut fur Informatik

    Professur fur Eingebettete SystemeProf. Dr. Uwe Brinkschulte

    Daniel LohnMichael Bauer

    Benjamin Betting

    Johann Wolfgang Goethe-UniversitatFrankfurt am Main

    1

  • INHALTSVERZEICHNIS 2

    Inhaltsverzeichnis

    1 Einleitung 3

    2 Grundlagen 5

    3 VHDL 63.1 Entity, Architektur und Signale . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    3.1.1 Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.1.2 Signale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    3.2 Busse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.2.1 Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    3.3 Simulation einer VHDL-Schaltung . . . . . . . . . . . . . . . . . . . . . . . . 123.4 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.5 Das gesamte Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    4 Multiplexer 17

    5 Einfuhrung in Xilinx ISE WebPack 195.1 ISE Webpack Starten, Erzeugen von Projekten . . . . . . . . . . . . . . . . . 195.2 Anlegen und Einfugen von VHDL Dateien . . . . . . . . . . . . . . . . . . . . 20

    5.2.1 Anlegen von Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.2.2 Hinzufugen von Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    5.3 Simulation von Entwurfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.3.1 Verwendung von ISim . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    6 Anmerkungen und Tipps 29

    7 Vorbereitungsaufgaben 31

    8 Praktikumsaufgaben 33

  • 1 EINLEITUNG 3

    1 Einleitung

    Die Entwicklung von mikroelektronischen Schaltungen auf hohem Abstraktionsniveau wirddurch den starken Anstieg der Entwicklungskomplexitat bei sehr stark reduzierten Entwick-lungszeiten bestimmt.

    Um konkurrenzfahig zu bleiben, reichen herkommliche Wege uber graphische Schaltplan-eingaben auf Logikelementebene in der Industrie schon seit langerem nicht mehr aus. Ausdiesem Grund kommen Hardwarebeschreibungssprachen zum Einsatz, um Schaltungen zuentwerfen. Zudem besteht die Moglichkeit den entworfenen Quellcode mit zur Verfugung ste-henden Simulationsprogrammen zu testen und das Verhalten der Schaltung schon vor derSynthese zu uberprufen. Diese Beschreibungssprachen werden in zwei Kategorien unterteilt:

    Hardwarebeschreibungssprachen

    Modellierungs- und Simulationssprachen

    Eine Hardwarebeschreibungssprache (engl. Hardware Description Language, HDL)bezeichnet eine Sprache innerhalb einer allgemeinen Klasse von Beschreibungssprachen inder Elektronik. Mit ihr konnen die Funktion von Schaltungen und ihr Design beschrieben,sowie durch Simulation getestet werden. Sie drucken ein zeitliches Verhalten und/oder eine(raumliche) Schaltkreisstruktur in normalem Text aus. Zu dieser Klasse gehoren die Hard-warebeschreibungssprachen, die in Tabelle 1 aufgelistet sind.

    Eine Modellierungs- und Simulationssprache wie SystemC ist insbesondere fur dieEntwicklung von komplexen elektronischen Systemen, die sowohl Hardware- als auch Softwa-rekomponenten enthalten, geeignet. Im Gegensatz zu reinen Hardwarebeschreibungssprachenwird SystemC vorrangig zur Modellierung auf noch hoheren Abstraktionsebenen eingesetzt,womit Simulationen um den Faktor 100 bis 1000 schneller durchgefuhrt werden konnen. Selbstlangere Programme, z.B. die Firmware eingebetteter Systeme, die auf der beschriebenen Hard-ware ablaufen, konnen mitsimuliert werden.

    In diesem Praktikum wird eine Hardwarebeschreibungssprache benotigt, die fur die Be-schreibung und Simulation digitaler Systeme und deren Umgebung geeignet ist. Wir habenuns fur VHDL, welche 1983 vom amerikanischen Departament of Defense initiiert wurde,entschieden.

  • 1 EINLEITUNG 4

    HDL Standardisierung Anbieter

    VHDL IEEE 1076-1987 EDA

    Verilog IEEE 1364-1995 EDA

    GHDL (Genrad)

    VHDL-AMS (IEEE 1976.1) (EDA)

    Verilog (OVI) (EDA)

    MAST Analogy

    FAS Anacad/MGC

    Spectre-HDL Cadence

    IRENE IMAG

    KARL Universitat Kaiserslautern 1979

    AHPL Universitat Arizona 1974

    DACAPO DOSIS GmbH Dortmund

    Tabelle 1: Hardwarebeschreibungssprachen

    Ein besonderer Vorteil der Benutzung der Hardwarebeschreibungssprachen liegt in dergemeinsamen Nutzung einheitlicher Modellierung fur Simulation und Synthese. Die Simula-tion dient der Verifikation der Entwurfsidee; die Synthese setzt die Hardwarebeschreibungautomatisch in eine Netzliste um. Letztere ist die Grundlage fur die Implementierung derSchaltung auf Hardwareplattformen wie ASIC, FPGA und CPLD.

    Die Zielarchitektur des Praktikums ist ein FPGA von Xilinx. Den FPGA-Markt teilensich im Wesentlichen die Firmen Xilinx und Altera. Daneben gibt es noch einige weitereNischenanbieter wie Actel, Lattice und QuickLogic. Xilinx wurde ausgewahlt, da neben derMarktbedeutung auch bereits entsprechende Software und Erfahrung an der Professur vor-handen sind.

  • 2 GRUNDLAGEN 5

    2 Grundlagen

    In diesem Versuch werden grundlegende VHDL-Konzepte erlautert. Am Beispiel eines NAND-und eines XOR-Gatters wird der VHDL-Sprachumfang schrittweise und problemorientierteingefuhrt. Im Einzelnen werden dabei die folgenden Punkte behandelt:

    Methoden der Schaltungsbeschreibung:

    Konzept: Trennung zwischen Schnittstelle (Port), Entwurfseinheit (Entity) undVerhalten (Architecture)

    Beschreibungsstile von Schaltungen:

    strukturelle Beschreibung Datenflussbeschreibung algorithmische Beschreibung

    Definition von Signalen

    Bedienung der VHDL-Entwurfsumgebung (Compiler und Simulator)

    Modellierung einfacher boolescher Schaltnetze

    Beschreibung von Halb- und 1-Bit-Volladdierern

  • 3 VHDL 6

    3 VHDL

    3.1 Entity, Architektur und Signale

    Die nachfolgend aufgefuhrten VHDL-Elemente sind als grundlegende Strukturelemente jederVHDL-Beschreibung anzusehen.

    3.1.1 Entity

    In der mit Entity bezeichneten Entwurfseinheit werden die Schnittstellen eines VHDL-Funk-tionsblocks nach auen beschrieben. Unter der Schnittstelle einer Schaltung versteht mandie Menge aller Signalleitungen, die diese Schaltung mit ihrer Umgebung verbinden, inklusiveder Information uber die Signaleigenschaften wie z.B. Wertebereiche und Signalrichtungen.Beim Vergleich eines Chip-Designs mit einem VHDL-Quellcode stellt eine Entity den zubestuckenden IC-Gehausetyp dar, der durch die Anzahl, die Eigenschaften und die Bezeich-nung der Anschlusse definiert ist. Die Deklaration der Anschlusse innerhalb der Entity erfolgtmit Hilfe der Port-Anweisung. Dabei beschreibt jedes Element der Port-Anweisung einenoder mehrere Anschlusse.

    Entity-Syntaxentity isport ();

    end ;

    Listing 1: Deklaration eines NAND-Gatters

    entity NAND gate i sport ( a , b : in STD LOGIC;

    c : out STD LOGIC ) ;end NAND gate ;

    a

    bcNAND_gate

    Abbildung 1: Graphische Darstellung der Entity eines NAND-Gatters

    Die Entity einer Schaltung (mit zwei Eingangen und einem Ausgang) kann man auchgraphisch wie in Abbildung 1 darstellen. Dabei sind a und b die Eingangssignale und c dasAusgangssignal der Schaltung. Alle drei Signale sind vom Typ std logic, was bedeutet, dasses sich um einzelne Logiksignale handelt.

    3.1.2 Signale

    Signale sind ein weiteres zentrales Element von VHDL. Ahnlich wie Variablen in anderenProgrammiersprachen sind Signale in VHDL die Trager von Information. Nach einer Signal-zuweisung nimmt das Signal einen bestimmten Wert an. Naturlich kann das Signal auf den

  • 3 VHDL 7

    augenblicklichen Wert abgefragt werden oder mit anderen Signalen und geeigneten Operato-ren verknupft werden.

    Vergleichbar mit einem Stuck Draht verbindet ein Signal Ausgang und Eingang zweierTeilschaltungen (z. B. Gatter, Flip-Flop etc.). Doch nicht jedes Signal ist nach der Syntheseauch tatsachlich als Verbindungsleitung vorhanden. Wahrend der Synthese konnen Signaleals Folge einer Optimierung verschwinden oder neue hinzukommen.

    Jedes Signal ist von einem eindeutig zu definierenden Typ und besitzt einen eindeu-tigen Namen. Zur Einfuhrung soll hier zunachst nur der Signaldatentyp std logic bzw.std logic vector benutzt werden, welcher den Anwendern aus dem std logic 1164 Paketder Bibliothek IEEE zur Verfugung steht. Das Paket std logic 1164 stellt 9-wertige Logikdar, kann aber auch 3-, 4- und 5-wertige Logik realisieren. Das heit, dass der Wertevorratdes Signaldatentyps std logic aus neuen logischen Werten besteht. Fur das Praktikum sindfolgende vier Werte relevant: 0, 1, U, X, wobei 1 fur die logische Eins, 0 fur die logische Null,U fur nicht initialisiert und X fur unbekannt (z.B. durch einen Kurzschluss) steht.

    Die Belegungstabelle eines Inverters mit 4-wertiger Logik:

    U X 0 1

    U X 1 0

    Die Belegungstabelle eines UND-Gatters mit 4-wertiger Logik:

    U X 0 1

    U U U 0 UX U X 0 X0 0 0 0 01 U X 0 1

    Die Belegungstabelle eines ODER-Gatters mit 4-wertiger Logik:

    U X 0 1

    U U U U 1X U X X 10 U X 0 11 1 1 1 1

    Die IEEE-Library ist sehr weit verbreitet. Abhangig von der verwendeten Entwurfsumge-bung konnen auch andere Bibliotheken mit anderen Bezeichnern verwendet werden, die manvon einem Hersteller erhalten oder die man selbst geschrieben hat.

    Im Quellcode konnen diese Datentypen verwendet werden, wenn vor der entity-Deklarationdie IEEE-Bibliothek mit Hilfe einer library-Anweisung deklariert wird. Zusatzlich mussdurch die use-Anweisung angegeben werden, dass alle Komponenten des std logic vector 1164Pakets