• No results found

Funcionamento

A ferramenta V2T foi desenvolvida com o intuito de auxiliar o processo de verifica¸c˜ao

em n´ıvel de sistema analisando as informa¸c˜oes coletadas na simula¸c˜ao. Esta ´e formada por trˆes m´odulos que s˜ao: o primeiro ´e respons´avel pela visualiza¸c˜ao de formas de onda, o segundo pela visualiza¸c˜ao das primitivas gr´aficas e o ´ultimo ´e respons´avel por verificar automaticamente comparando as primitivas da implementa¸c˜ao com as da especifica¸c˜ao. Esta ferramenta necessita de trˆes arquivos de entrada, s˜ao estes:

• um arquivo em um formato VCD com todos os sinais utilizados na verifica¸c˜ao em baixo n´ıvel de abstra¸c˜ao, como indicadores de asser¸c˜oes violadas, sinais vitais do datapath, dentre outros;

• um arquivo com as propriedades de cada pixel escrito na mem´oria de tela e seus atributos vinculados com o tempo de simula¸c˜ao fornecido pelo simulador, denomindado de VSIM; e

• um arquivo com o caso de teste que gerou os dois primeiros arquivos para ser utilizado no modulo de verifica¸c˜ao.

Por meio destes arquivos, a ferramenta fornece dois mecanismos importantes: a inte- gra¸c˜ao entre dois n´ıveis de abstra¸c˜ao e a verifica¸c˜ao gr´afica e autom´atica.

A integra¸c˜ao entre os dois n´ıveis de abstra¸c˜ao ´e poss´ıvel porque os arquivos VSIM e VCD armazenam as primitivas e o sinais em RTL vinculados com o tempo, respec- tivamente, como mostra a Figura 3.6. Este mecanismo torna o processo de depura¸c˜ao muito mais eficiente. J´a que, selecionada uma janela de tempo ∆t, ´e poss´ıvel detectar, por exemplo, qual pulso de write enable na mem´oria dos sinais em RTL ocasionou o desenho de um pixel errado na primitiva gr´afica (um caso real de verifica¸c˜ao por meio deste mecanismo ´e mostrado na se¸c˜ao 5.2.1).

A Figura 3.6 mostra, al´em dos gr´aficos com as informa¸c˜oes fornecidas pelos arquivos VSIM e VCD, um outro gr´afico denominado de Asser¸c˜oes. Este gr´afico mostra se alguma asser¸c˜ao foi violada durante a execu¸c˜ao do caso de teste e se esta ocasionou um erro em uma primitiva gr´afica (ver Figura 3.6). Este processo facilita ainda mais o processo de verifica¸c˜ao do bloco de computa¸c˜ao gr´afica (ver detalhes na se¸c˜ao 5.2.2). ´

E importante ressaltar que a viola¸c˜ao de uma asser¸c˜ao pode ou n˜ao causar um erro na primitiva gr´afica, isto depender´a do tipo de asser¸c˜ao instanciada.

O mecanismo de verifica¸c˜ao gr´afica e autom´atica ´e executado quando o usu´ario o solicita atrav´es de uma a¸c˜ao na interface da ferramenta. Inicialmente, a ferramenta V2T carrega, por meio do arquivo VSIM, as primitivas desenhadas na simula¸c˜ao em

t t t Arquivo VSIM Arquivo VCD Asserções Asserção violada! t

Erro na primitiva gráfica

Janela de inspeção

Figura 3.6: Mecanismo de integra¸c˜ao entre dois n´ıveis de abstra¸c˜ao.

executada pela especifica¸c˜ao execut´avel embutida dentro da ferramenta V2T . Como

as instru¸c˜oes s˜ao primitivas gr´aficas, cada uma destas escreve na tela pixel por pixel algum desenho. Se durante a execu¸c˜ao de uma destas instru¸c˜oes algum pixel n˜ao estiver na tela, significa que esta mesma instru¸c˜ao n˜ao foi executada de forma correta durante a simula¸c˜ao. J´a que o desenho da tela ´e o resultado das primitivas gr´aficas da implementa¸c˜ao em RTL. Por isso, a ferramenta mostra que esta instru¸c˜ao esta errada na implementa¸c˜ao (ver detalhes na se¸c˜ao 5.2.3).

Al´em disso, ap´os a verifica¸c˜ao autom´atica, a ferramenta possibilita que o usu´ario efetue diferen¸cas visuais entre as primitivas da especifica¸c˜ao e implementa¸c˜ao facili- tando a visualiza¸c˜ao dos pixels que n˜ao est˜ao de acordo (ver detalhes na se¸c˜ao 5.2.3).

Implementa¸c˜ao

Como descrito anteriormente, a ferramenta V2T necessita de um visualizador de formas

de onda e de um visualizador gr´afico para mostrar as primitivas de sa´ıda do bloco de computa¸c˜ao gr´afica em hardware. Com o intuito de aprofundar no m´erito do trabalho que ´e propor, analisar e validar a arquitetura de verifica¸c˜ao proposta, optou-se por utilizar um visualizador de forma de onda j´a existente integrando-o a V2T .

Para que este pudesse ser integrado com o visualizador das primitivas e o m´odulo verificador, foi necess´ario que o mesmo fosse c´odigo aberto. Dentre os visualizado- res existentes com estes requisitos destacam-se o Dinotrace [50] e o GTKWave [15]. O GTKWave foi escolhido porque possui um c´odigo fonte mais bem documentado, o que facilita o trabalho de integra¸c˜ao com os outros m´odulos. Al´em disso, este soft- ware possui uma equipe de desenvolvimento bem ativa o que facilita o intercˆambio de informa¸c˜oes e a resolu¸c˜ao de problemas.

O visualizador gr´afico da ferramenta V2T foi desenvolvido com a biblioteca gr´afica

GTK. J´a o m´odulo verificador nada mais ´e do que a pr´opria especifica¸c˜ao execut´avel desenvolvida no primeiro est´agio da arquitetura.

Para a gera¸c˜ao dos arquivos necess´arios para a ferramenta V2T , o simulador esco-

lhido foi o GPL CVER [51] que ´e um simulador de Verilog HDL distribu´ıdo sobre a licen¸ca GPL. Este simulador implementa todas as funcionalidades definidas pelo padr˜ao IEEE 1364 de simuladores Verilog. Al´em disso, o mesmo implementa a maioria das caracter´ısticas da revis˜ao do padr˜ao Verilog divulgada em 2001.

Esta se¸c˜ao fornece apenas uma introdu¸c˜ao e conceitua¸c˜ao da necessidade e algu- mas caracter´ısticas da ferramenta V2T . Exemplos de sua aplica¸c˜ao s˜ao mostrados no

cap´ıtulo 5.