Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 3 » CPU Entwurf mit VHDL (Schwerpunkt VHDL) 5 ECTS Prüfung 2023-08-09   (Übersicht)

CPU Entwurf mit VHDL (Schwerpunkt VHDL) 5 ECTS Prüfung 2023-08-09

Meta Information

  • Subject: CPU Entwurf mit VHDL (Schwerpunkt VHDL) 5 ECTS, SS23
  • Date: 09.08.2023
  • Type of Exam: mündliche Prüfung
  • Examiner: Philipp Holzinger
  • Grade: 1,3
  • Undergone Preparation
    • Folien zusammengefasst und gelernt. Orientierung vor allem an Fragestunde und Prüfungsprotokollen. SCCPU mehrfach aufzeichnen und erklären. Alle Komponenten auf RTL-Ebene gezeichnet und VHDL-Code geschrieben. Übung bereitet gut auf den praktischen Teil der Prüfung vor, deckt aber nicht alles ab.
  • Evaluation
    • Prüfer waren sehr nett. Wenn man etwas nicht sofort wusste, wurde man mit Fragen in die richtige Richtung geschubst.
    • Benotung mMn sehr fair. Zweitprüfer hat keine Fragen gestellt.

Exam

  • Zeichne eine Single Cylce CPU.
Siehe Folien. Man musste nicht jedes Detail, wie bspw. die bit-Ranges in der Instruktion oder jedes Kontrollsignal kennen, aber erklären können wie die CPU aufgebaut ist und funktioniert. Gesamte CPU gezeichnet mit relativen Sprüngen, aber ohne absolute Sprünge.
  • Was genau machen wir bei dem signed extend von 16 auf 32 bit?
Auffüllen der fehlenden oberen Bits mit 1.
  • Wie kommen wir von der Zeichnung jetzt zu einer funktionierenden CPU?
VHDL. Komponenten erstellen und daraus dann eine funktionierende CPU erstellen.
  • Was ist VHDL?
Hardwarebeschreibungssprache, …
  • Was ist der Unterschied zu C?
C ist eine Programmiersprache. Arbeitet sequentiell, erzeugt Maschinencode, ….´
  • Ok, jetzt haben wir die CPU in VHDL erstellt. Wie komme ich jetzt von VHDL zu einer funktionierenden CPU auf meinem FPGA?
Simulation, Synthese, Implentierung, …
  • Warum wollen wir simulieren?
Siehe Folien
  • Was ist das Ergebnis der Synthese?
Architekturspezifische Netzliste
  • Kannst du noch genauer auf die Implementierung eingehen? Vor allem auf die letzten beiden Schritte.
Translate, Map, Place and Route. Erläuterung zu Place and Route.
  • (Hier habe ich vermutlich etwas vergessen)
  • Schreib mir bitte eine ALU in VHDL mit den Befehlen ADD, And, Shift.
Hingeschrieben und währendessen erläutert. Man darf die VHDL-Datei ohne Unterbrechung schreiben und sich selbst korrigieren.
  • Wieso nutzen wir std_logic?
9-wertige Logik. Ein paar Zustände aufgezählt und erklärt das man diese bspw. für Busse braucht.
  • Welcher Teil einer VHDL-Datei fehlt hier noch?
Configuration. Brauchen wir aber nicht. Wird benötigt wenn wir mehrere architectures zu eine entity haben. Wird benötigt, um der entity eindeutig eine architecture zuzuordnen.
  • Erkläre mir die anderen Bestandteile der VHDL-Datei
Library: Bibliotheken einbinden, Entity: Schnittstellen der Komponente definieren, Architecture: Beschreibt das funktionale Verhalten der Komponente.
  • Erkläre mir bitte genau den Unterschied zwischen der Entity und der Architecture.
Erklärt.
  • Wieso ist es wichtig, dass du in deinem Prozess den else-Fall abgedeckt hast?
Sonst entsteht ein Latch.
  • Und Wieso ist das ein Problem, dass hier ein Latch ensteht?
Hier hatte ich ein paar Erklärungen, die für ihn aber nicht ausschlaggebend waren. Aber er hat mich durch weitere Fragen in die richtig Richtung gebracht. Wenn ich es richtig verstanden habe, ist das Problem folgendes: Dadurch, dass wir den else-Zweig nicht abdecken, muss der Zustand gespeichert werden und es entseht ein Latch. Da die ALU/der Prozess keine CLK hat, wird ein Signal (bei mir war es CTRL) zur Clock. Dadurch, dass CTRL sich zu einem nicht definierten Zeitpunkt verändert, können wir für die Inputs nicht mehr die Setup- & Hold-Zeiten einhalten. Dadurch wird das Latch zu einem metastabilen Kippglied.
  • Bitte zeichne mir die Netzliste/RTL zu deiner VHDL Datei.
AND, ADD und Shift für die Inputs und Multiplexer, der das gewünschte Ergebnis abhängig von CTRL ausgibt.
  • Bitte zeichne mir auf wie AND, ADD und Shift aufgebaut sind.
And: Bitweises And beider Inputs, Add: kurz CLA und RCA erklärt und einen einfachen RCA aufgemalt und erklärt. Shift: Gesagt, dass ein Barrel-Shifter geeignet wäre, aber wie der genau funktioniert, wusste ich nicht.
  • Was ist der kritische Pfad deiner ALU?
  • Wie bestimmen wir allgemein den kritischen Pfad?
  • Welche Speicherelemente haben wir auf dem FPGA? (bezogen auf die vorherige Frage)
  • (Hier habe ich eventuell noch etwas vergessen)