Interfacing SystemC inside UVM using TLM 2.0
Master thesis
Permanent lenke
https://hdl.handle.net/11250/2778111Utgivelsesdato
2020Metadata
Vis full innførselSamlinger
Sammendrag
Mulighetene og utfordringene i simulasjons basert verifikasjon med Universal Verification Methodology(UVM), SystemC og TLM2.0 er analysert i denne masteroppgaven. Denne metodikken avviker fra de fleste UVM verifikasjon miljø ved gjenbruket av en SystemC referanse model. Denne modellen genererer forventet respons fra Designet Under Test(DUT) og muliggjør automatisk sjekking av responsen. Metodikken presentert bruker begrenset randomisert stimuli til å finne uventede feil og redusere implementasjons tiden. DUTen er en minnekontroller som er tidligere verifisert med direkte tester. Det er en konfidensiell enhet fra Nordic Semiconductor som er nylig brukt i deres nRF52 SoC.
Tradisjonelle tester med bestemt stimuli spesifiserer hver eneste test vektor og listen med bestemt stimuli kan vokse til å bli ekstremt stor for å dekke all funksjonalitet. Listene med stimuli er veldig tidkrevende å utvikle og vedlikeholde. DUTen har en fil med test vektorer som er 3500 linjer lang og oppdatert over flere år. Begrenset randomisert stimuli kan erstatte de tidkrevende listene. Test3 presentert i implementasjons kapittelet viser hvordan 19 linjer genererer minne og konfigurasjons transaksjoner samtidig. I tillegg til hurtig stimuli generasjon, muliggjør metodikken gjenbruk av kode som også reduserer implementasjons tiden. Protokoll komponenter er gjenbrukt for å kommunisere med DUTen. Bare 42% kode dekning var oppnådd på grunn av ufullstendig referansemodell. Derimot, viser implementasjonen at teknologien fungerer og kan bli brukt til verifikasjon. The possibilities and challenges with simulation-based verification with Universal Verification Methodology(UVM), SystemC and TLM2.0 are investigated in this thesis. The methodology presented deviates from most UVM environments with the reuse of a SystemC model reference model. This model generates the expected response from the Design Under Test(DUT) and enables automatic checking. The methodology use constrained random stimulus that excels at finding unexpected bugs and reduce implementation time. The \acrshort{dut} is a complex memory controller previously verified with directed test vectors. It is a confidential Nordic Semiconductor IP recently implemented in their nRF52 System-on-Chip(SoC).
Traditional directed tests specify each test vector to simulate, and the list can grow huge to cover all functionality. These lists are very time-consuming to implement and maintain. The DUT has a 3500 lines long file with test vectors and is updated over several years. Constrained random stimuli can replace the time-consuming lists. Test3 presented in the implementation chapter shows how to generate configuration and memory transactions concurrently in 19 lines of code in a completed environment. In addition to fast stimuli generation, enhances this methodology reuse to decrease implementation time. Protocol components were reused to communicate with the DUT. Only 42% code coverage was reached due to an inadequate reference model. However, the implementation show that the technology works and can be used in verification.