Contribuições à verificação funcional ajustada por cobertura para núcleos de hardware de comunicação e multimídia. - Romero Tobar, Edgar Leonardo (2010)
Tornar a verificação funcional mais eficiente, em termos de gasto de recursos de computação e tempo, é necessário para a contínua evolução dos sistemas digitais. A verificação funcional com geração de casos de teste aleatória ajustada por cobertura é uma das alternativas identificadas nos últimos anos para acelerar a execução de testbenches. Várias abordagens têm sido testadas com sucesso na verificação funcional de núcleos de hardware, no domínio de aplicação dos processadores de propósito geral, porém, influenciada por características específicas do domínio, dos modelos de cobertura e do espaço possível de casos de teste. Por outro lado, pouca atenção tem sido dispensada à verificação ajustada por cobertura em outros domínios de aplicação como nos de sistemas de comunicação e de sistemas multimídia. Estes casos são tratados no presente estudo, com os fatores específicos que influenciam os resultados dos testbenches com geração ajustada. Entre os fatores relevantes para isto, foram identificados o tamanho do espaço de casos de teste e a distribuição da ocorrência dos eventos de cobertura, sendo necessária para o desenvolvimento do presente trabalho, a realização de várias alterações na construção de testbenches com ajuste. A geração de casos de teste ajustada por cobertura é realizada a partir da realimentação da informação do estado da cobertura, para se determinar os casos de teste necessários para tornar o progresso da cobertura mais rápido. Esta realimentação depende da criação, por aprendizado automático, de modelos que relacionem os casos de teste com as ocorrências dos eventos de cobertura. Com núcleos de hardware realistas e de grande porte, neste trabalho, foram aplicadas as técnicas de aprendizado de redes Bayesianas e data mining com árvores de classificação, já utilizados em outras pesquisas mais específicas. Estas técnicas se caracterizam por requerer processos de maximização local para seu funcionamento. Neste trabalho, foi avaliada também a adoção da técnica de Support Vector Machine (SVM), por se basear em um processo de maximização global. Os resultados demonstram que as técnicas de geração de casos de teste ajustadas por cobertura precisam ser adaptadas às características do domínio de aplicação, para conseguir acelerar a execução dos testbenches.