Testbänkens täckningsgrad Testbänkens täckningsgrad Analys av kodtäckningsverktyg Hur tas täckningsgraden fram? Vad är täckningsgrad? Kommersiella verktyg Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 1
Testbänkens täckningsgrad Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 2 case (a) when 1 => q <= 7; when 2 => q <= 10; … end case; if (a = 0) then … else … end if; ej exekverad kod
Simulering – svaga punkter Tidskrävande –80 % av utvecklingstiden Ingen garanti –Kan finnas buggar kvar Subjektiv bedömning –Konstruktörens erfarenhet avgör Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 3
Täckningsanalys Andel testad kod Otestad kod Verifieringens kvalité Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg Grind nivå innan layout Simulering Grind nivå efter layout Syntes RT nivå Beteende nivå Simulering 4
Kodtäckningsanalys Minskar verifieringstiden –Man vet när man ska sluta testa Garanti –Kan garantera att koden har exekverats Objektivt mått –Siffra på hur stor del av koden som testats Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 5
Verktyg Verktyg - två typer Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg instimuli simulator integrerat verktyg simulator fristående verktyg fristående verktyg 85 % 6
Verktyg Vägledning vid verifieringsproblem –Minimera testbänken –Upptäcka redundans i teststimuli –Komplettera produkttestning –Kontrollera parallellitet –Verifiera fsm –Komponent i bibliotek Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 7
Verktyg Påverkar prestanda (ca 5 %) Overhead och minne –Kodens kvalité –Kodens ”stil” –Verktygets omfattning –Verktygets integrering Simulator Gränssnitt Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 8
Analyskategorier Programsatstäckning a <= b + 1; Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 9
Analyskategorier Blocktäckning –Kodsekvens utan grenar –Första raden exekveras –Blocket exekveras Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 10
Analyskategorier Grentäckning –Visar vilka vägar som exekverats Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg if (a = 0) then … else … end if; case (a) when 1 => q <= 7; when 2 => q <= 10; … end case; 11
Analyskategorier Vägtäckning –Mäter hur stor procent av alla möjliga vägar genom en kod som exkeverats Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg a a1 f = b1 and c1 b = not d b = d or c b = c
Analyskategorier Villkorstäckning –Expanderar till booleska element –Tittar inuti Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg if (a or b) then … ba 13 11
Analyskategorier Växlingstäckning –Mäter om enstaka bitar växlat mellan 0 och 1 –Mäter hur många gånger Variabeltäckning –Samma sak fast grupperade bitar Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg abab 14
Analyskategorier Triggningstäckning –Kontrollerar signaler i sensitivity-list Triggertäckning –Räknar hur många gånger en process har triggats Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg process (a, b, c) … end process; 15
Analyskategorier Kodtäckning i fsm –Besökta tillstånd –Tillståndsövergångar –Villkor som kontrollerar tillståndsövergångar –Sekvens av tillstånd Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg
Analyskategorier Olika många Kan överlappa Valbara Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg Exempel på hur man kan välja analyskategori i Verisitys verktyg SureCov 17
Begränsningar Garanterar inte verifiering Detekterar inte buggar Upptäcker inte om det fattas kod 100 % täckningsgrad? Kräver testplan Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 18
Kommersiella verktyg Integrerade kodtäckningsverktyg –påverkar prestanda mindre.. –bekant miljö.. Fristående kodtäckningsverktyg –mer avancerade.. –konfigurerbara.. Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 19
Kommersiella verktyg 1. Integrerade kodtäckningsverktyg 2. Fristående kodtäckningsverktyg Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg Incisive Unified Simulator NC-Sim ModelSim VCS Scirocco SureCov VN-Cover HDL Score 20
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg Incisive Unified Simulator Incisive Unified Simulator (integrerad kodtäcknig) Lanserad i mars 2003 Analyskategorier: –Programsatstäckning –Vägtäckning –Villkorstäckning –Variabletäckning –Blocktäckning –Täckning i fsm 21
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg NC-Sim NC-Sim (integrerad kodtäckning) Simulator Kodtäckning integrerad med kärnan 22
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg ModelSim ModelSim (integrerad kodtäckning) Simulator Resultat av kodtäckningsanalys: exeverade block täckning i procent täckning i staplar 23
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg VCS VCS (integrerad kodtäckning) Simulator (Verilog) OBC (Observed Coverage) Resultat av kodtäckningsanalys 24
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg Scirocco Scirocco (integrerad kodtäckning) Simulator (VHDL) Samma grafiska gränssnitt som VCS Analyskategori –programsatstäckning 25
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg SureCov SureCov (fristående verktyg) Koden färgas efter täckningsanalys. Definition av riktad täckning. Cadence Synopsys Avanti Model Technology Simucad 26
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg SureCov SureCov (fristående verktyg) Koden kopplad till tillståndsdiagram. 27
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg VN-Cover VN-Cover (fristående verktyg) Täckningsresultat uppdelat på analyskategorier. Alla ledande simulatorer 28
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg HDL Score HDL Score (fristående verktyg) Hierarkisk browser Välja bort ej testbar kod Färgkodning Tillståndsdiagram Stöder distrubierad teststimuli Cadence Synopsys Model Technology 29
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg Jämförelse av verktyg 30
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg Jämförelse av verktyg 31
Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg Kodtäckningsanalys Simulering har svaga punkter Täckningsgrad Vägledning vid verifiering Begränsningar Verktyg 32