If you can't read please download the document
Upload
trinhkhue
View
219
Download
0
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