Die Lösung für diese Problematik ist die monolithische Integration des Emulators im Bondout-Silizium, das zu einem so genannten „Emulation Device“ (ED) wird (Bild 2). Das „Emulation Device“ integriert neben dem Serienbaustein mit all seiner Funktionalität, den Peripherie-Blöcken und I/Os zusätzlich einen 512-Kbyte-SRAM-Speicher, mehrere Blöcke zur Bus-Überwachung sowie eine lokale CPU mit eigenem Speicher zur Emulator-Kontrolle (in diesem Fall ein weiterer PCP2-Controller). Externe Tool-Anbindungen sind durch schnelle serielle Interfaces wie USB, JTAG oder CAN realisiert.
Der zusätzliche Schaltungsteil wird auch als „Emulation Extension Chip“ (EEC) bezeichnet. Falls eine Maskenänderung des Serienbausteins nötig ist, kann dieser EEC-Teil in unveränderter Weise an einen definierten Verbindungspunkt des „Emulation Devices“ angeflanscht werden.
Ein allgemeines Problem mit traditionellen Bondout-Bausteinen war deren Gehäusegröße, die die Integration in ein Serien-Steuergerät unmöglich machte. Das „Emulation Device“ wurde so entwickelt, dass es im direkten Austausch mit einem Serien-Baustein eingesetzt werden kann. Es besitzt die gleiche Anschluss-Belegung wie der Serien-Baustein, ist jedoch um eine Gruppe zusätzlicher Pins auf der Gehäuseunterseite ergänzt. Auf der Gehäuseoberseite wurde ein weiterer Anschluss angebracht, auf dem die zusätzlichen Signale über einen optionalen Stecker verfügbar sind (Bild 3). Im Vergleich zu einem traditionellen Emulator bietet das „Emulation Device“ folgende zusätzliche Funktionen:
Das „Emulation Device“ bietet zusätzlich spezielle Reset-Modi, mit denen die unterschiedlichen Reset-Arten beim Debugging und der Kalibrierung eingesetzt werden können (Ausnahme: „Power on Reset“). Der 512 Kbyte große SRAM-Speicher auf dem EEC setzt sich aus mehreren Blöcken zusammen, die für unterschiedliche Verwendungszwecke konfiguriert werden können. Dies ermöglicht den Einsatz des „Emulation Device“ für unterschiedliche Anwendungsfälle:
Das „Emulation Device“ wird zur Laufzeit durch den Host-PC konfiguriert. Das Interface ist dabei durch einen gemeinsamen Standard so definiert, dass mehrere Software-Tools gleichzeitig über die Schnittstelle kommunizieren können. Nachdem der auf einem parallelen Bus-Interface basierende NEXUS-Trace-Port hier nicht anwendbar ist, wird nur die Software-API benutzt. Der Software-Support für das Emulationskonzept besteht aus einem „Device Access Server“ (DAS). Dieses Interface erlaubt von der Host-PC-Seite aus, mehreren Tool-Instanzen über eine einzige Kommunikationsverbindung (USB, JTAG) mit dem „Embedded Host“ zu kommunizieren. Der DAS erlaubt auch, mehrere Prozessor-Kerne innerhalb des „Embedded Host“, so dass auch auf zukünftige größere „System on a Chip“-Bausteine per DAS zugegriffen werden kann. Der DAS unterstützt auch den XCP-Protokollstandard, der die Verbindung von Kalibrierungs-Tools und Tools zur Datenerfassung unabhängig von der physikalischen Verbindung (CAN, FlexRay, USB, JTAG) ermöglicht.
Die Fehlersuche und Kalibrierung von hochintegrierten SoC-Mikrocontrollern wird zukünftig mit steigenden Takt-Raten schwieriger werden. Durch den Einsatz eines „Embedded Emulation Device“ kann der Software-Entwickler komplette Transparenz über die internen Vorgänge des Mikrocontroller erlangen und so feststellen, ob die Software zuverlässig arbeitet und alle Funktionen in einer Umgebung mit harten Echtzeit-Anforderungen korrekt abgearbeitet werden können
Autor
Simon Brewerton ist bei Infineon Technologies als Principal Engineer im Bereich Automotive Systems tätig.
simon.brewerton@infineon.com
Stephan Janouch, Elektronik automotive