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