06.11.2013 Aufrufe

PDF-Ausgabe herunterladen (38.4 MB) - elektronik industrie

PDF-Ausgabe herunterladen (38.4 MB) - elektronik industrie

PDF-Ausgabe herunterladen (38.4 MB) - elektronik industrie

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!