Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Von Jonas Zaddach, Johannes Kohl und Marco.

Ähnliche Präsentationen


Präsentation zum Thema: "1SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Von Jonas Zaddach, Johannes Kohl und Marco."—  Präsentation transkript:

1 1SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Von Jonas Zaddach, Johannes Kohl und Marco Volbracht Gruppe 2 Thema: Multiplikations- und Divisionseinheit in VHDL Vortrag: Praktikum Technische Informatik Sommersemester 2007

2 2SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Inhalt Vorstellung der Teilnehmer Vorstellung der Aufgabe Erläuterung Multiplizierer –Grobe Übersicht –Erläuterung der einzelnen Zustände –Feine Übersicht –Eckdaten

3 3SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Inhalt (2) Erläuterung Dividierer –Grobe Übersicht –Erläuterung ausgewählter Zustände –Feine Übersicht –Eckdaten Zeiteinteilung Organisation Probleme

4 4SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Vorstellung der Teilnehmer Marco Antonio Volbracht (Projektleiter) Jonas Zaddach (Vortrag) Johannes Michael Kohl (Dokumentation)

5 5SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Vorstellung der Aufgabe Es ist eine Multiplikations- und Divisionseinheit zu implementieren, welche Binärzahlen in einer vorgegebenen Zahlendarstellung miteinander verrechnen. Die Schaltung wird in VHDL realisiert und mit Hilfe des Programms Altera Quartus II entworfen und getestet.

6 6SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Grobe Funktionsweise des Multiplizierers

7 7SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Reset Warte darauf, dass ena = Reset auf High gesetzt wird Setze alle Flags und internen Signale zurück

8 8SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Einlesen Berechung des Vorzeichens Prüfen, ob eine der Eingabezahlen Null ist Setzen des Zero-Flags und Wechsel in Endzustand Speichern der Eingabewerte in internen Signalen (als positive Zahlen) -- Hoechstwertiges Bit des -- ersten Einganges (Vorzeichen) in1_msb: IN std_logic; -- Vorkommastellen des ersten -- Einganges bis auf MSB in1_vk: IN std_logic_vector(14 downto 0); -- Nachkommastellen des ersten Einganges in1_nk: IN std_logic_vector(7 downto 0);

9 9SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0101 = 0000 In1In2Ergebnis 00000,,, Bit zur Überlauferkennung Ergebnis ist doppelt so lang wie Eingabe

10 10SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0101 = In1In2 Wenn niedrigstes Bit von In2 gesetzt ist, addiere In1 zu Ergebnis (von links) 0011 Ergebnis 00000,,,

11 11SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0010 = In1In2 Verschiebe In2 nach rechts Verschiebe Ergebnis nach rechts 0001 Ergebnis 1000 Shift Logical Right 0,,,

12 12SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0010 = In1In2 Fange wieder von vorne an (führe Addition hier 4 mal, bei VHDL- Einheit insgesamt 23 Mal aus) Keine Addition wenn In2(0) = Ergebnis 10000,,,

13 13SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0001 = In1In Ergebnis 1100 Shift Logical Right 0,,,

14 14SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0001 = In1In Ergebnis 11000,,,

15 15SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0000 = In1In Ergebnis 1110 Shift Logical Right 0,,,

16 16SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0000 = In1In Ergebnis 11100,,,

17 17SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0000 = In1In Ergebnis 1111 Shift Logical Right 0,,,

18 18SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Multiplizieren 0011 * 0000 = In1In Ergebnis 11110,,, Effektive Ausgabe

19 19SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Ausgabe anpassen Falls Ergebnis negativ ist, Bildung des Zweierkomplements

20 20SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Ausgabe Anlegen des internen Ergebnissignals an äußere Pins Anlegen der Flagsignale (Overflow) Setzen des Ready-Flags

21 21SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Eckdaten Multiplizieren Rechendauer –Genau 23 Takte für die eigentliche Multiplikation –2 Takte für Wechsel Reset-Zustand Einlesen und Multiplizieren Ausgabe –3 Takte für Einlesen, Ausgabe anpassen und Ausgabe – Es werden genau 28 Takte benötigt (außer wenn In = 0 oder In2 = 0) ( 280 ns bei Taktdauer von 10 ns) Es können Zahlen zwischen –32767, = -( ) und 32767, = ein- und ausgegeben werden

22 22SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Eckdaten Multiplizieren (2) Flags –zero: Zeigt an, dass das Ergebnis echt Null ist (weil eine der Eingabezahlen Null war) –ovr: Ergebnis hat nicht in Ausgabevektor gepasst, es ist ein Überlauf aufgetreten –rdy: Wird gesetzt, wenn Chip Rechnung beendet hat

23 23SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Divisionsbaustein

24 24SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Divisionsbaustein

25 25SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Nenner anpassen Sicherungskopie des ursprünglichen Nenners anlegen Nenner wird so lange nach links geschoben, bis es keine führenden Nullen mehr gibt 0101 In2,

26 26SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Nenner anpassen Nenner wird so lange nach links geschoben, bis es keine führenden Nullen mehr gibt 0101 In2, Auf 1 testen

27 27SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Nenner anpassen Nenner wird so lange nach links geschoben, bis es keine führenden Nullen mehr gibt 1010 In2, Shift Logical Left

28 28SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Nenner anpassen Nenner wird so lange nach links geschoben, bis es keine führenden Nullen mehr gibt 1010 In2, Test auf 1 erfolgreich, fertig

29 29SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 1110 / 0101 = In1In2 0 Ergebnis 000,,, , 0 - In1 ist ein Bit länger, um festzustellen ob Subtraktion Überlauf verursacht hat In1 und In2 sind haben doppelt so viele Nachkommastellen, damit das Ergebnis bis in die letzte Stelle genau ist 0 Bei der Subtraktion wird eine 0 an In2 angehängt, um gleiche Breite wie In1 zu haben

30 30SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 1110 / 0101 = In1In2 0 Ergebnis 001,,, , , 00 Übertragsbit ist 0Subtraktion erfolgreich Ergebnisbit setzen

31 31SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 0100 / 0101 = In1In2 0 Ergebnis 001,,, , Vergleichen von untersten Bits von In2 mit Original-Eingabevektor In2 Ungleich weiter machen

32 32SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 0100 / 0101 = In1In2 0 Ergebnis 001,,, , In2 rechts schieben Ergebnis links schieben

33 33SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 0100 / 0101 = In1In2 0 Ergebnis 010,,, , , 10 Übertragsbit ist 1Subtraktion nicht erfolgreich Ergebnisbit löschen In1 in ursprünglichem Zustand belassen

34 34SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 0100 / 0101 = In1In2 0 Ergebnis 010,,, , Vergleichen von untersten Bits von In2 mit Original-Eingabevektor In2 Ungleich Weiter machen

35 35SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 0100 / 0101 = In1In2 0 Ergebnis 100,,, , In2 rechts schieben Ergebnis links schieben

36 36SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 0100 / 0101 = In1In2 0 Ergebnis 101,,, , , 01 Übertragsbit ist 0Subtraktion erfolgreich Ergebnisbit setzen

37 37SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Dividieren 0100 / 0101 = In1In2 0 Ergebnis 101,,, , Vergleichen von untersten Bits von In2 mit Original-Eingabevektor In2 Gleich Fertig

38 38SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Eckdaten Dividieren Rechendauer –Max. 23 Takte um den Nenner nach links zu schieben –Max. 3 * ( ) Takte für die Subtraktionen und Vergleiche –4 Takte für Einlesen externer Signale und Ausgabe interner Signale – Es werden für die Division maximal 121 Takte benötigt ( 1,21 µs bei Taktdauer von 10 ns) Es können Zahlen zwischen –32767, = -( ) und 32767, = ein- und ausgegeben werden

39 39SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Eckdaten Dividieren (2) Flags –zero: Zeigt an, dass das Ergebnis echt Null ist (weil Zähler Null war) –dze: Fehlerflag für Null im Nenner –ovr: Ergebnis hat nicht in Ausgabevektor gepasst, es ist ein Überlauf aufgetreten (kann vorkommen, da mit Brüchen gerechnet wird) –rdy: Wird gesetzt, wenn Chip Rechnung beendet hat

40 40SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Zeiteinteilung Grobanalyse Feinanalyse Pflichtenheft Spezifikation Implementierung Multiplikationseinheit Implementierung Divisionseinheit Testdokumentation Vortrag Ausarbeitung 15 Treffen

41 41SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Weitere Informationen Titel und Datum Kurze Erläuterung Versionsverwaltung mittels CVS Organisation mittels eigener Webseite

42 42SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Probleme Zahlendarstellung Zero-Flag

43 43SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Fragen?


Herunterladen ppt "1SS 07 Fakultät für Informatik der Technischen Universität München Vortrag: Praktikum Technische Informatik Von Jonas Zaddach, Johannes Kohl und Marco."

Ähnliche Präsentationen


Google-Anzeigen