
Verifikation, die vor dem Tape-out Sicherheit schafft.
Harmonie Design Labs bietet strukturierte Verifikationsleistungen für ASIC-, SoC-, Digital-IP- und FPGA-Entwicklungsprogramme.
Wir entwickeln Verifikationsstrategien und -umgebungen, die prüfen, ob ein Design über alle erwarteten Betriebsarten, Schnittstellen, Konfigurationen und Grenzfälle hinweg seiner freigegebenen Spezifikation entspricht.
- Verifikationsplanung und -architektur
- Testbench-Entwicklung in SystemVerilog und UVM
- Gerichtete und constrained-random Verifikation
- Funktions-, Code- und Assertion-Coverage
- Assertion-basierte Verifikation
- Formale Verifikation ausgewählter Eigenschaften
- Block-, Subsystem- und Full-Chip-Verifikation
- Protokoll- und Schnittstellenverifikation
- Verifikation von Takt- und Reset-Domänen
- Entwicklung und Automatisierung von Regressionen


Von der Spezifikation bis zur Verifikationsfreigabe
Wirksame Verifikation beginnt mit einer klaren Definition dessen, was das Design leisten muss und woran der Abschluss gemessen wird.
Eine Sammlung bestandener Simulationen belegt für sich genommen noch nicht, dass ein Design ausreichend verifiziert ist. Anforderungen müssen auf Testszenarien, Checker, Assertions und messbare Coverage-Ziele abgebildet werden.
Harmonie Design Labs baut den Verifikationsprozess auf nachvollziehbaren Anforderungen und definierten Abschlusskriterien auf. So entsteht ein strukturierter Weg vom ersten Verifikationsplan bis zum finalen Sign-off.
Verifikationsstrategie definieren
Wir prüfen Designspezifikation, Architektur, Betriebsarten, Schnittstellen, Taktdomänen, Reset-Verhalten, erwartete Fehlerzustände und Integrationsanforderungen. Verifikationsrisiken werden erkannt, bevor umfangreiche Testbench-Entwicklung beginnt.
Umgebung aufbauen und ausführen
Wir entwickeln die erforderliche Verifikationsumgebung mit SystemVerilog, UVM, Assertions, Referenzmodellen, Scoreboards, Monitoren und — wo sinnvoll — wiederverwendbaren Verifikationskomponenten. Die Tests decken erwartetes Verhalten, Fehlerbehandlung, Konfigurationskombinationen, Schnittstellenaktivität, Randbedingungen und schwer erreichbare Szenarien ab. Regressionen laufen kontinuierlich, sodass Designänderungen gegen die gesamte Verifikationsumgebung bewertet werden können.
Analysieren, abschließen, freigeben
Die Verifikationsergebnisse werden gegen den freigegebenen Plan und die Coverage-Ziele geprüft. Fehlschläge werden analysiert, um Designfehler, Testbench-Probleme, Mehrdeutigkeiten der Spezifikation und Umgebungsprobleme zu unterscheiden. Nicht abgedeckte Funktionalität wird untersucht und über zusätzliche Stimuli, Assertions, formale Analyse oder Aktualisierungen des Verifikationsplans adressiert. Das Verifikationsprogramm gilt erst dann als abgeschlossen, wenn die vereinbarten Sign-off-Kriterien geprüft und dokumentiert sind.
Verifikationsmethoden
Funktionale Verifikation
Die funktionale Verifikation prüft, ob sich das Design unter erwarteten und außergewöhnlichen Betriebsszenarien spezifikationsgemäß verhält.
Die Umgebung kann umfassen:
- Gerichtete Tests
- Constrained-random Stimuli
- Selbstprüfende Testbenches
- Referenzmodelle
- Scoreboards
- Protokollmonitore
- Funktionale Coverage
- Fehlerinjektion und Wiederherstellungsszenarien
Assertion-basierte Verifikation
Assertions formulieren erwartetes Designverhalten als Eigenschaften, die sich in der Simulation oder formalen Analyse prüfen lassen.
Besonders nützlich sind sie für:
- Schnittstellenregeln
- Steuersequenzen
- Zeitliche Beziehungen
- Protokollkonformität
- Erkennung unzulässiger Zustände
- Sicherheits- und Konsistenzbedingungen
Formale Verifikation
Formale Methoden lassen sich auf ausgewählte Eigenschaften anwenden, bei denen die Simulation allein kaum jeden relevanten Zustand erreicht.
Formale Verifikation setzen wir dort ein, wo sie messbaren technischen Nutzen bringt — nicht als Standardmethode für jeden Block.
Typische Einsatzfelder sind:
- Steuerlogik
- Zustandsautomaten
- Arbitrierungsverhalten
- Registerkonsistenz
- Protokolleigenschaften
- Deadlock- und Erreichbarkeitsanalyse
Coverage-getriebene Verifikation
Coverage macht messbar sichtbar, was geprüft wurde und was nicht.
Coverage-Zahlen sind für sich genommen kein Ziel. Sie werden gegen den Verifikationsplan und das technische Risiko des Designs interpretiert.
Je nach Projekt bewerten wir mehrere Coverage-Dimensionen:
- Funktionale Abdeckung
- Code-Coverage
- Assertion-Coverage
- Zustands- und Übergangs-Coverage
- Schnittstellen- und Protokoll-Coverage
- Konfigurations-Coverage
Flexible Zusammenarbeitsmodelle
Harmonie Design Labs unterstützt Verifikationsprogramme über mehrere Zusammenarbeitsmodelle.
Vollständige Verantwortung für die Verifikation
Wir definieren und führen das gesamte Verifikationsprogramm durch — von Planung und Umgebungsarchitektur über Regression und Coverage-Closure bis zum Sign-off.
Block- oder Subsystem-Verifikation
Wir übernehmen die Verantwortung für einen definierten IP-Block, eine Schnittstelle, ein digitales Subsystem oder eine Integrationsebene innerhalb eines kundengeführten Verifikationsprogramms.
Erweiterung des Verifikationsteams
Unsere Ingenieure arbeiten innerhalb der bestehenden Methodik, Repositories, Entwicklungswerkzeuge, Review-Prozesse und Regressionsinfrastruktur des Kunden.
Verifikations-Review und Audit
Wir bewerten einen bestehenden Verifikationsplan und dessen Umgebung vor dem Tape-out unabhängig.
Unterstützung bei formaler Verifikation
Wir steuern formale Analysen für ausgewählte Blöcke oder Eigenschaften bei, die sich durch Simulation allein nur schwer ausreichend verifizieren lassen.
Warum Verifikationsqualität zählt
Ein Design kann kompilieren, synthetisieren und seine ersten Tests bestehen und dennoch funktionale Fehler enthalten, die nur unter bestimmten Konfigurationen oder Ereignisfolgen auftreten.
Ein strukturierter Verifikationsprozess verringert diese Risiken, bevor das Design das Tape-out erreicht.
Ziel ist nicht die größtmögliche Zahl an Tests, sondern ausreichende, messbare Evidenz dafür, dass sich das Design im vereinbarten Rahmen wie vorgesehen verhält.
Häufige Verifikationsrisiken sind:
- Unvollständige oder mehrdeutige Spezifikationen
- Funktionen ohne zugeordnete Tests
- Zu wenige Fehler- und Wiederherstellungsszenarien
- Nicht verifizierte Wechselwirkungen zwischen Taktdomänen
- Nicht vollständig durchlaufene Reset-Sequenzen
- In Regressionen fehlende Konfigurationskombinationen
- Protokoll-Grenzfälle
- Coverage-Ziele ohne belastbare Abschlussanalyse
- Testbench-Fehler, die Designprobleme verdecken
- Späte Änderungen ohne vollständige Nachverifikation
Häufige Fragen
Ja. Wir definieren und steuern Verifikationsstrategie, Testbench-Architektur, Testentwicklung, Regressionsprozess, Coverage-Closure und Sign-off-Dokumentation.
Ja. Wir prüfen, erweitern, pflegen oder vervollständigen eine bestehende UVM-Umgebung und entwickeln bei Bedarf neue Verifikationskomponenten innerhalb der aktuellen Architektur des Kunden.
Nein. Die Methodik richtet sich nach Design und Projektanforderungen. Ein Projekt kann gerichtete Tests, UVM, Assertions, formale Verifikation, statische Prüfungen und Gate-Level-Simulation kombinieren.
Ja. Wir verifizieren einen einzelnen Block, eine Schnittstelle, ein Subsystem oder ein komplettes Digitaldesign. Umfang und Integrationsgrenzen werden zu Beginn der Zusammenarbeit festgelegt.
Ja. Formale Techniken lassen sich auf ausgewählte Eigenschaften, Steuerstrukturen, Schnittstellen, Register, Äquivalenzprüfungen und schwer erreichbare Zustände anwenden, sofern sie klaren Nutzen bringen.
Ja. Wir führen ein unabhängiges Verifikations-Review durch, das Plan, Nachvollziehbarkeit, Tests, Assertions, Coverage, Regressionen, bekannte Probleme und Sign-off-Kriterien umfasst.
Ja. Je nach Projektumfang unterstützen wir Gate-Level-Simulation nach Synthese oder Layout, timing-bewusste Szenarien, Reset-Verifikation und abschließende Prüfungen vor dem Tape-out.
Die Verifikation betrifft vorrangig das Design vor dem Tape-out. Physische First-Silicon-Tests und elektrische Charakterisierung fallen unter unsere Kompetenz Laborvalidierung. Beide Tätigkeiten lassen sich innerhalb eines vollständigen ASIC-Programms verbinden.
