Abhaltung einer Laborübung zum Thema Chip Design über das
Internet
Peter Rössler
Begriffe wie Distance Education und E-Learning sind heutzutage auch einer breiten Öffentlichkeit nicht mehr fremd. Freilich werden darunter verschiedenste Dinge verstanden. In einem Fall werden etwa elektronische Versionen von Skripten und Kursunterlagen über das Internet zum Download angeboten. Komplexere Realisierungen bieten interaktive, multimediale Kurse, vielleicht sogar mit der Möglichkeit, sein erlerntes Wissen durch Übungsbeispiele in gewissen Abständen selbst zu überprüfen. All diesen unterschiedlichen Ausprägungen von E-Learning ist jedoch gemeinsam, daß es prinzipiell um die Vermittlung theoretischer Lehrinhalte geht. Nun sind gerade im Bereich von Naturwissenschaft und Technik praktische Übungen mit Meß- und Versuchsaufbauten in Laboren auch in der Lehre nicht wegzudenken. Versagen in diesem Fall Technologien wie E-Learning und Distance Education? Der Autor dieses Beitrages möchte die Frage verneinen und das Projekt "asix4web" vorstellen, das am Institut für Computertechnik der Technischen Universität Wien realisiert wurde. Ziel dieses Projekts war es, eine Hardware, die für eine Laborübung zum Thema Chip Design verwendet wird, an das Internet anzubinden und damit Studenten die Möglichkeit zu geben, die Übung bequem von zu Hause aus zu absolvieren.
Um das Verständnis des weiter unten beschriebenen asix4web-Projekts zu erleichtern, sollen zunächst kurz die Inhalte und der organisatorische Ablauf der Lehrveranstaltung "ASIC-Entwicklung" des Instituts für Computertechnik erläutert werden. Sie haben keine Ahnung von Chip Design? Lesen Sie trotzdem weiter. Es erfolgt im weiteren auch eine Einführung in den Entwicklungsprozeß von Mikrochips.
Eine kurze Einführung in das Design von Mikrochips
Viele Leute denken beim Begriff Mikrochip zunächst einmal an die leistungsfähigen Herzstücke der PCs, etwa die Pentium-Familie von Intel. Tatsache ist jedoch, daß Mikrochips heutzutage praktisch in jedem elektrischen Gerät enthalten sind. Als Beispiele sollen Handys, PDAs, HiFi-Anlagen, Videorecorder, Küchengeräte oder Waschmaschinen genannt werden. Die grundlegenden Schritte zur Entwicklung solcher Mikrochips, die auch IC (Integrated Circuit) oder ASIC (Application Specific Integrated Circuit) genannt werden, sind dabei unabhängig von der Applikation weitgehend ident (siehe Bild 1).
Der erste Schritt im sogenannten "Design Flow" eines Mikrochip ist die Spezifikationsphase. Es soll im folgenden die Entwicklung eines Chips für einen einfachen Taschenrechner erläutert werden. Der Chip ist einerseits an die Tastatur und andererseits an die Anzeige des Taschenrechners angebunden. Die Aufgabe des Chips ist es nun, die auf der Tastatur ausgeführten Tastendrücke zu empfangen, eine entsprechende mathematische Operation durchzuführen und das Ergebnis dieser Operation auf der Anzeige des Rechners auszugeben. Diese Funktionalität wird nun im Rahmen der Spezifikation mittels elektrischer Schaltbilder, Timing-Diagramme, Zustandsdiagramme, in reinem Text sowie in anderen, Elektrotechnikern geläufigen Formen beschrieben.
Danach wird diese verbale Spezifikation in eine sogenannte HDL-Beschreibung übersetzt. Eine HDL (Hardware Description Language) stellt eine Programmiersprache wie C oder Pascal dar und ist speziell auf die Beschreibung digitaler Schaltungen zugeschnitten. Die derzeit meistverwendetsten HLDs sind VHDL (Very High-Speed Integrated Circuits Description Language) und Verilog. Die HDL-Beschreibung ist prinzipiell nur eine andere Form der verbalen Beschreibung. Allerdings ist die HDL-Beschreibung oft detaillierter als die verbale Beschreibung. Während die verbale Beschreibung für Menschen einfacher zu lesen und zu verstehen ist, kann die HDL-Beschreibung vom Computer gelesen werden, was wiederum für den nächsten Schritt im Design Flow, der Simulation, wichtig ist.
Im Zuge der Simulation wird das funktionelle Verhalten des Mikrochips am Computer simuliert und überprüft. Der Chipentwickler hat dazu entsprechende Testmuster an alle Eingangsschnittstellen des Chips anzulegen. In einem Testmuster für den Chip des Taschenrechners wird dabei etwa die Tastenfolge "1", "+", "2" und "=" simuliert. Der Simulator, ein spezielles Tool, berechnet daraufhin auf Basis der HDL-Beschreibung die Zustände der Ausgangsschnittstellen, welche die Anzeige des Rechners ansteuern. Wird vom Simulator eine "3" auf den Ausgängen ausgegeben, wurde die Funktionalität des Chips für diesen speziellen Testfall vom Entwickler offenbar korrekt implementiert. Kann keine "3" beobachtet werden, liegt entweder ein Spezifikationsfehler oder ein Fehler in der HDL-Beschreibung vor. In beiden Fällen muß der Fehler gefunden, ausgebessert und im folgenden der Chip neu simuliert werden.
Nach ausreichender Simulation kann der Entwickler davon ausgehen, daß die Funktionalität der Schaltung korrekt implementiert wurde. Danach folgt das sogenannte physikalische Design des Chips. Dabei werden vom Chiphersteller für eine bestimmte Technologie Bauteilbibliotheken zur Verfügung gestellt, mit denen die in Form der HDL beschriebene Funktionalität implementiert wird. Die ausgesuchten Bauteile müssen danach am Chip plaziert und miteinander elektrisch verbunden werden. Diese Schritte werden intensiv durch Tools unterstützt. Zwischen den einzelnen Schritten und Unterschritten wird durch Simulationen und Design Checks immer wieder das korrekte Verhalten des Designs überprüft.
Wird der Chip etwa in einer Standardzellen-Technologie gefertigt, übernimmt ein Chiphersteller in seiner Fabrik schließlich die Fertigung des Chips. Im Rahmen der Laborübung ASIC-Entwicklung am Institut für Computertechnik ist dies natürlich aus Zeit- und Kostengründen nicht möglich. Statt dessen wird die Schaltung hier in einem FPGA (Field Programmable Gate Array) implementiert, das man sich als eine Art programmierbarer Baustein vorstellen kann, der mit einer digitalen Schaltung "programmiert" wird. Viele Schritte beim Design eines Chips, vor allem am Beginn des Design Flows, sind weitgehend davon unabhängig ob man eine integrierte Schaltung von einem Halbleiterhersteller herstellen läßt oder in einem programmierbaren Baustein implementiert, sodaß FPGAs eine kostengünstige Alternative zur Realisierung eines Chipdesigns darstellen.
Es sei angemerkt, daß die obige Beschreibung des Design Flows eines Mikrochips sehr allgemein ist und sich in der Realität wesentlich komplexer darstellt. Zum Verständnis der nachfolgenden Projektbeschreibung von asix4web sollte diese kurze Einführung jedoch ausreichen.
Die Lehrveranstaltung ASIC-Entwicklung
am Institut für Computertechnik
Im Rahmen der Lehrveranstaltung ASIC-Entwicklung des Instituts für Computertechnik (ICT) der Technischen Universität Wien werden Grundlagenkenntnisse des Designs integrierter Schaltungen gelehrt. In einem Laborteil haben Studenten dabei die Möglichkeit ihr theoretisches Wissen anhand eines praktischen Beispiels anzuwenden. Dabei wird die Schaltung eines einfachen Mikrocontrollers entworfen, der ein simples Applikationsprogramm, wie den bereits erwähnten Taschenrechner oder z.B. eine Stoppuhr, abarbeitet. Zum Entwurf des Mikrocontrollers kommt hier MAX+plus II zur Anwendung, eine Entwicklungsumgebung der Firma Altera, einem der bekanntesten Hersteller von FPGAs.
Nachdem von den Studenten Schaltung und Programm des Mikrocontrollers zunächst auf Papier spezifiziert wurde, erfolgt die HDL-Beschreibung, wobei als Hardwarebeschreibungssprache VHDL verwendet wird. HDL-Beschreibung, Compilierung und nachfolgende Simulation erfolgen mit MAX+plus II. Nach erfolgreicher Simulation wird das Design schließlich auf einer realen Hardware ausgetestet. Zur Verwendung kommt hier ein "UP1 Education Board" von Altera (siehe rechter Teil von Bild 2). Dieses Prototypen-Board enthält u.a. ein SRAM-basierendes FPGA EPF10K20, einen Taktoszillator, einen 8-fach-DIL-Switch, zwei Taster und zwei 7-Segment-Anzeigen. Das Board ist über ein Kabel an die parallele Druckerschnittstelle eines PCs angebunden, auf dem auch MAX+plus II läuft. Um ein Design in das FPGA des Education Boards laden zu können, muß der Benutzer zunächst mit MAX+plus II ein sogenanntes JBC-File (Jam Byte Code File) erzeugen, das die Abbildung des Designs in einem binären Datenformat enthält. Dieses JBC-File wird dann mit dem Download Tool von MAX+plus II in das FPGA des Education Boards geladen. Schließlich kann die Funktion von Schaltung und Applikationsprogramm des Mikrocontrollers durch Betätigung der Taster und Schalter sowie Beobachtung der Anzeigen des Boards überprüft werden. Im Falle des Taschenrechners bilden Taster und DIL-Schalter etwa die Tastatur und die 7-Segment-Anzeigen die Anzeige des Rechners nach.
Die Entscheidung MAX+plus II im Rahmen der Lehrveranstaltung ASIC-Entwicklung zu verwenden, wurde vor allem durch die Verfügbarkeit einer kostenlosen Stundentenversion, die über die Internetseite von Altera downgeloadet werden kann, begünstigt. Vom Institut für Computertechnik werden daneben eine kurze Beschreibung von MAX+plus II und des UP1 Education Boards sowie Templates und Projektdefinitionen für die Laborbeispiele auf der Webseite zur Lehrveranstaltung angeboten. Damit haben Studenten bereits vor der eigentlichen Laborübung die Möglichkeit, ihr Laborbeispiel ohne Zeitdruck zu Hause zu erstellen und zu simulieren.
Das Projekt "asix4web"
Die Durchführung der Laborübungen zur Lehrveranstaltung ASIC-Entwicklung findet in der beschriebenen Form breite Akzeptanz und Zustimmung, sowohl bei den Studenten als auch bei den Betreuern des Labors. Bemängelt wird von Seiten der Studenten lediglich der Umstand, daß das Austesten der Schaltung auf der realen Hardware erst im Labor des Instituts möglich ist.
Es sei angemerkt, daß dies (zumindest aus Sicht der Betreuer) nicht unbedingt als Nachteil zu werten ist. Wegen der fehlenden Möglichkeit die Schaltung "schnell mal ins FPGA zu laden und auszuprobieren", werden Studenten von vorne herein dazu angehalten, ihr Design hinreichend zu simulieren und auf korrekte Funktionalität zu überprüfen. Im umgekehrten Fall spart man keinerlei Zeit, da ein Design ohne vorherige Simulation mit hoher Wahrscheinlichkeit nicht funktionieren wird und man erst wieder simulieren muß. Ein Umstand, der gerade von Einsteigern oftmals ignoriert wird.
Trotz dieses Einwands wurde das Projekt "asix4web" (als Akronym für "ASICs for the web") ins Leben gerufen. Die Idee zu diesem Projekt kam aus einem anderen Forschungsbereich des Instituts, der sich mit Netzwerken für die Automatisierungstechnik beschäftigt. Im Projekt "Smart Kitchen" werden beispielsweise Möglichkeiten zur Realisierung verteilter Intelligenz in elektrischen Geräten, die sich in einer Küche befinden, untersucht. Alle Geräte dieser Küche sind hier auch an das Internet angebunden, siehe
http://smartkitchen.ict.tuwien.ac.at
Über einen Webbrowser können hier beispielsweise der Wasserverbrauch eines Geschirrspülers und der Stromverbrauch eines Eiskastens kontrolliert werden sowie die Lampen in der Küche ein- und ausgeschaltet werden. Eine Webcam liefert darüber hinaus in periodischen Abständen ein Bild von der Küche.
Es war nun naheliegend dieses Konzept auf die Laborübung ASIC-Entwicklung umzulegen. Im Rahmen des Projekts asix4web wurden somit einfach die Peripherieelemente (Taster, Schalter und Displays) eines UP1 Education Boards über eine digitale I/O-Karte an einen PC angebunden, der sich physikalisch am Institut für Computertechnik befindet (Bild 2). Ein auf dem PC laufender Werbserver sowie einige im Rahmen des Projekts erstellte Programme machen die Ein- und Ausgabeschnittstellen des Education Boards über das Internet steuerbar und kontrollierbar. Studenten können damit 24 Stunden täglich und 365 Tage im Jahr über einen einfachen Webbrowser von zu Hause aus auf das Education Board am Institut für Computertechnik zugreifen und ihre für die Lehrveranstaltung erstellte Schaltung auf einer realen Hardware austesten.
Benutzeroberfläche von asix4web
Um asix4web verwenden zu können, wird lediglich ein Standard-Webbrowser benötigt. Darüber hinaus ist der Zugang zu asix4web derzeit für jedermann möglich und nicht auf die Studenten des Instituts für Computertechnik alleine beschränkt. Probieren Sie es aus! Rufen sie die Webseite
http://www.ict.tuwien.ac.at/asicdesign/asix4web
auf und Ihnen wird ein kurzes Tutorial zu asix4web, eine FAQ-Section, ein kleines Design zum Austesten von asix4web, Kontaktinformation zum asix4web-Team sowie ein Link zur eigentlichen Benutzeroberfläche von asix4web angeboten. Folgt man dem Link zur Benutzeroberfläche wird zunächst Filename und Pfad eines JBC-Files angefragt, das die Abbildung einer Digitalschaltung enthält. Zum erstmaligen Ausprobieren von asix4web kann beispielsweise das Testdesign, welches im Tutorial zu finden ist, verwendet werden. Durch Betätigung des Buttons "Upload" wird das angegebene File zunächst über das Internet zum asix4web-Server am ICT übertragen und danach in das FPGA des an den Server angeschlossenen Education Boards geladen. War der Upload des Files erfolgreich, sieht der Benutzer im folgenden ein Bild des Education Boards auf der rechten Seite der asix4web-Browserinstanz (siehe Bild 3).
Das Bild stammt von einer Webcam, welche fix über dem Board montiert ist. Um Bandbreite zu sparen und damit auch ein sinnvolles Arbeiten über langsamere Internetverbindungen zu ermöglichen, wird das Bild nur etwa alle 10 Sekunden aktualisiert. Zusätzlich wird der Hell-/Dunkelstatus der einzelnen Segmente der beiden 7-Segment-Anzeigen des Education Boards über die digitale I/O-Karte im Server-PC ausgelesen, vom Server zum Client transferiert und dort auf der linken Seite des Browserfensters (Bild 3) visualisiert. Der Refresh der Anzeigen erfolgt hier mit 1 Sekunde wesentlich schneller als der des Bildes von der Webcam.
Unter den beiden Anzeigen werden schließlich die beiden Taster und die acht DIL-Switches des Education Boards durch Checkboxen nachgebildet. Der Status der Checkboxen (markiert bzw. nicht markiert) wird durch Drücken des Buttons "Apply" an der Server übermittelt, der wiederum über die digitale I/O-Karte im Server-PC den Pegel an den Eingangspins des FPGAs entsprechend setzt. Wurde ein Fehler im Design erkannt, kann nach Modifikation des Designs mit MAX+plus II ein neues JBC-File erzeugt und dieses mit "Upload new file" vom Benutzer in das FPGA geladen werden.
Das Education Board kann zu einem bestimmten Zeitpunkt immer nur von einem Benutzer verwendet werden. Ist das Education Board gerade in Verwendung und ein weiterer Benutzer versucht auf das Board zuzugreifen, wird diesem durch die Meldung "Another session is active at the moment" mitgeteilt, daß das Board gerade belegt ist. Um die Belegung des Boards durch einen einzigen Benutzer über einen langen Zeitraum zu verhindern, wird man darüber hinaus nach 5 Minuten mit einer entsprechenden Meldung automatisch von asix4web ausgeloggt, wobei diese Zeit für einen Test der für die Lehrveranstaltung zu erstellenden Beispiele ausreichen sollte. Die noch verfügbare Restzeit wird dabei immer in der linken unteren Ecke des Browserfensters (Bild 3) angezeigt. Nach dem automatischen Ausloggen kann man sich schließlich wiederum für weitere 5 Minuten einloggen (falls nicht ein anderer Benutzer schneller war).
Projektstand und Ausblick auf zukünftige Entwicklungen
Die erste Version von asix4web wurde im Mai 2002 fertiggestellt, ist derzeit on-line und unter der oben angegebenen Internetadresse erreichbar. Es wurde bereits intensive Tests durchgeführt, wobei sich einige Studenten und Kollegen in dankbarer Weise als Beta-Tester zur Verfügung stellten. Nachdem von asix4web nur HTML und einige JavaScript-Konstrukte verwendet werden, sollte die ordnungsgemäße Funktionalität mit praktisch jedem aktuellen Internetbrowser gegeben sein. Tests mit Internet Explorer 6.0, Netscape 6.0 und Opera 6.0 verliefen allesamt erfolgreich. Nachdem, wie bereits beschrieben, auf exzessive Aktualisierungsraten der Anzeigen und der Webcam verzichtet wurde, sollte asix4web auch über langsamere Internetverbindungen funktionieren. Über eine 56K-Modemverbindung konnten jedenfalls keinerlei Probleme oder Einschränkungen hinsichtlich der Performance beobachtet werden. Die erste große Belastungsprobe für asix4web ist im Wintersemester 2002/2003 zu erwarten, in dem voraussichtlich wiederum an die 60-70 Studenten die Lehrveranstaltung ASIC-Entwicklung absolvieren werden.
Die Entwicklung von asix4web ist damit noch nicht beendet. Derzeit wird daran gearbeitet die Benutzerverwaltung zu verbessern, da sich ein Benutzer trotz dem automatischen Auslogg-Mechanismus sehr schnell wieder erneut einloggen und damit das Education Board unter Umständen über einen sehr langen Zeitraum belegen kann. Unabhängig von weiteren Verbesserungen konnte aber jedenfalls bereits bewiesen werden, daß man selbst eine praktische Laborübung prinzipiell komplett über das Internet abwickeln kann und sich damit auch Lehrveranstaltungen mit Laborcharakter und praktische Übungen Ideen von E-Learning und Distance Education a priori nicht verschließen.
Wer übrigens nicht glaubt, daß das asix4web-Board tatsächlich existiert, kann im Gebäude der Fakultät für Elektrotechnik der TU-Wien, 1060 Wien, Gußhausstraße 27-29, 2. Stiege, 2. Stock, jederzeit einen Blick darauf werfen. Das Board und die Webcam befinden sich in einem Schaukasten, der an einer Wand im Gang des Instituts für Computertechnik zwischen Zimmer CA0238 und CA0240 befestigt ist (Bild 4). Der angebundene asix4web-Server (nicht in Bild 4 sichtbar) befindet sich in einem Raum auf der anderen Seite der Wand.
Abschließend sei angemerkt, daß Kommentare jeglicher Art zum Projekt gerne willkommen sind. Kontaktadressen zum asix4web-Projektteam finden sich auf der oben angegebenen Webseite von asix4web.