Einsatz von embedded FPGAs - neue

Transcription

Einsatz von embedded FPGAs - neue
BAUELEMENTE
SYSTEM-ON-CHIP
Einsatz von embedded FPGAs
Theodore Vaida Der Einsatz von embedded FPGA-Blöcken (Field Programmable
Gate Array) - wie beispielsweise von programmierbaren embedded Logic-Cores von LSI Logic - für ASIC-System-on-Chip Bauteile bietet den Entwicklern
neue Möglichkeiten. Allerdings wird hierdurch nicht nur die Architektur komplizierter, sondern auch die Partitionierung des Designs komplexer.
D
ie Einführung von reprogrammierbaren Gattern kann den immer stärkeren
Druck der Time-to-Market auf die ASICEntwickler durch die Möglichkeit eines
späten Code Freeze reduzieren. Werden
die flexiblen oder „freibeweglichen“ Teile
eines Designs mit einer FPGA-Zelle realisiert, dann lässt sich das ASIC-System
auch mit unfertigem Code entwickeln.
Ein entscheidender Vorteil der Verwendung von FPGA-Zellen ist die Möglichkeit Upgrades und sogar eine Umprogrammierung für eine kundenspezifische Anpassung im Feld durchzuführen. Durch den Einsatz eines embedded FPGA kann sich der ASIC-Entwickler
auf die kritischen festen Gatter konzentrieren. Zudem lässt sich das Design für
einen größeren Kundenkreis nutzen.
Ohne feste Gatter im programmierbaren Block kann die Entwicklung des
restlichen ASICs allerdings komplexer
werden. Außerdem beeinflusst die
Komplexität des embedded FPGA im
ASIC alle Ebenen der physikalischen Designkette. Damit sind sowohl der Produktionstest, als auch Floorplanning
und Layout, sowie Timing-Analyse und
Timing Closure betroffen.
Um die entscheidenden Vorteile der Reprogrammierbarkeit im Feld nutzen zu
können, muss das Bauteil eine Unterstützung für die Programmierung bieten. Da das ASIC ein fester Bestandteil ist,
müssen gewisse Timing-Hinweise geliefert werden. Auch wenn das embedded
FPGA kein Standardbauteil ist, muss eine
Software zur Konfiguration verfügbar
sein.
Aspekte des FPGAs:
Die
Design-Methodik der ASICs, die
meist mit einer Hardware-Beschreibungssprache (HDL) auf Ebene des
Register Transfer Level (RTL) entwickelt werden, muss so modifiziert
werden, dass die FPGA-Zellen in das
Design integriert werden können und
die Unterschiede zwischen dem Code
in den ASIC-Gattern und dem Code
im FPGA berücksichtigt wird.
Im Fall eines FPGAs ist die Anzahl der
erlaubten 'Gatter' festgelegt. Das ge-
48
nutzte FPGA kann in ein größeres Array geändert werden, falls das Design
nicht beschnitten oder in mehrere Arrays aufgespalten werden muss. Eine
vorläufige Synthese des RTL-Codes
und die Abschätzung der Anzahl der
benötigten Gatter ist wichtig, um zu
Network
MAC
Partitionierung
Der Partitionierungsprozess ist wahrscheinlich der kritischste Schritt bei der
Entwicklung eines Bauteils, das FPGAZellen mit ASIC-Gattern integriert. Ein
bestehender RTL-Code, der für ein zellbasierendes ASIC entwickelt wurde,
kann für die Verwendung in einem gemischten FPGA-ASIC zu komplex sein.
Wenn der Code neu erstellt oder für das
Bauteil geändert wurde, dann ergeben
sich einige Vorteile bei einer frühzeitigen Planung der Platzierung der Blöcke
im ASIC oder FPGA-Gatter.
Eine funktionelle Gruppierung ermög-
TXFIFO
AHB Interface
RXFIFO
APB Interface
Bild 1: Die AMBA-Bus-Funktionen AHB und APB arbeiten hier nahezu unabhängig voneinander. Der Hauptdatenpfad verläuft durch die AHB-Block.
planen welches FPGA eingesetzt werden soll.
FPGAs basieren auf einer programmierbaren Routing-Architektur und
diese Routing-Ressourcen unterliegen gewissen Einschränkungen.
Embedded FPGAs verfügen über eine
eingeschränkte Anzahl von I/O-Pins.
FPGA-Bibliotheken sind einfacher, sie
können nur ein Speicherelement enthalten, wogegen Latches für FPGAEntwickler selten verfügbar sind. Der
zu synthetisierende RTL-Code muss
dieser Tatsache Rechnung tragen.
Wenn der Code für ein ASIC erstellt
wurde, kann er möglicherweise nicht
direkt auf ein FPGA portiert werden.
Das Ergebnis könnte zu groß werden
oder der RTL-Code könnte überhaupt
nicht synthetisierbar sein.
Hinsichtlich der Boundary-Aspekte
verfügen FPGAs über Designbeschränkungen, wobei meist gefordert
wird, dass alle Ausgänge ein Register
benötigen, manchmal alle Eingänge
Register enthalten.
licht eine maximale Ausnutzung der
Vorteile des FPGA, wobei die Operationen des Bauteils aufgelistet werden.Eine
Darstellung des Datenflusses ist hilfreich
bei Pipelined-Designs, da so die Größe
der Busse und die Übereinstimmung
mit den Registergrenzen verdeutlicht
werden kann.Auch physikalische Aspekte können früh angesprochen werden,
wie die Anzahl der benötigten I/O-Pins.
Blockschaltbilder passen im Allgemeinen zur HDL-Hierarchie, die es dem Entwicklungsteam erlauben, im Voraus zu
wissen, welcher RTL-Code erstellt werden soll. Eine detaillierte Einschätzung
der Komplexität und Größe der einzelnen Blöcke kann bei der Dimensionierung des FPGAs helfen (Bild 1 und Bild 2).
Wenn das Design von einem ASIC mit
festen Zellen auf ein gemischtes Design,
das FPGAs enthält, portiert wird, ist der
Partitionierungsprozess dagegen komplexer. Im Allgemeinen wird dies eine
Umstrukturierung des HDL-Codes der
Funktionen erfordern, die sich nicht für
FPGA-Gatter eignen, da sonst das ASICDesign zerstückelt wird. Die Partitionie- elektronik industrie 03-2002
Network
MAC
fpga
AHB Interface
FIFO
asic
FIFO
BAUELEMENTE
SYSTEM-ON-CHIP
se stellen die festen
Vorgaben einen Timing Contract dar,
der
mitgeliefert
wird, falls jemand
einen neuen Code
für das FPGA synthetisieren möchte.
AHB Interface
Simulation
In einer ASIC-UmBild 2: In der entgültigen Struktur sind AHB- und APB- gebung mit homoFunktionen auf unterschiedliche RTL-Blöcke verteilt. Ge- genen Zellen ist eimeinsame Register sind aufgeteilt und da sich MAC und FI- ne Simulation norFOs in einen eigenen RTL-Block befinden, ist die direkte malerweise nur mit
Synthese und Code-Optimierung möglich.
dem ganzen RTLCode oder allen
rung des Codes muss frühzeitig abge- Gattern möglich. In gemischten Umgeschlossen werden,bevor der physikalische bungen können die beiden Codebasen
Designprozess der ASIC-Gatter beginnt. auf unterschiedlichen Ebenen sein. Die
Simulation gemischter Gatter und RTL
führt oftmals zu Timing-Aspekten, wo
Synthese
für die Gate-Ebene Code verfügbar ist,
für RTL aber keine Verzögerungen vorWährend der untersuchenden Synthese handen sind. Je nachdem welche FPGAund sobald das RTL-Design vollständig Architektur eingesetzt wird, sind unterund partitioniert ist, kann der Prozess schiedliche Simulationen erforderlich,
der Synthese der FPGA-Architektur be- um die Funktion des embedded FPGAginnen. Solange die ASIC-Gatter nicht Core zu überprüfen. Für das physikaliplatziert und geroutet werden, sind die sche Design kann die Simulation des
Zeitgrenzen zwischen dem ASIC und Produktionstests, sowohl des Full- ScanFPGA-Gattern flexibel. Der beste Anfang ATPG (Automatic Test Pattern Generatibesteht darin, geschätzte Timing-Vorga- on), als auch des BIST (Built-in Self Test),
ben für die ASIC-FPGA Boundary zu be- erforderlich sein. Für die Konfigurationsnutzen und dann eine STA der kombi- zyklen kann zudem eine Simulation der
nierten ASIC- und FPGA-Gatter auf ober- Programmierschnittstelle notwendig
ster Ebene durchzuführen, um die sein.
Wechselwirkungen zu überprüfen.
Vor der Fertigung des ASIC-Bauteils
kann ein Muster des FPGA-Code-Sets er- Verifikation
zeugt werden, indem die resultierenden
Timinginformationen in die oberste Für ein Design, das in einen FPGA synEbene der ASIC-Synthese eingespeist thetisiert werden soll, kann die Überprüwerden. Dies verbessert die Qualität der fung der logischen Äquivalenz (der CoErgebnisse der ASIC-Synthese. Falls de hat die gleichen Algorithmen und
möglich sollten die vom FPGA zum ASIC Funktionen) fehlschlagen, weil entweübernommenen Design-Vorgaben eine der der Code aufgrund von Größeneingroße Marge (20%) für die künftige FP- schränkungen fragmentiert wurde oder
GA-Synthese beinhalten. Sobald das weil die Pipeline aus Gründen der LeiASIC-Design fertig gestellt wurde, kann stung unterbrochen werden musste.
die Zeitgrenze um das FPGA festgesetzt Anstatt einer direkten Äquivalenz (Gatwerden. Wenn das FPGA erneut synthe- ter gegen Gatter) sollte bei allen Verifikatisiert wird, muss es diese Timing-Vorga- tionen besser eine Konsistenzprüfung
ben einhalten. Für eine künftige Synthe- (der gleiche Input erzeugt den gleichen
50
Output) durchgeführt werden. Extreme
Fälle können eine zyklusbasierende Simulation erfordern. Es sollte zudem beachtet werden, dass eine funktionelle Simulation, die auf dem originalen ursprünglichen ASIC-Design basiert und
das auf ein FPGA portiert wurde, geändert werden muss, um die neuen Strukturen zu unterstützen.
Timing Closure
Timing-Contracts helfen möglichst früh
im Designzyklus bei der Festlegung von
Grenzen zwischen dem embedded FPGA und dem ASIC. Dies bietet den Vorteil, dass das Design nicht in eine unendliche Timing-Closure Schleife gerät. Die
Herausforderung besteht hier darin,
möglichst schnell die besten Grenzbedingungen im Design zu bestimmen.
Der beste Ansatz ist einen wechselseitiger Rückkopplungsprozess. Durch die
Verwendung von vereinfachten anfänglichen Timing-Beschränkungen lassen
sich die FPGA- und die ASIC-Gatter unabhängig voneinander synthetisieren.
Dann werden die beiden mit möglichst
vielen Timing-Informationen zusammengesetzt. Im Allgemeinen lassen sich die
FPGAs einfacher platzieren und routen
als die ASIC-Gatter, der Idealfall liegt aber
vor, wenn sich beide vollständig physikalisch planen lassen.
Wenn zwischen zwei Bereichen Konflikte auftreten, lassen sich durch eine statische Timing-Analyse auf oberster Ebene
Informationen erhalten um die Problemzone einzugrenzen.Dies stellt die Grundlage für eine erneute Synthese der FPGA- oder ASIC-Gatter dar. Die In-PlaceOptimization (IPO) kann hierzu auf Seite
des ASICs genutzt werden, dagegen besteht auf der FPGA-Seite der allgemeine
Ansatz darin das Fan-out einer Logikfunktion aufzubrechen, eine Pipeline neu
aufzuteilen oder den Takt zu verlangsamen. Sobald die Optimierung abgeschlossen wurde, sollte ein fester Timing-Grenzwert erreicht werden. Dies
ist der Timing-Contract für alle künftigen
FPGA-Synthesen. Dies definiert auch die
Grenze für das physikalische Design der
ASIC-Gatter für ECOs (Engineering
Change Optimization).
elektronik industrie 03-2002
Design-for-Test
Wenn ein FPGA in ein Design implementiert wurde, kompliziert dies den
Produktionstest des ASICs. Der einfachste Mechanismus um das Problem einer
vollständigen automatischen Generierung von Scan-Testpattern (ATPG) zu lösen, besteht darin, das FPGA als Blackbox
zu betrachten und es durch eine umgebende Scan-Kette zu isolieren. In diesem
Fall sind BIST oder Funktionstest zum
Test der FPGA-Zelle erforderlich. Der Test
des FPGAs ist dabei stark von der Zuverlässigkeit und der Qualität des
FPGA-Cores, der Wafersortierung und dem Endtestder
Gehäuse für die ASIC-Dies abhängig. Der Entwickler muss
dabei berücksichtigen, dass
Kosteneinsparungen im Prüffeld zu einer schlechteren
Qualität oder zur Auslieferung
defekter Bauteile zum Kunden
führen können.
plattformen angepasst werden muss.
Als entscheidende Frage bei der erneuten Synthese des Code bleibt zu klären,
wie groß die Informationsmenge ist, die
bereitgestellt werden muss. Hier ist besonders der Timing-Contract kritisch.
Ohne Zeitbeschränkungen wird die
Synthese blind durchgeführt, somit
muss für die Planung, auch von verschlüsselten Simulationsmodellen, bekannt sein wie der Endanwender den
synthetisierten Code programmieren
und debuggen wird.
739
LSI LOGIC
Theodore Vaida ist Mitarbeiter der LSI Logic
ASIC-Layout
Ein FPGA-Block ähnelt einem
sehr großen SRAM-Block in
ASIC-Designs, wobei sich besonders die Größe und das Seitenverhältnis auf das Design
auswirken. Aufgrund des Bedarfes für rekonfigurierbare
Schaltressourcen in einem FPGA ist die Gatter-Dichte meist
geringer als in Designs mit reinen ASIC-Zellen. Die Größe der
benutzten FPGA-Blocks sollte
vorab bekannt sein und
berücksichtigt werden, besonders während der Festlegung
der Die-Größe. Aspekte des
Overcell-Routing können auftreten, wenn die FPGA-Zelle
sehr groß ist und Signalbusse
über feste Zellen geführt werden und somit zu Problemen
hinsichtlich der Signalintegrität und zu Verletzungen bei
der Anstiegszeit führen.
Unterstützung bei der
Programmierung im
Feld
Einer der größten Vorteile von
embedded FPGAs besteht in
der Möglichkeit, die verwendete Konfiguration im Feldeinsatz verändern zu können, wobei dies besonders für VARs/
OEMs interessant ist, wo das
Bauteil vom Anwender auf unterschiedliche Anwendungs-
elektronik industrie 03-2002
51
BAUELEMENTE
SYSTEM-ON-CHIP