Communitygithub.com

Virtuoso Param

Passt bestehende Virtuoso- oder Spectre-Schaltungen in einer sequenziellen geschlossenen Schleife an: Analysiert jedes gemessene Ergebnis und wählt den nächsten Parametersatz unter Verwendung des aktuellen ChatGPT/Codex-Agenten, eingeschränkter Gaußprozess-Bayesscher Optimierung oder beidem. Verwendung für W/L, Bias, Kompensation, Dimensionierung und Designvariablenoptimierung mit expliziten Grenzen, Metriken, historischen Belegen und unabhängiger Validierung.

Was ist Virtuoso Param?

Diese Fähigkeit ermöglicht die Optimierung bestehender analoger Schaltungen in Virtuoso oder Spectre durch eine flexible, agentengestützte oder bayessche Schleife. Anstatt eine vollständige Rastersuche über alle Parameterkombinationen durchzuführen, analysiert das System nach jeder Simulation das Ergebnis und wählt den nächsten vielversprechendsten Parametersatz – entweder durch Schlussfolgerung des aktuellen ChatGPT/Codex-Agenten oder durch ein Gaußprozess-Modell, das die erwartete Verbesserung maximiert. Der Workflow respektiert explizite Benutzervorgaben wie Parameterbereiche, Schrittweiten, Simulationsbudgets und mehrere Eckpunkte. Es werden dynamische Bibliotheken wie iterate_params.py (für die reine Agentenschleife) und bayes_suggest.py (für die bayessche Optimierung) bereitgestellt, wobei die Ergebnisse jeder Runde unabhängig verifiziert werden. Die Ausgabe liefert die besten, innerhalb des Budgets verifizierten Parameter zusammen mit detaillierten Messergebnissen, Konfigurationen und Nachweisen, wobei Vorhersagen des Optimierers nicht als tatsächliche Messwerte ausgegeben werden. Die Fähigkeit unterstützt mehrere Plattformen (Virtuoso, Spectre) und lässt sich bei installierten Backends (z. B. BoTorch) auch auf externe Optimierungsbibliotheken erweitern.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/CATEular/skill/tree/HEAD/skills/virtuoso-workflow/virtuoso-params

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Virtuoso Params

Verantwortlich für die Parameteränderung, Empfindlichkeitsanalyse und geschlossene Optimierung bestehender Schaltungen. Standardmäßig wird nach jeder Simulationsrunde eine Analyse durch den aktuellen ChatGPT/Codex durchgeführt, bevor der nächste Parametersatz festgelegt wird; es wird keine vollständige Kombinationssweep W1×W2×… generiert. Die Ausgabe ist "der im aktuellen Bereich und Budget verifizierte beste, realisierbare Parametersatz", ohne Garantie auf Globaloptimum. Schaltungsentwurf und Erstellung neuer Testplattformen liegen außerhalb des Rahmens dieser Fähigkeit.

Vorbereitung

  1. Lesen Sie die Plattformvereinbarung und befolgen Sie das Umgebungskonfigurationsprotokoll, um gemeinsam genutzte lokale Konfigurationen zu lesen; stellen Sie bei Bedarf eine Verbindung mit virtuoso-connect her. Interpreter, Arbeitsbereich, PDK und Pfade werden aus der Konfiguration bezogen.
  2. Definieren Sie DUT/TB, Messdefinitionen, Ziele, Einschränkungen, Parametereinheiten/Obergrenzen/-untergrenzen/gültige Schrittweiten, Eckpunkte und Evaluierungsbudget. Wenn diese aus Projektdokumenten abgeleitet werden können, bereiten Sie sie vor; fragen Sie den Benutzer nach fehlenden Zielen oder Grenzen, die das Ergebnis ändern würden, und lesen Sie gleichzeitig das vorhandene Design ein.
  3. Speichern Sie die ursprünglichen Parameter und eine Reihe von Basisergebnissen. Wenn die Testplattform unvollständig ist, übergeben Sie sie zuerst an virtuoso-testbench, schließen Sie die Messschleife ab und fahren Sie dann mit der Optimierung fort.

Parameter & Evaluierung

  • Verwenden Sie bevorzugt ADE-Variablen oder vorhandene parametrisierte Netlists, um zu vermeiden, dass für jeden Kandidaten die Schaltung neu aufgebaut wird. Wenn Sie MOS-CDF direkt ändern, lesen Sie parameter-editing.md.
  • Evaluieren Sie alle Kandidaten mit derselben Konfiguration und denselben Eckpunkten; speichern Sie die Einstellungen vor jedem Lauf, geben Sie dem aktuellen Lauf ein unabhängiges Verzeichnis und eine Kennung; binden Sie beim Lesen der Ergebnisse explizit History, Test und Corner/Point ein.
  • Verwenden Sie vorhandene ADE/OCEAN-Messdefinitionen; insbesondere die Phasenreserve sollte aus geeigneten Schleifenmessungen stammen und nicht automatisch die Phase einer beliebigen Ausgangsspannung als PM betrachten.
  • Lokal verifiziert: Ändern von Variablen und Ausführen mit SKILL/ADE, unabhängige OCEAN-Subprozesse zum Lesen spezifischer PSF-Dateien, JSON-Metriken werden zurück in den Sucher geschrieben; verwenden Sie ocean-skill-flow.md und bewahren Sie alle Laufkennungen und Protokolle auf.
  • Fehlgeschlagene Simulationen, fehlende Metriken, nicht-endliche Zahlen oder nicht übereinstimmende Historie gelten als ungültige Evaluierungen und werden nicht als hohe Punktzahl oder Nullwert gewertet.
  • Bei mehreren Eckpunkten wird gemäß der Metrikkonvention der schlechteste Wert verwendet; nicht ausgeführte Eckpunkte werden als nicht verifiziert markiert. Die Erfüllung der Einschränkungen hat Vorrang vor Leistungsverbesserungen; Durchschnittswerte dürfen keine verletzten Punkte verschleiern.

Suche & Stopp

Wählen Sie die Strategie gemäß adaptive-loop.md:

  • Standard Agent-Schleife: Lies die Schaltung und den Arbeitspunkt, aktuelle und historische Metriken, diagnostiziere die Haupteinschränkungen, erkläre die Annahmen und die Begründung für den nächsten Parametersatz und führe nur diesen Satz aus. Das integrierte iterate_params.py führt nur eine Evaluierung pro Durchlauf durch und übergibt die Kontrolle an den Agenten zurück; der aktuelle Agent schlussfolgert selbst und erfordert keinen separaten Claude/Gemini/OpenAI-API-Client.
  • Bayessche oder gemischte Schleife: Das integrierte bayes_suggest.py passt einen Gaußprozess mit allen abgeschlossenen, gültigen Beobachtungen neu an, priorisiert die Wahrscheinlichkeit der Erfüllung/erwartete Verbesserung unter Einschränkungen und schlägt nur einen neuen Punkt vor. Der Agent kann nach Überprüfung der Bauteillegalität, Symmetrie und Schaltungsannahmen akzeptieren oder anpassen. Vorhersagen zählen nicht als tatsächliche Messungen; einige wenige anfängliche Versuche sind keine vollständige Parametersweep.
  • Explizite Parametersweep/Alte Suche: Nur verwenden, wenn der Benutzer Kurven, lokale Empfindlichkeitsdiagnosen oder eine erschöpfende Suche in einem sehr kleinen diskreten Bereich anfordert; search_params.py wird als Kompatibilitätseinstiegspunkt beibehalten und stellt eine Gitter-/Zufallslokalsuche dar, die nicht als KI-Schlussfolgerung oder Bayes'sche Optimierung bezeichnet wird.

Beide Standard-Schleifen teilen sich den Projektadapter, die echten Simulationen und das Logbuchvertrag aus optimization.md. Die Strategie kann gewechselt werden, während dieselbe Historie fortgesetzt wird. Spezialisierte Backends wie BoTorch/TuRBO können nach Installation und Verifizierung die Vorschlagsebene ersetzen; dieses Paket hat derzeit diese Backends weder installiert noch getestet und übernimmt keine ungeprüften Maestro-Beispiele aus alten Optimierern.

Halten Sie sich an das vom Benutzer vorgegebene Simulations-/Zeitbudget; falls nicht angegeben, geben Sie ein für die Aufgabe geeignetes, endliches Budget an. Korrigieren Sie wiederholte Konfigurationsfehler, bevor Sie mit der Suche fortfahren; verlassen Sie sich nicht auf unendliche Wiederholungen zur Weiterführung. Wenn das Budget aufgebraucht ist, kein realisierbarer Punkt gefunden wurde oder Messungen nicht durchgeführt werden können, liefern Sie die aktuellen Belege und Engpässe.

Lieferung

Führen Sie die Kandidaten unabhängig erneut aus und überprüfen Sie die Einschränkungen. Geben Sie dann die ursprünglichen/optimalen Parameter, die Basis-/Wiederholungsmetriken, die Messkonfiguration, die Eckpunkte, die Anzahl der Evaluierungen und die rohen Belege aus. Geben Sie keine Proxy-Vorhersagen des Optimierers als tatsächliche Messungen aus. Wenn der Benutzer die Anwendung der Parameter anfordert, schreiben Sie sie mit entsprechender Autorisierung und lesen Sie sie zurück; wenn nur erforscht wird, bewahren Sie das ursprüngliche Design und die Kandidatenaufzeichnungen auf.

Wenn ein bearbeitbarer Schaltplan vorhanden ist, markieren Sie die tatsächlich empfohlenen, durch unabhängige Wiederholung verifizierten Abmessungen dauerhaft neben der Schaltung mit dem Titel Recommended (verified), einschließlich Einheiten, Schlüsselbedingungen/Metriken, Datum und endgültiger History/Test; speichern und lesen Sie gemäß den Zeichnungs- und Empfehlungsmarkierungsrichtlinien. Bewahren Sie parametrisierte Ausdrücke der Bauteile auf; die Empfehlungskommentare ersetzen keine ADE-Variablen. Bei späteren Optimierungen aktualisiert der Agent dieselbe Markierung; wenn sich die Bedingungen ändern, kennzeichnen Sie alte Aufzeichnungen klar als historische Ergebnisse, die nicht fälschlicherweise als verifizierte aktuelle Einstellung bezeichnet werden dürfen. Wenn kein realisierbarer Punkt vorhanden ist, setzen Sie keine Empfehlungsmarkierung.

Der Workflow des Benutzers erfordert standardmäßig eine visuelle Lieferung: Schreiben Sie den aktuell besten, realisierbaren Parametersatz zurück in ADE und lesen Sie ihn zurück; führen Sie eine unabhängige Wiederholung mit diesen Parametern durch; öffnen Sie die OUT-Wellenform dieser Runde sowie die Messwerte und Designvariablen in Maestro; bewahren Sie die Schaltplan-, Maestro- und ViVA-Fenster auf, damit der Benutzer weitere Änderungen vornehmen kann. Binden Sie explizit die endgültige History ein; zeigen Sie keine Wellenformen der vorherigen Runde oder Proxy-Vorhersagen an. Es sei denn, der Benutzer fordert ausdrücklich nur eine Erkundung oder das Schließen der Fenster an, stellen Sie am Ende nicht die Baseline wieder her und schließen Sie die Sitzung nicht. Die lokale ADE-Instanz liest beim Lauf die globale Startup-Projektverzeichnisvariable erneut, sie kann nicht vor dem Öffnen der Sitzung wiederhergestellt werden. Bestätigen Sie vor jedem Lauf das autorisierte Ergebnisverzeichnis und fragen Sie nach dem Lauf die tatsächliche Position ab; wenn die bearbeitbare Sitzung beibehalten wird, behalten Sie die Verzeichniseinstellungen bei, die für den fortgesetzten Betrieb des Benutzers geeignet sind, und notieren Sie die ursprünglichen Werte. Verifizierte sitzungsspezifische persistente Einstellungen haben Vorrang.

Verwenden Sie simulation-flow.md und die Maestro API für den Betrieb der Testplattform und den Export von Ergebnissen; unterhalten Sie kein separates Simulationsinterface mehr.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Verwandte Skills