Inwiefern unterscheidet sich das ASIC-Design von der FPGA-HDL-Synthese?

42

Ich habe einige Erfahrungen mit FPGA / HDL-Tool-Suites wie Xilinx ISE, Lattice Diamond usw. gesammelt. Der allgemeine Workflow besteht darin, Verilog / VHDL zu schreiben, zu simulieren, zu testen und dann das FPGA zu programmieren.

Ich habe ein paar Leute sagen hören, dass das ASIC-Design sehr unterschiedlich ist. Welche Toolsets werden für die beiden Haupttypen von ASICs verwendet, Gate-Level-ASICs und Transistor-Level-ASICs? Ich habe mich mit Hochleistungssynthesewerkzeugen wie Catapult C und Cadence C to Silicon befasst, aber noch nie versucht. Können Sie die verschiedenen Arten von Tools erklären, die im ASIC / FPGA-Feld verfügbar sind und die den typischen HDL-Workflow ändern / beschleunigen können?

Robinicks
quelle

Antworten:

39

Typischerweise ist ASIC-Design aufgrund der Komplexität und des Arbeitsaufwands ein Teamanliegen. Ich gebe eine grobe Reihenfolge der Schritte an, obwohl einige Schritte parallel oder in falscher Reihenfolge ausgeführt werden können. Ich werde Tools auflisten, die ich für jede Aufgabe verwendet habe, aber es wird nicht enzyklopädisch sein.

  1. Erstellen Sie eine Zellbibliothek. (Alternativ haben die meisten Prozesse Gate-Bibliotheken, die im Handel erhältlich sind. Ich würde dies empfehlen, es sei denn, Sie wissen, dass Sie etwas benötigen, das nicht verfügbar ist.) Dazu müssen Sie mehrere Gates mit Laufwerksstärke für so viele Logikfunktionen wie erforderlich entwerfen und Pad-Treiber / Empfänger entwerfen. und beliebige Makros wie ein Array-Multiplikator oder Speicher. Sobald der Schaltplan für jede Zelle entworfen und verifiziert ist, muss das physische Layout entworfen werden. Ich habe Cadence Virtuoso für diesen Prozess zusammen mit analogen Schaltungssimulatoren wie Spectre und HSPICE verwendet .

  2. Charakterisieren Sie die Zellbibliothek. (Wenn Sie eine Gate-Bibliothek eines Drittanbieters haben, wird dies normalerweise für Sie durchgeführt.) Jede Zelle in Ihrer Bibliothek muss simuliert werden, um Zeittabellen für die statische Zeitanalyse (STA) zu generieren. Dazu wird die fertige Zelle entnommen , die Layout-Parasiten mit Assura , Diva oder Calibre extrahiert und die Schaltung unter verschiedenen Eingangsbedingungen und Ausgangslasten simuliert. Dadurch wird für jedes Gate ein Timing-Modell erstellt, das mit Ihrem STA-Paket kompatibel ist. Die Timing-Modelle liegen normalerweise im Liberty- Dateiformat vor. Ich habe Silicon Smart und Liberty-NCX verwendetalle notwendigen Bedingungen zu simulieren. Denken Sie daran, dass Sie wahrscheinlich Timing-Modelle für "Worst Case", "Nominal" und "Best Case" benötigen, damit die meisten Programme ordnungsgemäß funktionieren.

  3. Stellen Sie Ihr Design zusammen. Ich habe keine Erfahrung mit High-Level-Compilern, aber am Ende des Tages muss der Compiler oder die Compiler-Kette Ihr High-Level-Design verwenden und eine Netzliste auf Gate-Ebene erstellen. Das Syntheseresultat ist der erste Einblick in die theoretische Systemleistung und zeigt, wo zuerst Probleme mit der Laufwerksstärke behoben werden. Ich habe Design Compiler für RTL-Code verwendet.

  4. Platzieren und Routen Sie Ihr Design. Dadurch wird die Netzliste auf Gate-Ebene vom Synthesizer in ein physisches Design umgewandelt. Im Idealfall entsteht so ein fertigungsfertiges Pad-to-Pad-Layout. Es ist wirklich einfach, Ihre P & R-Software so einzustellen, dass sie automatisch Tausende von DRC-Fehlern verursacht. In diesem Schritt sind also auch nicht alle Unterhaltungen und Spiele von Bedeutung. Die meiste Software verwaltet Probleme mit der Laufwerksstärke und generiert Taktbäume wie angegeben. Einige Softwarepakete umfassen Astro, IC Compiler, Silicon Encounter und Silicon Ensemble. Das Endergebnis von Ort und Route ist die endgültige Netzliste, das endgültige Layout und die extrahierten Layout-Parasiten.

  5. Statische Timing-Analyse nach dem Layout. Ziel ist es, sicherzustellen, dass Ihr Design Ihren Timing-Spezifikationen entspricht und keine Setup-, Hold- oder Gate-Probleme aufweist. Wenn Ihre Entwurfsanforderungen eng sind, verbringen Sie möglicherweise viel Zeit damit, Fehler zu beheben und die Korrekturen in Ihrem P & R-Tool zu aktualisieren. Das letzte von uns verwendete STA-Tool war PrimeTime .

  6. Physische Überprüfung des Layouts. Nachdem ein Layout mit dem P & R-Tool erstellt wurde, müssen Sie sicherstellen, dass das Design den Regeln für das Prozessdesign (Design Rule Check / DRC) entspricht und dass das Layout mit dem Schema übereinstimmt (Layout versus Schematic / LVS). Diese Schritte sollten befolgt werden, um sicherzustellen, dass das Layout korrekt verdrahtet und herstellbar ist. Einige Tools zur physischen Überprüfung sind Assura , Diva oder Calibre .

  7. Simulation des endgültigen Entwurfs. Je nach Komplexität können Sie möglicherweise eine Transistorebenensimulation mit Spectre oder HSPICE , eine "Fast Spice" -Simulation mit HSIM oder eine vollständig digitale Simulation mit ModelSim oder VCS durchführen . Mit Hilfe Ihres STA- oder P & R-Tools sollten Sie in der Lage sein, eine Simulation mit realistischen Verzögerungen zu generieren.

Das Starten mit einer vorhandenen Gate-Bibliothek spart viel Zeit und die Verwendung von Makros, die Ihrem Design zugute kommen, z. B. Speicher, Mikrocontroller oder alternative Verarbeitungsblöcke. Die Verwaltung der Designkomplexität spielt ebenfalls eine große Rolle - ein einzelnes Clock-Design ist einfacher zu überprüfen als eine Schaltung mit mehreren Clock-Domänen.

W5VO
quelle
2
Seit Sie Virtuoso erwähnt haben, bietet Cadence eine vollständige Toolchain für das Design (ich glaube, es heißt Opus), in der es möglich ist, von den Schaltplänen auszugehen, die einzelne Zelle zu verlegen, die parasitären Effekte zu bewerten, sie zu charakterisieren und dann in die obere Ebene zu integrieren .
Clabacchio
1
Ich denke, jeder große Anbieter bietet eine vollständige Toolchain an. Wir haben letztendlich mehrere Anbieter in unserer Toolchain verwendet, und auf diese Weise konnten wir die Tools verwenden, mit denen wir am besten vertraut waren oder die den besten Ruf in der Branche hatten.
W5VO
1
Auswahlwerkzeuge für die Unterstützung von Bibliotheken oder Design-Kits sind praktisch eine Voraussetzung. Wenn Sie die unterstützte Version einer bestimmten Software nicht verwenden, können einige Inkompatibilitäten Ihr Design zum Erliegen bringen oder zu falschen Messwerten führen. Davon abgesehen lief die überwiegende Mehrheit der EDA-Tools auf Unix / Linux-Systemen. Die meisten haben steile Lernkurven.
W5VO
1
@MartinThompson Auf jeden Fall. Je mehr Sie die Grenzen Ihrer Technologie (ASIC / FPGA) überschreiten, desto kritischer sind diese Schritte. Abgesehen davon bieten Ihnen die ASIC-Versionen dieser Tools viel mehr Möglichkeiten, um in Schwierigkeiten zu geraten.
W5VO
1
Beachten Sie, dass 1 und 2 kein allgemeiner Bestandteil des Designs sind. Diese Schritte sind Teil der sogenannten "Prozessqualifizierung", und die Ergebnisse (vollständig charakterisierte Bibliotheken) werden von FAB Vendor bereitgestellt. Einige Unternehmen machen jedoch "Full Custom Design" und müssen 1 und 2 selbstständig abschließen.
Ale..chenski
7

Die Antwort von W5VO konzentriert sich in der Regel auf das Back-End. Dies ist ein wesentlicher Unterschied zwischen ASIC- und FPGA-Flows. es fehlt jedoch der Teil zur Überprüfung des digitalen Designs.

Wenn ein Design auf Silizium eine Million Dollar und mehr kosten kann und Sie im Vergleich zu einem FPGA viel mehr verwendbare Gates auf einem ASIC packen können, verbringen Sie viel mehr Zeit außerhalb des Labors und der Leiterplatten vor Workstations, auf denen Simulatorfarmen ausgeführt werden und Emulatoren und Schreibtests, um ein ASIC-Design besser zu verifizieren, bevor Sie es für die Produktion freigeben. FPGA-Entwickler tendieren dazu, einen großen Teil ihrer Tests mit dem FPGA in dem System durchzuführen, in dem es Teil sein wird.

Paddy3118
quelle
Ich möchte hinzufügen, dass der grundlegende Arbeitsablauf für einen digitalen Designer sich zwischen ASIC und FPGA nicht wesentlich unterscheidet, ASIC jedoch hinsichtlich der verfügbaren Makro- / Mikroelemente, der Platzierung und des Routings wesentlich flexibler ist, während FPGA auf die vorgefertigten Logikblöcke beschränkt ist und in der Verbindungstopologie begrenzt. Daher kann FPGA die Leistungsniveaus von ASIC nicht erreichen und kann geringfügig unterschiedliche Entwurfslösungen vorgeben.
Ale..chenski
Hallo Ali Chen. Wenn digitales Design und digitale Verifikation als getrennt betrachtet werden, ist der Fluss für rein digitales Design für FPGA und ASIC näher, aber es gibt eine große Trennung bei der Verifikation, wie ich bereits erwähnte. :-)
Paddy3118