Digitaltechnik

Einleitung

Keine Software ohne Hardware! Ein Computer ist im Kern eine digitale Schaltung, die so universell entworfen ist, dass vielfältigste Funktionen realisiert werden können. Was diese Hardware konkret tut, wird natürlich durch Programmierung, die einem kaum Grenzen setzt und fast beliebige Erweiterungen zulässt, bestimmt. Ohne die entsprechende Hardware sind Programme aber bloss Makulatur.

Hierzu ein paar Beispiele:

  • Damit ein Rechner schnell Berechnungen im eigentlichen Sinne, also Additionen, Multiplikationen usw. ausführen kann, benötigt er eine leistungsfähige CPU (Central Processing Unit).
  • Eine Prozesssteuerung benötigt einen passenden Microcontroller, welcher über die notwendigen Ein-/Ausgabe-Einheiten verfügt, um Signale von Sensoren einzulesen oder Signale an Aktoren (Motoren etc.) auszugeben.
  • Damit ein PC auf das Internet zugreifen kann, wird ein Ethernet-Controller Chip oder sogar ein WLAN Chip benötigt.

Im Kurs Digitaltechnik und im anschliessenden Kurs Rechnerarchitektur wird auf eine verständliche und sehr praxisorientierte Art und Weise die wesentlichen Komponenten einer modernen Rechnerarchitektur vermittelt.

Digitaltechnik

Wir beginnen mit dem Kurs Digitaltechnik. Die Voraussetzungen beschränken sich auf Grundkenntnisse in der Informatik, wie sie im ersten Studienjahr vermittelt werden. 

Kombinatorische Schaltungen

Zu Beginn werden kombinatorische Schaltungen behandelt. Das sind Schaltungen, die mehrere Ein- und Ausgänge aufweisen können. Kombinatorische Schaltungen berechnen aus den Eingangswerten x direkt die Ausgangswerte y. Sie sind im mathematischen Sinne Funktionen y = f(x), wobei x die Eingangswerte und y die Ausgangswerte sind. Werte sind boolsche Werte, die in der Digitaltechnik anstatt mit TRUE und FALSE meistens mit 1 und 0 bezeichnet werden.

Das Spektrum kombinatorischer Schaltungen reicht von einfachen Grundverknüpfungen über Multiplexer bis hin zu Addier- und Multiplizierwerken mit Carry-Lookahead Schaltungen. Solche Schaltungen sind wichtige Bausteine eines modernen Rechners.

Synchrone, sequentielle Schaltungen

Zusätzlich zu kombinatorischen Schaltungen haben diese Schaltungen einen inneren Zustand s, vergleichbar einem Gedächtnis. Die Ausgangswerte y sind nun nicht mehr bloss von den aktuellen Eingangswerten x, sondern auch vom Zustand s abhängig. Mathematisch ausgedrückt gilt y = f(s, x). Die Schaltungen verhalten sich nicht mehr zeitlos gleich, sondern werden getaktet. Es gibt also eine Uhr, die ständig tickt. Jedesmal, wenn die Uhr tickt, passiert etwas und der Zustand s kann sich verändern. Mathematisch ausgedrückt ist der nächste Zustand s' = g(s, x), also vom aktuellen Zustand s und den aktuellen Eingangssignalen x abhängig.

Wir beschränken uns auf Schaltungen, die von einer einzigen Uhr (clock) getaktet werden. Weil es in der ganzen Schaltung überall gleichzeitig tickt, heissen sie synchron. Mit jedem Tick passiert etwas. Die Schaltung arbeitet also in der zeitlichen Abfolge der Uhren-Ticks und heisst deshalb sequentiell.

Das Spektrum sequentieller Schaltungen reicht vom Zähler, der beispielweise als Programmzähler (program counter) in einem Rechner vorkommt, über die Sendeeinheit der seriellen Schnittstelle bis zum Steuerwerk eines Rechners.

Wir lernen in diesem Kurs die Grundlagen digitalter Bausteine kennen und auch, wie man solche in der Hardwarebeschreibungssprache VHDL entwirft mit Hilfe programmierbarer Bausteine (Field Programmable Gate Arrays, FPGA) realisiert. Abschliessende Beispiele sind der Sendeteil der eines Bausteins der seriellen Schnittstelle, ein PWM-Generator zur Erzeugung pulsweitenmodulierter Signale, ein Quadraturdecoder sowie die SPI (serial pheriperal interface)-Schnittstelle.

Didaktik

"Learning by doing" ist das Schlagwort. Man lernt vertieft und nachhaltig, wenn man selbst etwas tut. Deshalb sind die Vorlesungsteile relativ kurz, so dass viel Zeit für betreutes, selbständiges Praktizieren zur Verfügung steht. Das benutzte Material steht auch ausserhalb der Unterrichtslektionen bereit.

Der hier vorgestellte Kurs Rechnerarchitektur sowie die beiden Kurse Compilerbau und Microcontroller befassen sich alle mit dem erwähnten Microcontroller AVR von Atmel. In jedem der drei Kurse wird ein Aspekt speziell beleuchtet. Über das Ganze erhalten Sie so eine kohärente Gesamtschau.

Dozent

Bei Fragen wenden Sie sich bitte an den Dozenten.

Andreas Zogg
Büro: 2153 (Buchs)