Overordnede kursusmål
Dette kursus giver grundlæggende viden om metoder og værktøjer til
verifikation af integrerede kredsløb ved at dække de principielle
elementer i coverage-driven constrained random verification:
• Kortlægning af designarkitekturkrav til verification plans
• Implementering af objektorienterede testbench-miljøer
• Oprettelse af constrained random test cases med tilsigtet random
stimuli distribution
• Implementering af funktionelle checks på både RT- og
transaktionsniveau
• Opbygning af coverage models til måling af
verifikationskompletheden
• Kortlægning af tests, checks og coverage models til kravene i
verification plan
Kurset præsenterer den grundlæggende teori, der er nødvendig for at
forstå og implementere disse principielle elementer. De studerende
lærer at bruge simulationsværktøjer til at debugge designet, de
constrained random test cases samt de implementerede design checks,
men også hvordan sådanne værktøjer kan anvendes til at måle de
opnåede coverage metrics ved hjælp af de implementerede coverage
models.
Som en praktisk del arbejder de studerende i små teams med en
praktisk implementering af en testbench i PyUVM ved brug af Python
til verifikation af funktionaliteten i et RTL-design. I det
afsluttende projekt skal hvert studenterteam integrere deres
komplette PyUVM-verifikationsmiljø bestående af tests, checks og
coverage models. Det endelige projekt evalueres ud fra den
teoretiske korrekthed af de enkelte elementer samt den samlede
kapacitet af verifikationsmiljøet til at finde komplekse
RTL-designfejl.
Ved afslutningen af kurset vil de studerende have opnået både en
grundig teoretisk forståelse og praktisk erfaring med anvendelse af
moderne metoder til verifikation af integrerede kredsløb ved brug
af PyUVM og Python. De studerende bliver klar til at arbejde med de
omfattende industri-skala miljøer, der anvendes til verifikation af
moderne komplekse chip-designs.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Forklare rollen af forskellige værktøjer og sprog i digital
systemverifikation og deres anvendelse i
verifikationsprocesser.
- Anvende den grundlæggende teori om constrained random
verification i akademiske og virkelige situationer, herunder
principper for funktionel verifikation af RTL-designs, state space
exploration, transaktionskoncepter, verifikationskvalitet og
verification plans.
- Designe directed og constrained random test cases for at sikre
en effektiv stimuli distribution til verifikation af RTL-designs i
virkelige situationer.
- Implementere og/eller anvende funktionelle checkers, reference
models, scoreboards og assertions ved brug af temporal logic til
validering af designkorrekthed i virkelige situationer.
- Udvikle og anvende coverage models samt coverage model
closure-teknikker til at måle verifikationskompletheden.
- Implementere testbenches i PyUVM ved brug af Python til
verifikation af funktionaliteten af et RTL-design.
- Bruge simulationsværktøjer til at debugge RTL-designs, test
cases, funktionelle checks og coverage models.
- Analysere effektiviteten af et verifikationsmiljø ved at
evaluere verifikationsmetrikker og fejlfindingskapacitet.
- Integrere forskellige verifikationskomponenter, herunder tests,
checks og coverage models, i et komplet verifikationsmiljø.
- Vurdere den endelige kvalitet af et verifikationsmiljø baseret
på dets evne til at detektere komplekse RTL-designfejl.
Kursusindhold
Principper for verifikation af integrerede kredsløb, constrained
random verification, verification planning, transaction-based
testbench-arkitektur, coverage models, funktionelle checks,
assertions, PyUVM, Python tests, scoreboards, requirement-centric
verification closure.
Bemærkninger
Dette kursus udbydes i samarbejde med virksomheden Syosil, som er
specialiseret i verifikation af digitale systemer.
Sidst opdateret
02. maj, 2025