Schaltungsentwicklung Realität ersetzt die Simulation

Die Simulation ist ein nützliches Hilfsmittel, um die Funktionsweise entworfener Schaltungen zu verstehen. Gelegentlich aber verstellt die Fixierung auf die Simulation den Blick darauf, dass es besser ist, eine reale Schaltung zu bauen und zu testen, sofern dies irgendwie möglich ist. Kein Zweifel: Reale Schaltungen zu bauen und zu testen ist oft schwierig, teuer und zeitaufwändig. Nicht umsonst wurde die Simulation als Abhilfe gegen diese Probleme erfunden. Dennoch ergeben sich dank des hohen Innovationstempos der Elektronik immer wieder neue Möglichkeiten.

Aus heutiger Sicht ist es nicht einfach zu verstehen, welch tiefgreifenden Wandel die Mikroprozessoren vor einigen Jahrzehnten angestoßen haben. Dabei waren es weniger die Prozessoren selbst, die die Landschaft veränderten, sondern entscheidend war die Tatsache, dass Funktionen fortan in Form von Software entwickelt und installiert werden konnten, anstatt sie immer als fest verdrahtete Hardware implementieren zu müssen.

Dadurch ließen sich Funktionen ohne die Kosten traditioneller Hardwarelösungen rasch entwickeln und bauen. Man brauchte dazu nur die erforderliche Speicherkapazität. Wie jeder weiß, legte der Umstieg auf softwarebasierte Funktionen den Grundstein für die gesamte Embedded-Industrie, wie wir sie heute kennen. Noch nicht allgemein durchgesetzt hat sich dagegen die Erkenntnis, dass auch moderne FPGAs das Potenzial haben, das Embedded-Design entscheidend umzugestalten.

Natürlich gibt es FPGAs schon lange, ohne dass es zu einer Design-Revolution gekommen wäre. Doch Vorsicht: Auch den Mikroprozessor gab es schon einige Zeit, bevor die Embedded-Industrie ihren Siegeszug antrat. Zunächst musste die nötige »kritische Masse« geschaffen werden. Die Mikroprozessor-Revolution setzte deshalb auch nicht unmittelbar mit der Erfindung des Prozessors ein, sondern erst dann, als diese Bausteine so schnell, so billig und so allgemein verfügbar waren, dass sie für Massenapplikationen in Frage kamen.

Diese kritische Masse scheint jetzt bei den FPGAs erreicht. Heute kann man für einige zehn Euro FPGAs erwerben, die schnell sind, über eine reichhaltige Ausstattung verfügen und mehr als genug Kapazität bieten, um ein komplettes Embedded System darin unterzubringen, mit Prozessor und allem anderen. Mehr noch: Die so entwickelte Systemhardware ist genauso formbar und veränderbar wie traditioneller C-Code. Sie ist auf ihre Art ebenfalls »soft«.

Die Fixierung auf die Simulation

Was aber hat all dies mit der Simulation zu tun, und worin liegt vor allem die Bedeutung für das Design insgesamt? Bisher hat man kostengünstige FPGAs vorrangig als eine komfortable Möglichkeit betrachtet, Blöcke mit logischen Funktionen zusammenzufassen. Dementsprechend sind FPGAs als Komponenten größerer Systeme behandelt worden, und konsequenterweise ging man bei der FPGA-Entwicklung genauso vor, wie bei der Entwicklung von Chips.

Die Simulation spielte dabei eine entscheidende Rolle. Ganz ähnlich, wie Softwareentwickler intensiven Gebrauch von Debuggern und Code-Emulatoren machen, um Fehler einzukreisen und Funktionen zu erproben, haben sich die FPGA-Designer daran gewöhnt, die in einem Chip zu implementierenden Funktionen mithilfe der Simulation zu entwickeln. Die aktuellen FPGA-Designflows sind deshalb größtenteils auf geeignete Simulationswerkzeuge ausgerichtet.

Dieses Konzept funktioniert, wenn man auf einer niedrigen Ebene Einzelteile eines Systems entwickelt. Möchte man jedoch dieses Niveau verlassen und stattdessen das Potenzial der programmierbaren Bausteine als rekonfigurierbare Systemplattform nutzen, so ist es an der Zeit, beim Design mit diesen Bauelementen auf eine höhere Abstraktionsebene zu wechseln. Es steht also der Umgang mit größeren Funktionsblöcken an. Das passende Sinnbild für das Erstellen FPGA-basierter Systeme ist deshalb nicht das Design auf der Chip-Ebene, sondern das Leiterplattendesign.

Einen Leiterplattendesigner muss der Gedanke, ein komplettes System auf der Gatter-Ebene zu simulieren, in Aufruhr versetzen. Leiterplatten-Entwickler setzen voraus, dass die Komponenten den Angaben in den Datenblättern entsprechen. Sie behandeln diese Bauteile dementsprechend als Black-Boxes und konzentrieren sich auf die Interaktionen zwischen den Komponenten. Nur selten werden Systeme in ihrer Gesamtheit simuliert, vielmehr fertigt man Prototypen von ihnen an und prüft sie »live« mithilfe von Testcode und/oder Stimulus-Signalen.

Genau hierin liegt die Eleganz der FPGAs, denn sie ermöglichen Designern das umfangreiche Prototyping von Systemen, ohne die zugrunde liegende Hardware wirklich bauen zu müssen. Im Prinzip verleihen sie dem Hardwaredesign die Wandlungsfähigkeit der Software. Vor langer Zeit hieß ein solches Vorgehen »Breadboarding«. Mit den FPGAs lässt sich ein solcher Versuchsaufbau auf die Nano-Ebene übertragen.

Es kommt aber eine neue Dimension hinzu, denn im Unterschied zu traditionellen Breadboards kann die auf der FPGA-Hardware vorgenommene Entwicklung direkt in das fertige Produkt übernommen werden. Entwicklungs und Produktionsplattform werden damit eins. Schließlich bieten FPGAs die Chance, die Realität im Nu zu ändern, wenn sie nicht so ist, wie der Entwickler sie sich wünscht.

Von der Simulation zur virtuellen Instrumentierung

Kostengünstige, mit viel Kapazität und Features ausgestattete FPGAs haben das Zeug, sich als bevorzugte Embedded-Systems-Plattform für die nächste Generation elektronischer Produkte zu etablieren. Um dieses Potenzial aber umfassend erschließen zu können, müssen ein paar wichtige Voraussetzungen erfüllt sein.

Zuallererst sind Designtools nötig, die einen komponentenbasierten Ansatz beim FPGA-Design möglich machen. Gefragt sind ein Mechanismus zur Bereitstellung der für ein Embedded System benötigten IP-Blöcke und ein Verfahren zum Verbinden dieser Blöcke. Außerdem muss diese neue Tool-Generation eine Lösung bieten, um die Signale zwischen den Logikblöcken innerhalb eines FPGAs zu testen. Besteht keine Möglichkeit, in einen programmierbaren Chip hineinzublicken, müssen wir uns wieder von Simulationen darüber informieren lassen, was wahrscheinlich passiert.

Damit aber würden viele Vorteile des FPGA-basierten Systemdesigns sofort zunichte gemacht - insbesondere der kurze Designzyklus. Von den FPGA-Anbietern werden mehrere Lösungen für dieses Problem angeboten. Ein Beispiel ist »ChipScope« von Xilinx. Designer können damit IP-Elemente in ein Design einbringen, mit deren Hilfe sich interne Signale des FPGAs an den JTAG-Programmierport herausführen lassen, um ihren Status mithilfe eines Computers zu analysieren.

Altium bietet im Rahmen seiner Entwicklungsumgebung »Designer« eine ganze Palette konfigurierbarer, virtueller Instrumente an. Diese Instrumente sind weitreichend konfigurierbar und mit PC-basierten Dashboards ausgestattet. Designer können damit Signalleitungen innerhalb eines FPGAs stimulieren und anzapfen, ähnlich wie es Leiterplattendesigner mit ihren realen Laborinstrumenten tun können.