Hardware Praktikum 2008

Ähnliche Dokumente
D.5 Versuchsreihe 5: Arithmetisch-Logische Einheit

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

Hardware Praktikum 2008

Übung 3: VHDL Darstellungen (Blockdiagramme)

Einführung in die technische Informatik

HaPra Versuchsreihe 4 - Aufbau eines Volladdierers. Aufbau eines Volladdierers mit diskreten Bausteinen

GTI Bonus VHDL - EXTRA

EHP Einführung Projekt A

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

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

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

FPGA-Entwurf mit VHDL. Serie 3

Schülerseminar Programmieren einer Ampelsteuerung

D.6 Versuchsreihe 6: Registersatz und Programmzähler

Hardware Praktikum 2008

5.Vorlesung Rechnerorganisation

Praktikum Systementwurf mit VHDL HDL Design Lab

Übung 5: VHDL Zähler

12 VHDL Einführung (III)

4 Entwurf eines Prozessorelementes

Laborübung 3. Latches, Flipflops, Counter

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

Übung Hardwareentwurf

Übungsblatt 1. Einführung in die Xilinx Vivado FPGA Design Plattform

5 VHDL Einführung (I)

Übungsblatt 1 Einführung in die Xilinx Vivado FPGA Design Plattform Abgabefrist: Mittwoch , 10:00 Uhr

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

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

Übungsblatt 5 Entwurf eines Mehrzyklen-Datenpfads Abgabefrist: Mittwoch , 10:00 Uhr

Grundlagen der Technischen Informatik. 13. Übung

D.7 Versuchsreihe 7: Datenpfad und Steuerwerk - Teil I

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

Laborübung 4. Zustandsautomaten (Finite State Machines)

Carry Lookahead Adder

Prinzipien und Komponenten eingebetteter Systeme

Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA. State Machines. Marc Reichenbach und Michael Schmidt

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

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

D.4 Versuchsreihe 4: Integrierte Logikbausteine

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

Digitales Hardwaredesign mit VHDL und FPGAs

Verilog. Modellbildung für Synthese und Verifikation von Bernhard Hoppe. Oldenbourg Verlag München Wien

Echtzeitbildverarbeitung mit FPGAs. Feith Sensor to Image GmbH, Schongau Matthias Schaffland

Speichern von Zuständen

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

Reconfigurable Computing. VHDL Crash Course. Chapter 2

Codes. Kapitel 2-6: Beispiele kombinatorischer Schaltungen. Digital Simulator. Kapitelverzeichnis (Buch Künzli)

Entwurf digitaler Schaltungen Groÿe Übung 2 VHDL und FPGAs

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

Entwurf von digitalen Schaltungen und Systemen mit HDLsundFPGAs

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

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

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

Computergestützter IC- Entwurf

Tutorial Vivado/VHDL Teil 3 7-Segment-Anzeige

Grundlagen der Technischen Informatik

Grundlagen der Technischen Informatik

Entwurf digitaler Schaltungen

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

Einstellige binäre Addierschaltung (Addierer)

Ausarbeitung zum ETI Praktikum

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

D.8 Versuchsreihe 8: Steuerwerk - Teil I

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Grundlagen der Technischen Informatik. 13. Übung

Semestralklausur Einführung in Computer Microsystems

Configurable Embedded Systems

15 Einführung in den Entwurf von Zustandsautomaten

Praktikum Grundlagen von Hardwaresystemen Professur Brinkschulte / Eingebettete Systeme. Protokollant:

Aufgabe 1: Kombinatorische Schaltungen

Übungsblatt 6. Implementierung einer Befehlspipeline

Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle

Lehrveranstaltung: Digitale Systeme. KS-Praktikums-Vorbereitung Dipl.-Inf. Markus Appel , , ,

Einführung Microcontroller

2. Praktische Übung zur Vorlesung Grundlagen der Technischen Informatik. Entwurf eines digitalen Weckers

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

FAKULTÄT FÜR INFORMATIK

Vertiefungsrichtung Rechnerarchitektur

Einführung in VHDL. 1 ARCHITECTURE Tauschen OF B e i s p i e l IS. 2 SIGNAL a, b : STD_LOGIC; 4 BEGIN. 5 PROCESS( a, b ) 6 BEGIN.

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

Entwurf digitaler Systeme mit VHDL-1076

Outline Schieberegister Multiplexer Barrel-Shifter Zähler Addierer. Rechenschaltungen 1. Marc Reichenbach

Prinzipieller Aufbau und Funktionsweise eines Prozessors

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

Transkript:

HaPra 2008 - Versuchsreihe 5 - ALU Hardware Praktikum 2008 Prof. Dr. H.-J. Wunderlich Dipl.-Inf. M. Imhof Dipl.-Inf. S. Holst

Agenda Die HaPra-CPU Eine kleine Übersicht VHDL Projekt-Organisation Entwurf der ALU Test der ALU HaPra 2008 - Versuchsreihe 5 - ALU 2

Das System Zum Schluss auf dem FPGA: Daten VGA HaPra-CPU Daten Adresse Chipsatz Speicher Taster Interrupt Debug Chipsatz wird gestellt und bietet verschiedene Schnittstellen - Der interne Aufbau wird in den nächsten Vorbesprechungen vorgestellt HaPra 2008 - Versuchsreihe 5 - ALU 3

Die HaPra-CPU Taktfrequenz 25 MHz Anzahl Gatter 2500 LUTs des FPGA (von 6000) ca. 122.000 Gatter (von 300.000) Register und FFs 32 Register (1024 FFs) + ca. 800 FFs MIPS 25CPI 1 MIPS Risc-Architektur 32 Bit Daten und 32 Bit Adressen, feste Opcode-Breite Interrupts Vergleich: 286er? 386er? HaPra 2008 - Versuchsreihe 5 - ALU 4

Vergleich der Prozessorleistung CPU MIPS / Taktfrequenz Jahr Intel 8080 0,640 MIPS bei 2 MHz 1974 Motorola 68000 1 MIPS bei 8 MHz 1979 Motorola 68020 4 MIPS bei 20 MHz 1984 ARM2 4 MIPS bei 8 MHz 1986 Atmel AVR 10 MIPS bei 10 Mhz 2007 Motorola 68030 11 MIPS bei 33 MHz 1987 ARM3 12 MIPS bei 25 MHz 1989 Motorola 68040 44 MIPS bei 40 MHz 1990 Intel 486DX 54 MIPS bei 66 MHz 1992 HaPra CPU 1 MIPS bei 25 MHz 2008 FaPra CPU 22-23 MIPS bei 25MHz 2008 HaPra 2008 - Versuchsreihe 5 - ALU 5

Hardware-Struktur und Vorgehen V10: Interrupts V7 V8 und V9 V11: Synthese V12: Testprogramm V5 und V6 HaPra 2008 - Versuchsreihe 5 - Alu Entwurf 6

Befehlssatz der HaPra-CPU HaPra 2008 - Versuchsreihe 5 - Alu Entwurf 7

Agenda Die HaPra-CPU Eine kleine Übersicht VHDL Projekt-Organisation Entwurf der ALU Test der ALU HaPra 2008 - Versuchsreihe 5 - ALU 8

Hierarchie Komplexe Systeme werden hierarchisch aus Komponenten aufgebaut Eine Komponente - Implementiert eine in sich abgeschlossene Funktion - Hat eine definierte Schnittstelle nach außen - Kann aus weiteren Sub-Komponenten bestehen Kapselung (Black-Box Prinzip) - Implementation ist unabhängig von Schnittstelle - Ermöglicht lokale Design-Änderungen - Ermöglicht bei Bedarf verschiedene Implementationen HaPra 2008 - Versuchsreihe 5 - ALU 9

Hierarchie in VHDL Entity - Definiert die Schnittstelle Architecture - Definiert die Implementation einer Entity - Mehrere Architekturen sind möglich Configuration - Definiert zu jeder Instanz einer Entity die Architektur, die verwendet werden soll Im HaPra gibt es pro Entity nur eine Architecture - Daher kann auf den Configuration-Block meist verzichtet werden HaPra 2008 - Versuchsreihe 5 - ALU 10

Typische Vorgehensweisen Bottom-Up (HaPra) - Starten mit kleinsten Komponenten - Größere Komponenten erst dann bauen, wenn alle Sub- Komponenten implementiert sind Top-Down - Starten mit den größten Komponenten - Sub-Komponenten sind Schwarze Boxen (Nur Schnittstelle bekannt) - Dann Schrittweise die jeweiligen Sub-Komponenten implementieren HaPra 2008 - Versuchsreihe 5 - ALU 11

Wichtig: Ordnung im /home Die Anzahl der Quelldateien wächst nun stetig Legen Sie sich ein einziges Verzeichnis an in dem - Nur Ihr aktuelles Working-Set liegt - Sprich die (und nur die) Dateien, die man zum Bau der CPU braucht Sicherungskopien, alternative Versionen in andere Verzeichnisse verschieben HaPra 2008 - Versuchsreihe 5 - ALU 12

Agenda Die HaPra-CPU Eine kleine Übersicht VHDL Projekt-Organisation Entwurf der ALU Test der ALU HaPra 2008 - Versuchsreihe 5 - ALU 13

Spezifikation der ALU Tabelle mit RT-Operationen Spezifikation S(2:0) RT-Operation Gatternetzliste entwerfen Validierung Verifikation Synthese Platzieren & Verdrahten Fertigung HaPra 2008 - Versuchsreihe 5 - Alu Entwurf 14

ALU Schnittstelle Spezifikation Gatternetzliste entwerfen Validierung Verifikation entity alu is port ( s : in std_logic_vector( 2 downto 0); a : in std_logic_vector(31 downto 0); b : in std_logic_vector(31 downto 0); q : out std_logic_vector(31 downto 0); z_out : out std_logic); end alu; Synthese Platzieren & Verdrahten Fertigung HaPra 2008 - Versuchsreihe 5 - ALU 15

Umsetzung der ALU- Spezifikation in VHDL Beschreibung in strukturellem VHDL Eine Abstraktionsebene höher - Grundelemente jetzt: Arithmetische Operationen, Multiplexer, Busse usw. Simulation mit den komplexen Grundelementen Synthesewerkzeug bildet direkt auf Zieltechnologie ab - Keine Gatternetzliste mehr im klassischen Sinne Spezifikation Gatternetzliste entwerfen Validierung Verifikation Synthese Platzieren & Verdrahten Fertigung HaPra 2008 - Versuchsreihe 5 - ALU 16

Arithmetische Operationen 32-Bit Bus entity ADDER is port ( A, B : in std_logic_vector(31 downto 0); Q : out std_logic_vector(31 downto 0); ); end ADDER; architecture STRUCTURE of ADDER is begin Q <= A + B; end architecture STRUCTURE; Addierer HaPra 2008 - Versuchsreihe 5 - ALU 17

Multiplexer entity ADDSUB is Endlosschleife port ( Führt den Rumpf aus, wenn sich A, B : in std_logic_vector(31 downto 0); eines der Signale in der Q : out std_logic_vector(31 downto 0); Sensitivitätsliste ändert S : in std_logic; ); end ADDSUB; architecture STRUCTURE of ADDSUB is begin process (S, A, B) begin case S is when 0 => Q <= A + B; when 1 => Q <= A B; when others => Q <= ZZZZZZZZZ ZZZZZ ; end end end architecture STRUCTURE; Eine case-anweisung ist ein Multiplexer! A B A B HaPra 2008 - Versuchsreihe 5 - ALU 18 + - S Q

Fallen bei Prozessen Mindestens 2 Fehler sind hier versteckt: entity ZEROCHECK is port ( A : in std_logic_vector(31 downto 0); Q : out std_logic; ); end ZEROCHECK; architecture STRUCTURE of ZEROCHECK is begin process (A) begin if A(31 downto 0) = "00000000 00000000" then Q <= '1'; end if; end end architecture STRUCTURE; Q wird nicht initialisiert Bei A!= 0 wird Q nicht zugewiesen. D.h. der alte Wert von Q bleibt erhalten. Also wird ein Element synthetisiert, das den alten Wert von Q speichert. Schaltung ist nicht mehr kombinatorisch! Q bleibt auf 1 wenn A einmal 0 war. HaPra 2008 - Versuchsreihe 5 - ALU 19

Umsetzung der ALU- Spezifikation in VHDL architecture behavioral of alu is begin process (s, a, b) begin z_out <= '0'; if b(31 downto 0) = "00000000000000000000000000000000" then z_out <= '1'; end if; case s is when "000" => -- ADD q <= a + b; when "001" => -- SUB q <= a b;... HaPra 2008 - Versuchsreihe 5 - ALU 20

VHDL-Grundgerüst erzeugen 1. Alternative: gschem - gschem starten, Schematic nur mit IO-Pads erzeugen - width-attribut fuer Bus-Pads - gnetlist -g vhdl -o alu.vhd alu.sch 2. Alternative: Editor - VHDL Code direkt schreiben HaPra 2008 - Versuchsreihe 5 - ALU 21

Weitere Informationen zu VHDL Zum Download auf der HaPra Homepage: VHDL Kurzbeschreibung A. Maeder, Uni Hamburg Weitere Infos - VHDL Archiv: http://tech-www.informatik.uni-hamburg.de/vhdl/ - VHDL Online: http://www.vhdl-online.de/ HaPra 2008 - Versuchsreihe 5 - ALU 22

Agenda Die HaPra-CPU Eine kleine Übersicht VHDL Projekt-Organisation Entwurf der ALU Test der ALU HaPra 2008 - Versuchsreihe 5 - ALU 23

Test der ALU Syntax - In ModelSim laden - Einfacher Teil Semantik - Sicherstellen, dass die Schaltung immer das richtige tut - Besonders wichtig bei Hardware: Man kann später keine Updates einspielen - Besonders schwierig Spezifikation Gatternetzliste entwerfen Validierung Verifikation Synthese Platzieren & Verdrahten Fertigung HaPra 2008 - Versuchsreihe 5 - ALU 24

Test und Validierung Einfach mal probieren geht nicht - Maskenherstellung fuer Prototypen kostet schonmal 1 Million Dollar In den Firmen gibt es eine eigene Abteilung für Test und Validierung So auch im HaPra - Bilden Sie ein Test-Team Aufgaben - Wie kann man alle Aspekte der Spezifikation prüfen? - Entwicklung von automatisierten Tests fuer Komponenten - Den Designern auf die Finger klopfen HaPra 2008 - Versuchsreihe 5 - ALU 25

Viel Spass im HaPra 2008! HaPra 2008 - Versuchsreihe 5 - ALU 26 26