Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Verilog

ASIC-Designfluss

Ein typischer Designablauf folgt der unten gezeigten Struktur und kann in mehrere Schritte unterteilt werden. Einige dieser Phasen laufen parallel, andere nacheinander ab. Wir werfen einen Blick darauf, wie ein typischer Projektdesignzyklus in der heutigen Branche aussieht.

Anforderungen

Ein Kunde eines Halbleiterunternehmens ist normalerweise ein anderes Unternehmen, das den Chip in seinen Systemen oder Endprodukten verwenden möchte. Daher spielen auch die Anforderungen des Kunden eine wichtige Rolle bei der Entscheidung, wie der Chip gestaltet werden soll. Der erste Schritt wäre natürlich, die Anforderungen zu sammeln, den Marktwert des Endprodukts zu schätzen und die Anzahl der Ressourcen zu ermitteln, die für die Durchführung des Projekts erforderlich sind.

Spezifikationen

Der nächste Schritt wäre, „Spezifikationen“ zu sammeln, die abstrakt die Funktionalität, Schnittstelle und Gesamtarchitektur des zu entwerfenden Chips beschreiben. Das kann etwas in der Art sein wie:

  1. Benötigt Rechenleistung, um Bildgebungsalgorithmen zur Unterstützung der virtuellen Realität auszuführen
  2. Erfordert zwei ARM A53-Prozessoren mit kohärenter Verbindung und sollte mit 600 MHz laufen
  3. Erfordert USB 3.0-, Bluetooth- und PCIe-Schnittstellen der 2. Generation
  4. Sollte eine Anzeige mit 1920 x 1080 Pixeln mit geeignetem Controller unterstützen

Architektur

Jetzt entwickeln die Architekten eine Ansicht auf Systemebene, wie der Chip funktionieren soll. Sie werden entscheiden, welche anderen Komponenten erforderlich sind, welche Taktfrequenzen sie ausführen sollten und wie die Energie- und Leistungsanforderungen anvisiert werden. Sie entscheiden auch, wie die Daten innerhalb des Chips fließen sollen. Ein Beispiel wäre der Datenfluss, wenn ein Prozessor Abbildungsdaten aus dem System-RAM holt und sie ausführt. In der Zwischenzeit führt die Grafik-Engine nachbearbeitete Daten aus dem vorherigen Stapel aus, die in einen anderen Teil des Speichers gedumpt wurden, und so weiter.

Digitales Design

Aufgrund der Komplexität moderner Chips ist es nicht möglich, etwas von Grund auf neu zu bauen, und in vielen Fällen werden viele Komponenten wiederverwendet. Angenommen, Unternehmen X benötigt ein FlexCAN-Modul, um mit anderen Modulen in einem Automobil zu interagieren. Sie können entweder das FlexCAN-Design von einem anderen Unternehmen kaufen, um Zeit und Mühe zu sparen, oder Ressourcen aufwenden, um selbst eines zu bauen. Außerdem ist es nicht praktikabel, ein solches System aus grundlegenden Bausteinen wie Flip-Flops und CMOS-Transistoren zu entwerfen. Stattdessen wird eine Verhaltensbeschreibung entwickelt, um das Design in Bezug auf Funktionalität, Leistung und andere allgemeine Probleme mit einer Hardwarebeschreibungssprache wie Verilog oder VHDL zu analysieren. Dies wird normalerweise von einem Digitaldesigner durchgeführt und ähnelt einem hochrangigen Computerprogrammierer, der über Kenntnisse in digitaler Elektronik verfügt.

Verifizierung

Sobald das RTL-Design fertig ist, muss es auf funktionale Korrektheit überprüft werden. Beispielsweise wird von einem DSP-Prozessor erwartet, dass er Bustransaktionen ausgibt, um Anweisungen aus dem Speicher abzurufen, aber woher wissen wir, dass dies wie erwartet geschieht? Daher ist an dieser Stelle eine funktionale Verifizierung erforderlich, die mit Hilfe von EDA-Simulatoren durchgeführt wird, die in der Lage sind, das Design zu modellieren und verschiedene Stimuli darauf anzuwenden. Dies ist die Aufgabe eines Pre-Silicon Verification Engineer.

Um Zeit zu sparen und einen funktionalen Abschluss zu erreichen, arbeiten sowohl das Design- als auch das Verifizierungsteam parallel, wobei die Designer eine RTL-Version „veröffentlichen“ und das Verifizierungsteam eine Testbench-Umgebung und Testfälle entwickelt, um die Funktionalität dieser RTL-Version zu testen. Wenn einer dieser Tests fehlschlägt, kann dies auf ein Problem mit dem Design hindeuten, und es wird ein „Bug“ für dieses Designelement gemeldet. Dieser Fehler muss in der nächsten Version der RTL-Veröffentlichung vom Designteam behoben werden. Dieser Prozess wird fortgesetzt, bis ein gutes Maß an Vertrauen in die funktionale Korrektheit des Designs besteht.

Logische Synthese

Jetzt, da wir mit dem Design zufrieden sind, ist es an der Zeit, es in einen Hardware-Schaltplan mit realen Elementen wie kombinatorischen Gattern und Flip-Flops umzuwandeln. Dieser Schritt wird als Synthese bezeichnet. Logiksynthesewerkzeuge ermöglichen die Konvertierung der RTL-Beschreibung in HDL in eine Netzliste auf Gatterebene. Diese Netzliste ist nichts anderes als eine Beschreibung der Schaltung in Bezug auf Gatter und Verbindungen zwischen ihnen. Es könnte etwa so aussehen:

  
  
and_2_0     u_and2_0 ( .in_a (_net_112),
                       .in_b (_net_56),
                       .out  (_net_222));

ff_lt       u_ff_lt_122 (.d   (_net_222),
                         .clk (_net_11),
                         .q   (_net_76));

  

Logiksynthese-Tools stellen sicher, dass die Netzliste die Zeit-, Bereichs- und Leistungsspezifikationen erfüllt. Typischerweise haben sie Zugriff auf verschiedene Technologieknotenprozesse und Bibliotheken digitaler Elemente und können intelligente Berechnungen durchführen, um all diese unterschiedlichen Kriterien zu erfüllen. Diese Bibliotheken stammen von Halbleiterfabriken, die Dateneigenschaften für verschiedene Komponenten wie Anstiegs-/Abfallzeiten für Flip-Flops, Eingangs-Ausgangs-Zeiten für kombinatorische Gatter usw. bereitstellen.

Logische Äquivalenz

Die Netzliste auf Gate-Ebene wird dann auf logische Äquivalenz mit der RTL geprüft, und manchmal wird eine "Verifizierung auf Gate-Ebene" durchgeführt, bei der die Verifizierung bestimmter Elemente erneut durchgeführt wird, mit dem Unterschied, dass sie sich diesmal auf Gate-Ebene und auf einer niedrigeren Ebene befindet der Abstraktion. Die Simulationszeiten sind in der Regel langsamer, da in dieser Phase eine große Anzahl von Elementen am Design beteiligt sind, zusammen mit zurückkommentierten Verzögerungsinformationen.

Platzierung und Routing

Die Netzliste wird dann in den physischen Designfluss eingegeben, wo automatische Platzierung und Route (APR oder PnR) mit Hilfe von EDA-Tools durchgeführt werden. Ein gutes Beispiel für solche Tools ist Cadence Encounter und Synopsys IC Compiler. Dadurch werden Standardzellen ausgewählt und in Zeilen platziert, Kugelkarten für die Eingabe-Ausgabe definiert, verschiedene Metallschichten erstellt und Puffer platziert, um das Timing zu erfüllen. Sobald dieser Vorgang abgeschlossen ist, wird ein Layout erstellt und normalerweise zur Herstellung gesendet. Diese Phase wird normalerweise vom physischen Designteam durchgeführt, das mit dem Technologieknoten und den Details der physischen Implementierung bestens vertraut ist.

Validierung

Es endet hier nicht. Ein Musterchip wird entweder von derselben Halbleiterfirma hergestellt oder an eine Dritthersteller wie TSMC oder Global Foundries gesendet. Dieses Muster durchläuft nun den Post-Silizium-Validierungsprozess, bei dem ein anderes Team von Ingenieuren verschiedene Muster auf einem Tester ausführt. Es ist viel schwieriger, Fehler bei der Post-Silicon-Validierung zu debuggen als bei der Pre-Silicon-Verifikation, einfach weil der Grad der Sichtbarkeit in die internen Knoten eines Chips drastisch reduziert ist. Darüber hinaus wären eine Million Taktzyklen in einer Sekunde beendet, und die Rückverfolgung zum genauen Zeitpunkt des Fehlers wäre zeitaufwändig. Wenn in dieser Phase echte Probleme oder Designfehler gefunden werden, müssen diese in RTL behoben, erneut verifiziert und alle darauf folgenden Schritte durchgeführt werden.

Obwohl der Designablauf mehrere Schritte umfasst, konzentriert sich ein Großteil der Designaktivitäten normalerweise auf die Optimierung und Überprüfung der RTL-Beschreibung der Schaltung. Es ist wichtig zu beachten, dass, obwohl EDA-Tools zur Automatisierung der Prozesse verfügbar sind, eine unsachgemäße Verwendung zu ineffizienten Designs führt und daher ein Designer während des Designprozesses bewusste Entscheidungen treffen muss.


Verilog

  1. Verilog-Tutorial
  2. Design-Abstraktionsschichten
  3. Die vier wichtigsten Aspekte eines guten Bedienfelddesigns
  4. Designgrundlagen von Steuergehäusen in Maschinen, Automatisierung und Industrie
  5. Grundlagen des Bedienfelddesigns
  6. Kurze Antworten auf große Fragen zum PCB-Design
  7. Methoden zur Stärkung der Entstörungsfähigkeit im PCB-Design
  8. Wie man Interferenzen im PCB-Design besiegt
  9. Drei Designüberlegungen zur Sicherstellung der EMV von Laptop-PCB
  10. Was ist Architekturdesign?