PDF-Ausgabe herunterladen (38.4 MB) - elektronik industrie
PDF-Ausgabe herunterladen (38.4 MB) - elektronik industrie
PDF-Ausgabe herunterladen (38.4 MB) - elektronik industrie
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Embedded-Systeme<br />
sourcen stellen würde. Daher sollte die Prototypenentwicklung auf<br />
dem RTL-Code basieren, welcher keine Testlogik enthält.<br />
Wenn Testlogik im RTL-Code manuell instanziiert wird, kann<br />
ihre Beseitigung eine komplizierte und fehleranfällige Aufgabe<br />
sein. Wird die Testlogik dagegen automatisch eingefügt, kann sie<br />
auf einfache Weise gelöscht oder deaktiviert werden.<br />
Verwendung von Makros zur Generierung Technologiespezifischer<br />
Logik<br />
IC-RTL-Code-Entwickler sollten die Verilog-Konstrukte `define<br />
und `ifdef (bzw. die Anweisungen if . . . generate in VHDL) verwenden,<br />
um notwendige Speziallogik für die jeweilige Zieltechnologie<br />
zu erzeugen. Die Makro-Variable ist in lediglich einer globalen<br />
Header-Datei definiert und erhält einen offensichtlichen Namen<br />
wie “fpga” oder “proto”. Diese wird dann global referenziert,<br />
um die Synthese zu steuern. Damit kann die Expansion des RTL-<br />
Codes auf die FPGA-Synthese beschränkt werden, während die<br />
vollständige Komplexität für die IC-Synthese erhalten bleibt.<br />
Einsatz von Wrappern zur Speicher-Isolation<br />
In einem IC gibt es viele Instanziierungen von Bibliothekselementen<br />
für ein spezifisches Element der Zieltechnologie. Instanziierungen<br />
von Speicherblöcken sind ein gängiges Beispiel. Ein Speicherelement<br />
direkt im RTL-Code zu instanziieren ist schlechte<br />
Praxis, da es auf diese Weise die gesamte RTL-Datei auf diese eine<br />
Ausprägung festlegt. Dies wiederum macht keinen Sinn, selbst<br />
wenn das Design lediglich auf eine andere Silizium-Bibliothek<br />
portiert wird. Es ist weitaus besser, eine generische Instanziierung<br />
für die Speicherfunktion, bezeichnet als Wrapper, vorzunehmen.<br />
Ein Wrapper erzeugt eine tiefere Hierarchieebene, welche den<br />
technologie-spezifischen Speicher enthält. Bild 2 zeigt einen Wrapper,<br />
welcher während der IC-Implementierung mit einer RTL-Datei<br />
ausgefüllt wird, die den IC-spezifischen Speicher enthält. Zur<br />
Prototypenentwicklung wird diese RTL-Datei dann durch das FP-<br />
GA-Äquivalent ersetzt, evtl. sogar durch eine Datei, welche einen<br />
externen Speicherbaustein auf dem Board spezifiziert. EDA-Tools<br />
wie Certify erlauben die Verwendung externer Speicher ohne weitere<br />
Änderungen am RTL-Code.<br />
Durch Einführung eines firmenweiten Standards für Wrapper-<br />
Namen und -Schnittstellen können Prototypenentwickler eine<br />
Speicherbibliothek erstellen, durch die sich jene in allen IC-Designs<br />
ersetzen lassen. Die beschriebene Wrapper-Methode erleichtert<br />
auch die Arbeit in dem Fall, dass eine zukünftige Version des<br />
ICs einen anderen Speicherblock enthalten soll.<br />
Compiler Debugger Checker<br />
Vertrieb und Support in Deutschland<br />
Power Architecture<br />
Freescale S12Z<br />
ARM Cortex M3/M4<br />
fragen Sie uns!<br />
0711 90 Rohrackerstrasse 70329 Stuttgart www.COSMIC-Software.de sales@COSMIC-Software.de<br />
COSMIC Software GmbH 68/ 73 11 97 90<br />
Top-5-Empfehlungen für besseres Prototyping<br />
■ Die Entwicklung eines FPGA-Prototyps ist ein Schlüsselelement<br />
■<br />
■<br />
■<br />
■<br />
Info-Kasten<br />
des gesamten IC-Entwurfsprojekts und muss daher in den Arbeits-<br />
und Zeitplänen berücksichtigt werden.<br />
Das RTL-Design hat nach einem robusten Codierungsstil zu erfol-<br />
gen, um sowohl FPGA- als auch IC-Technologie in effi zienter Weise<br />
zu repräsentieren, und zwar im ersten Codierungsansatz wie<br />
auch in späteren Verfeinerungen. Von der resultierenden Qualität<br />
der RTL-Defi nition wird das Design während seiner gesamten Lebensdauer<br />
profi tieren.<br />
Der Codierungsstil sollte modular sein und eine saubere Trennung<br />
prototyp-spezifi scher Komponenten vom Rest des Designs, einen<br />
unabhängigen Datenfl uss sowie isolierte Taktbereiche vorsehen.<br />
Die Entwurfsdokumentation sollte erweitert werden, um dem Pro-<br />
totypenteam zu ermöglichen, kritische Teile des Designs so früh<br />
wie möglich zu identifi zieren.<br />
Das IC-Team müsste sich leicht umorientieren, um Prototyping in<br />
seine Prozesse und Mitarbeiterprofi le zu integrieren.<br />
Gute Dokumentation und Revisionskontrolle<br />
Entwickler sollten immer danach streben, einen klaren und selbstdokumentierenden<br />
Code zu schreiben. Dennoch gibt es in einem<br />
umfangreichen Entwurf immer auch Details, die für den Entwickler<br />
selbst offensichtlich sein mögen, jedoch im Rahmen der Prototypenentwicklung<br />
schwierig zu interpretieren sind. In diesen Fällen<br />
helfen einige Zeilen Kommentar, unnötigen Aufwand aufgrund<br />
von Mehrdeutigkeiten oder fehlender Klarheit zu vermeiden.<br />
Außerdem kann die Verwendung eines bestimmten Kommentarstils<br />
hilfreich sein, beispielsweise die Angabe eines leicht erkennbaren<br />
Hinweises am Anfang einer Kommentarzeile wie . . .<br />
//proto: This ram to be mapped to external DDR memory in prototype.<br />
Prototypenentwickler können dann, selbst wenn keine vollständige<br />
Dokumentation vorliegt, leicht alle Dateien nach dem “//<br />
proto”-String durchsuchen. Dokumentation ist genauso wichtig<br />
für Korrekturen am Entwurf wie für Änderungen durch das Prototyping-Team.<br />
Daher sollte beides mit der gleichen Disziplin und<br />
im selben Revision-Control-System (RCS) aufgezeichnet werden<br />
wie der Rest des IC-Projekts.<br />
Integration der Prototypenentwickler in das IC-Team<br />
Design-for-Prototyping erhöht die Prototyping-Produktivität.<br />
Wenn es in vergangenen Projekten zu lange dauerte, Prototypen zu<br />
erstellen, lag die wirkliche Ursache nicht notwendigerweise bei<br />
den Entwicklern, sondern eher im IC-Entwurfsstil oder im Projektmanagement.<br />
Die Entscheidung, Prototyping auf FPGA-Basis zum Chip-Designflow<br />
hinzuzunehmen, sollte als Methodenänderung gegenüber<br />
vorherigen Praktiken angesehen werden, nicht aber als zusätzlicher<br />
Schritt. Prototypenentwickler sollten in alle entscheidenden<br />
Phasen des IC-Projekts eingebunden werden, um in relevanten<br />
Fragen wie IP-Auswahl, Top-Level-Topologie, Taktkomplexität,<br />
interne Überlastung des Designs, etc. beratend mitzuwirken. Selbst<br />
wenn das Design nicht vollständig FPGA-freundlich gestaltet werden<br />
kann, sind die Prototypenentwickler bereits im Voraus auf die<br />
Probleme vorbereitet und können entsprechend planen.<br />
Es muss vermieden werden, dass die Prototypenentwickler vom<br />
Rest des IC-Teams wie „die Hacker mit den FPGA-Boards“ angesehen<br />
werden. Prototypenentwickler sollten einer wohldefinierten<br />
Methodik folgen und ebenso diszipliniert sein wie IC-Entwickler<br />
und Verifikationsingenieure. (jj)<br />
■<br />
Der Autor: Doug Amos ist Business Development Manager, Solutions<br />
58 <strong>elektronik</strong> <strong>industrie</strong> 03 / 2012<br />
www.<strong>elektronik</strong>-<strong>industrie</strong>.de