1. Realisierungsformen (Grundlagen Digitaltechnik II)

Ähnliche Dokumente
12 VHDL Einführung (III)

Teil 1: Digitale Logik

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

5 VHDL Einführung (I)

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

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

Teil 1: Digitale Logik

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

EHP Einführung Projekt A

F Programmierbare Logikbausteine

FPGA. Field Programmable Gate Array

F Programmierbare Logikbausteine

Digitaltechnik II SS 2007

Teil 1: Digitale Logik

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

Entwurf und Verifikation digitaler Systeme mit VHDL

Praktikum Systementwurf mit VHDL HDL Design Lab

Übung Hardwareentwurf

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

1.1 VHDL-Beschreibung

GTI Bonus VHDL - EXTRA

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

Übung 3: VHDL Darstellungen (Blockdiagramme)

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

Name: DT2 Klausur

Technische Grundlagen der Informatik

Technische Grundlagen der Informatik

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen. VHDL Einführung 1

Einführung in die technische Informatik

Hardware Programmierbare Logik

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

Paul Molitor und Jörg Ritter VHDL. Eine Einführung. ein Imprint von Pearson Education

Einführung in VHDL (2)

Übung 5: VHDL Zähler

Reconfigurable Computing. VHDL Crash Course. Chapter 2

FPGA-Entwurf mit VHDL. Serie 3

Simulation von in VHDL beschriebenen Systemen

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

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

1 Grundlagen Digitaltechnik II

Übungsblatt 8 Lösungen:

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

VHDL Verhaltensmodellierung

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

VHDL Verhaltensmodellierung

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

2. Einführung in VHDL

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

Laborübung 4. Zustandsautomaten (Finite State Machines)

Hardware Praktikum 2008

VHDL Objekte und Typen

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign"

15 Einführung in den Entwurf von Zustandsautomaten

Technische Grundlagen der Informatik Kapitel 5. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

Übersicht. Prof. Dr. B. Lang, HS Osnabrück Konstruktion digitaler Komponenten, 3. Hierarchischer und generischer VHDL-Entwurf - 1 -

Programmierbare Logik mit GAL und CPLD. Einführung in die Schaltungsentwicklung mit Logikbausteinen in ISP-Technologie von Christian Ellwein

5.Vorlesung Rechnerorganisation

Hardware Praktikum 2008

Informatik I Übung, Woche 41

VHDL-Synthese digitaler Systeme Lösungen zu den Übungsaufgaben

Beschreibungsmöglichkeiten in Verilog

14 Addierer und Subtrahierer

FAKULTÄT FÜR INFORMATIK

Mikroprozessortechnik Grundlagen 1

Einführung in Computer Microsystems Sommersemester Vorlesung Dr.-Ing. Wolfgang Heenes

Einführung in VHDL. Dipl.-Ing. Franz Wolf

3. Prozesse in VHDL 1

13 Programmierbare Speicher- und Logikbausteine

Informatik I Übung, Woche 41

Einstellige binäre Addierschaltung (Addierer)

Anwenderprogrammierbare

Computergestützter IC- Entwurf

Architecture Body Funktionale Beschreibung einer "Design Entity" - * beschreibt die Funktion auf Verhaltens-, Struktur- oder Datenfluss-Ebene

Outline Addierer Multiplizierer Block RAM. Rechenschaltungen 2. Marc Reichenbach und Michael Schmidt

Name: DT2 Klausur Bitte achten Sie auf eine saubere Form. Nicht leserliches kann nicht bewertet werden.

Was ist VHDL? V: very high speed integrated circuit HDL hardware description language. mächtige HW-Beschreibungssprache. Wozu hat man VHDL entwickelt?

VHDL - Objekte und Typen

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14

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

5.2 Endliche Automaten

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

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

Entwurf und Simulation einfacher Logikelemente

Basics. Marc Reichenbach und Michael Schmidt 05/11. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg

Basics. Marc Reichenbach und Michael Schmidt 05/11. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg

Mögliche Praktikumsaufgaben

Übung 7: VHDL Automaten

VHDL. Informationstechnik für Luftund Raumfahrt Aerospace Information Technology. Aerospace Information Technology

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

Grundlagen der Technische Informatik / Digitaltechnik (GTI/DT)

Simulieren der Unisim Library mit Hilfe des Simulator GHDL

16 Latches und Flipflops (Bistabile Kippstufen)

Neues vom STRIP Forth-Prozessor

RO-Tutorien 3 / 6 / 12

Grundlagen der Rechnerarchitektur. Binäre Logik und Arithmetik

Integrierte Schaltungen

Speicherung digitaler Signale

Transkript:

1. Realisierungsformen (Grundlagen Digitaltechnik II) The Moore s Law (Gordon Moore, Intel): Anzahl Transistoren auf einem Chip verdoppelt sich alle 2 Jahre. Standart-Bauteile Fixe Funktion, verschiedene Technologien, grosse Stückzahl, Einsatzgebiet in Serienproduktion AND, OR, NFC, Flash-Speicher Programmierbare Bauteile Beispiel:FPGA xilinx series 7 x CLB (zwischen 100k - 4.4mio) 2 Slices pro CLB Pro Slice 4xLUT, 8xFF davon 4xD- Latch, Mux, Carry Anwendungsspezifische Bauteile ROM (Read Only Memory) Günstig, Logikschaltungen PLD (Programable Logic Device) Baustein aus AND- und OR-Matrix FPGA(Field Programable Gate Array) Zweidimensionales Array von Logikblöcken, breites Einsatzspektrum. Zwei Technologien: SRAM: statisch RAM, verliert Info ohne Strom Antifuses: Isolationsschicht durchgebrannt ->immer leitenden Verbindung Semi-Custom ASIC (Anwendungsspezifischer IC) Full-Custom ASIC PROM/OTP (One time programable) EPROM (erasable with UV) EEPROM (electric erasable) Flash (EEPROM mit blockweise r/w) PAL (Programmable Array Logic) AND programmierbar, OR fest PLA (Programmable Logic Array) AND; OR programmierbar GAL (Generic Array Logic) Logik wie PLA aber noch Ausgangsnetzwerke CPLD (complex PLD) Viele Makrozellen & Logikblöcke für parallele Prozesse Aus Logikblock (CLB), I/O-Block (IOB), Schaltmatrix (PSM),weitere Makrozellen wie RAM, Clock, DSP CLB (Configurable Logic Block): -Look-up-Table (LUT) -FlipFlop (FF) -Carry-Logik -Mux Mikrozellen aus Transistoren Zu Gates -> Gate Array oder Sea of Gates Auch analoge Teile Einbau möglich Völlig Kundenspezifisch, genau auf Anwendung designt NRE (non-recurring engineering costs): einmalige Entwicklungskosten. Michel Gisler Elektrotechnik @ HSR 1

2. Entwurfsprozess Das Y-Modell von Gajski enthält drei Ansichten: Verhaltensansicht, Wie muss Systemverhalten Strukturelle Sicht, Welche Schaltungen Physikalische Sicht, Wie platzieren Designprozess 1. Designbeschreibung in VHDL 2. Synthese & Optimierung 3. Technology Mapping 4. Place and Route 5. Simulation 3. VHDL (Very High Speed IC Hardware Descripiton Language) In VHDL (IEEE Standart 1076) ist eine Hierarchie vorhanden, es besteht aus der Beschreibung und der entsprechenden Intepretation von parallelen Abläufen, elektrischen Signalen und dem zeitlichen Verhalten. Nicht case-sensitiv Immer mit Buchstabe beginnen, kein _ am Ende, kein Keine Schlüsselwörter als Namen -- Kommentar 4. Key Concept I Jedes VHDL-File besteht aus den folgenden 3 Einheiten: Library, Entity und Architecture Library Bibliotheken welche vorgegebene Funktionen enthalten. Librarys werden am Anfang deklariert. Entity Beschreibt die Anschlüsse des IC s. Signalrichtungen: in,out,buffer, inout Ausgabearten: true, false, bit, bit_vector, integer, oder std logic Architecture Beschreibt den inneren Aufbau des IC s. Behavioral: Verhaltensmodell, beschreibt Funktion Structural: Strukturmodell, aus mehreren Bauteilen zusammensetzen RTL: Register Tranfer Level Dataflow: Liste mit boolschen Operatoren TB: Testbench Michel Gisler Elektrotechnik @ HSR 2

5. Key Concept II Signale Relation Signalzuweisung Aggregat: Klammer welche mehrere Signale zu Vektor zusammenfasst. port x => port y y <= x Konstanten: Aufzähltypen: Physikalische Datentypen: Array Variablen: Zugriff über :=. Ändern Wert sofort. Nur in Prozessen möglich Unbedingte Signalzuweisung: Alle haben den gleichen Wert Verwendung: Kombinatorische Logik ohne Verzweigung Selektive Signalzuweisung: Alle Bedingungen werden parallel abgearbeitet, alle Möglichkeiten angeben. Verwendung: Kombinatorische Logik, Mux, LUT Bedingte Signalzuweisung: Bedingungen nacheinander (sequentiell) bis ein True ergibt, wenn nicht behält Ausgang den alten Wert Verwendung: Kombinatorische Logik mit Verzweigung Prozesse: Alle Prozesse innerhalb architecture sind nebenläufig, Prozesse intern laufen nacheinander, nur unbedingt & sequentiell Signalzuweisung erlaubt, alle anderen verboten. In der Sensitivitätsliste alle Signale die das Ausgangssignal ändern Michel Gisler Elektrotechnik @ HSR 3

5.1 Sequentielle Systeme Negative Flanke erfassen des Signals clk if clk event and clk = `0` then rising edge(clk) bei std_logic Positive Flanke erfassen des Signals clk if clk event and clk = `1` then falling edge(clk) bei std_logic Schleifen Ausgangssignal in Sensitivitätsliste -> vermeiden D-Flip-Flop D-Latch: Unbeabsichtigter unerwünschter Speicher Massnahmen: Default-Werte, explizite else-blöcke 5.2 Finite State Machines Diese Systeme werden ab einem Zustandsdiagramm synthetisiert. Mealy-System Moore-System Medwedjew-System Hier ist ein Prozess nötig für die Ausgangslogik F, Ausgangsberechnung G und den Speicher Z F: process(present_state, input) F: process(present_state) Hier sind nur zwei Prozesse nötig für die Ausgangsberechnung G und den Speicher Z Michel Gisler Elektrotechnik @ HSR 4

6. Key Concept III IEEE1164 Logiksystem Die binäre Darstellung genügt nicht um das elektrische Verhalten einer Hardware zu realisiern. Gründe dafür sind das Analog nicht darstellbar ist, keine bidirektionale Busse möglich sind sowie die don t care und undefined. Durch Einbinden der ieee.std.logic_1164 Library werden die std_logic und die std_ulogic Datentypen verfügbar. Damit verbunden ist auch die 9-wertige Logik: Wenn immer möglich ist die std_ulogic einzusetzen. std_logic nur bei bidirektionalen Bussen einsetzen. std_logic solved logic erlaubt mehrere Treiber an einem Signal -> Gefahr von Kurzschlüssen, Subklasse von std_ulogic (ab VHDL 2008) std_ulogic unsolved logic nur einfache Busse erlaubt da nur ein Treiber pro Signal werden Kurzschlüsse eliminiert Auflösefunktion wenn mehrere std_logic Treiber 6.1 Busse Master bestimmt welcher Slave sendet, in jeder entity wird es auf enable gesetzt wenn gesendet werden darf, übergeordnete Stelle weist Sendebefehl den entitys zu. Alle Teilnehmer dürfen den Bus immer abhören (empfangen) Alle nichtaktiven werden auf `Z` geschaltet (Hochohmig, abgehängt) 6.2 Arithmetik Die Hardware beherrscht Arithmetik nicht. Ausserdem definiert der Bit-String keine Zahl, die Interpretation des Bit-Strings muss definiert werden. Mittels den Logikoperatoren (and, nand, or, nor, xor, xnor, not) wird nur eine bitweise Interpretation erreicht. Um richtige Zahlenwerte darzustellen muss die Bibliothek ieee.numeric inkludiert werden. Die signed Zahlen werden mittels Zweierkomplement dargestellt. ieee.numeric_std Typen: signed (Zahl mit Vorzeichen), unsigned (Zahl ohne Vorzeichen) Zahlen werden intern auf Vektoren abgebildet ieee.numeric_bit Typen: signed (Zahl mit Vorzeichen), unsigned (Zahl ohne Vorzeichen) Zahlen werden intern auf Bit abgebildet Michel Gisler Elektrotechnik @ HSR 5

Operator Bedeutung Code-Beispiel Synthesefähig = Gleich Y=A; Ja /= Ungleich Y/=A; Ja <, <=, > >= kleiner, kleiner gleich, Y<A, if (Y<=A)then.. Ja grösser, grösser gleich Y>A, if (Y>=A)then.. +, -, *, / Plus, minus, mal, dividiert Y<=A+B; Division oft nicht abs() Absolutwert Y<=abs(A); Ja Mod Modulo Y<=A mod B nur für 2 x Vorzeichen von Y ist gleich das von B rem Rest Y<=A rem B nur für 2 x Vorzeichen von Y ist gleich das von A ** Potenz Y<=2**A; nur für 2 x 6.1 Typkonversation Auf beiden Seiten eines Operators müssen die gleichen Datentypen stehen. Daher sind Umwandlungsfunktionen nötig. Ab VHDL 2008 ist es möglich über std_ulogic_vector(my_bus) direkt in den Zieldatentyp zu konvertieren. target_signal <= target_type(source_signal); target_type (T) source_type(s) Type Conversion Operator Beispiel bit std_(u)logic to_bit(s) T <=to_bit(s) bit_vector std_(u)logic_vector to_bitvector(s) T <=to_bit_vector(s) std_(u)logic) bit to_std_(u)logic)(s) T <=to_stdlogic(s) std_(u)logic_vector bit_vector to_std_(u)logic_vector(s, lenght) T <=to_stdlogicvector(s,4) std_logic_vector std_ulogic_vector to_stdlogicvector(s) T <=to_stdlogicvector(s) std_ulogic_vector std_logic_vector to_stdulogicvector(s) T <=to_stdulogicvector(s) integer (un)signed To_integer (S) T <=to_integer (S) (un)signed integer To_(un)signed (S, length) T <=to_(un)signed (S, 4) integer std_(u)logic_vector integer->(un)signed-> std_(u)logic_vector target_type (T) source_type(s) Type Conversion Operator Beispiel unsigned std_(u)logic_vector unsigned (S) T <= unsigned (S) signed std_(u)logic_vector signed (S) T <= unsigned (S) std_(u)logic_vector unsigned std_(u)logic_vector (S) T <= u std_(u)logic_vector (S) std_(u)logic_vector signed std_(u)logic_vector (S) T <= std_(u)logic_vector (S) 7. Key Concept IV Testbenches Die Simulation /Funktionstest wird mit Hilfe einer Test- Bench gemacht Die Test-Bench soll Wiederverwendbarsein, ist aber nicht synthesefähig Die Test-Bench sollte unabhängig sein vom verwendeten Verfahren des DUT Event-Queue: Liste mit Ereignissen abgearbeitet, ohne auf Zeit zu. Delta-Time: Unterschieden in Ursache und Wirkung aber Zeitverzögerung ignoriert Transport Delay: Wirkung um fixe Zeitspanne verlängert, länge Einganspuls egal Inertial Time Model: simuliert Eingangssignale am Ausgang nur wenn bestimmte Dauer wait for Statement ist nicht synthesefähig, und bei wait sofort Werte auswerten assert gibt Fehlermeldung aus wenn Bedingung nicht stimmt, im Response Monitor. Michel Gisler Elektrotechnik @ HSR 6

7.1 Aufbau Test-Bench Library Entity leer Architecture: tb of DUT_tb is Timing-Konstante & Signale deklariern Komponenten deklarieren resp DUT Komponentenkonfiguration Instanzierung des DUT ( Signale zuweisen) Prozess für Clock-Erzeugung Prozess für Anwendung-von Stimuli (Stimulusgenerator) Prozess für erfassen der Systemantwort (Response-Monitor) Entity Architecture Timing-Konstante Komponenten deklarieren Komponentenkonfiguration Instanzierung des DUT Ab hier begin Clock-Prozess Stimulusgenerator Response-Monitor Unregelmässige Zeitabstände Werte abfragen end architecture Michel Gisler Elektrotechnik @ HSR 7

8. Key Concept V Parametrisierbarkeit Es gibt Bausteine die immer wieder gebraucht werden, sich aber leicht unterscheiden (Zähler). Mittels generic kann so eine Parametrisierbarkeit erreicht werden. Generic steht für eine Übergabe eines Parameter an ein Modell. Parameter zur Designzeit: Konstanten (maxcount: integer :=127); Parameter zur Compilezeit: Generic (y: out integer range o to maxcount); Parameter zur Laufzeit: Signal 8.1 Beispiel Zähler Der Zähler muss nur einmal definiert werden und kann anschliessend dank generic mehrmals verwendet werden Definition von counter_x Verwendung als Komponente Michel Gisler Elektrotechnik @ HSR 8