• Nenhum resultado encontrado

3.3 Elabora¸ c˜ ao das Bibliotecas

3.4.2 Instrumenta¸ c˜ ao da Netlist

Ap´os selecionado o conjunto de c´elulas que ser˜ao capazes de injetar falhas no sistema ´e poss´ıvel prosseguir para a etapa principal de instrumenta¸c˜ao, a qual transforma efeti- vamente o arquivo netlist original no arquivo instrumentado com capacidade de inje¸c˜ao de falhas. O processo de instrumenta¸c˜ao come¸ca pela leitura da netlist mapeada para tecnologia de 65nm, em seguida, busca-se no arquivo a linha que aponta a entidade de maior hierarquia no projeto, pois esta linha cont´em os sinais que descrevem as entradas e sa´ıdas prim´arias do circuito. ´E nesta mesma linha que s˜ao adicionados os sinais de controle necess´arios para o gerenciamento das campanhas de inje¸c˜ao de falhas. A seguir, a finalidade de cada um dos sinais adicionados ´e detalhada:

• scanin: tem a fun¸c˜ao de selecionar quais c´elulas ter˜ao seus valores alterados durante a inje¸c˜ao de falha atrav´es da altera¸c˜ao do estado l´ogico do sinal no tempo.

• scanout: tem a fun¸c˜ao de garantir que a liga¸c˜ao das c´elulas foi executada correta- mente durante a sele¸c˜ao das c´elulas.

• shift: habilita o deslocamento dos bits na liga¸c˜ao scanin atrav´es dos registradores de modo a selecionar a c´elula.

3.4 Instrumenta¸c˜ao 70

• injector : realiza a altera¸c˜ao do contexto de funcionamento das c´elulas durante seu per´ıodo de ativa¸c˜ao.

• en F F: sinal quantizado do clock original que habilita a carga nos registradores.

Com a adi¸c˜ao destas portas na entidade de maior hierarquia no projeto procura-se agora por instˆancias de c´elulas contidas no arquivo. No caso como est´a sendo utilizado a biblioteca da STMicroeletronics, o padr˜ao na nomenclatura das instˆancias ´e “HS65 GS ” seguida do tipo de c´elula e seu valor de fanout. Portanto, para uma porta l´ogica AND de trˆes entradas com fanout cinco ter´ıamos “HS65 GS AN D3X5” e com a remo¸c˜ao do valor de fanout ter´ıamos “HS65 GS AN D3”. A necessidade da remo¸c˜ao do fanout das c´elulas se deve ao fato de haver uma simplifica¸c˜ao durante a descri¸c˜ao das bibliotecas de instrumenta¸c˜ao em VHDL utilizadas durante a fase de s´ıntese no FPGA, onde as c´elulas s˜ao descritas somente com base em sua fun¸c˜ao l´ogica e n´umero de entradas. Entretanto, nenhuma informa¸c˜ao de atraso ´e extinta pois as mesmas c´elulas contidas neste arquivo juntamente com seus fanouts e atrasos s˜ao descritas no arquivo SDF. Simultaneamente com a remo¸c˜ao do fanout das c´elulas s˜ao acrescentados os parˆametros gen´ericos de tempo de subida, descida e tipo de arquitetura utilizada em todas as c´elulas do circuito indepen- dente da inje¸c˜ao de falhas.

A figura 11 apresenta o fluxograma de instrumenta¸c˜ao, o qual ilustra as principais modifica¸c˜oes necess´arias sobre a netlist original para produzir a netlist instrumentada com capacidade de inje¸c˜ao de falhas. ´E poss´ıvel observar na figura 11 a etapa subse- quente na descri¸c˜ao do algoritmo onde ´e verificado se a c´elula em quest˜ao ´e um elemento sequencial, do tipo registrador de dados. Esta verifica¸c˜ao ´e realizada pois sinais diferentes s˜ao adicionados para c´elulas combinacionais e sequenciais. Para c´elulas combinacionais ´e adicionado o sinal de clock do sistema o qual ser´a respons´avel por compelir os dados atrav´es do registrador de deslocamento respons´avel por emular o atraso das c´elulas. Para c´elulas sequenciais a instancia¸c˜ao da mesma durante o processo de s´ıntese j´a insere o sinal de clock, entretanto, nestas c´elulas ´e necess´ario adicionar o sinal que habilita a carga nos registradores (en F F ) o qual ´e quantizado a partir do clock original do sistema, de forma que a referˆencia de tempo se mantenha constante para ambos os elementos combinacio- nais e sequenciais. Se todas as c´elulas experimentaram este processo a instrumenta¸c˜ao das c´elulas com capacidade de inje¸c˜ao de falha ´e executada, se n˜ao, procura-se a c´elula seguinte do arquivo netlist executando o processo acima descrito at´e que todas as c´elulas tenham sido instrumentadas.

3.4 Instrumenta¸c˜ao 71

3.4 Instrumenta¸c˜ao 72

O processo a seguir contempla as c´elulas que possuir˜ao a capacidade de inserir fa- lhas no circuito em an´alise, para isso ´e necess´ario que exista previamente descrito um arquivo contendo as c´elulas selecionadas para instrumenta¸c˜ao que ser˜ao capazes de inje- tar falhas no sistema. Neste caso, este arquivo foi gerado durante a primeira etapa da instrumenta¸c˜ao na fase de extra¸c˜ao de c´elulas e o conjunto de c´elulas selecionadas est˜ao gravadas em arquivo.

A partir deste ponto ´e realizada a leitura das c´elulas que se deseja instrumentar adicionando a capacidade de injetar falhas na circuito. A primeira linha do arquivo ´e lida e o nome da primeira instˆancia ´e pesquisada no arquivo netlist. Ao encontrar a linha a qual corresponde a instˆancia desta c´elula ´e obtido tamb´em as portas de entrada e sa´ıda desta c´elula. Os sinais (scanin, scanout, shift, injector ) respons´aveis por controlar o local da falha e o momento e a dura¸c˜ao das inje¸c˜oes s˜ao ent˜ao adicionados. Al´em de adicionar as portas para inje¸c˜ao de falhas neste momento ´e tamb´em criado as conex˜oes l´ogicas entre as c´elulas com capacidade de alterar a temporiza¸c˜ao do sistema com o prop´osito de construir uma cadeia de registradores. De modo a selecionar, durante a inje¸c˜ao de falhas, qual a c´elula (ou c´elulas) que ter˜ao seus valores alterados ´e constru´ıda uma cadeia de registradores com as c´elulas com capacidade de inje¸c˜ao. A cadeia de registradores ´e respons´avel por deslocar os bits existes na porta scanin atrav´es de todo o circuito at´e a porta scanout, formando com isso um vetor com todas as c´elulas que devem ser ativadas em uma determinada campanha de inje¸c˜ao de falha.

Em seguida, todas as c´elulas com capacidade de inje¸c˜ao s˜ao sinalizadas. Assim, du- rante a etapa de s´ıntese no FPGA ao realizar a tradu¸c˜ao da netlist para um circuito mapeado para FPGA o processo ao inv´es de buscar pelo circuito descrito na biblioteca de instrumenta¸c˜ao ir´a buscar pelo circuito l´ogico especificado na biblioteca de inje¸c˜ao de fa- lhas, tamb´em descrita em VHDL. Neste momento da instrumenta¸c˜ao ´e realizada tamb´em a escolha do tipo de arquitetura utilizada por esta c´elula, tendo a possibilidade de adotar a arquitetura que emula o comportamento da c´elula com um ´unico atraso para ambas as bordas (subida e descida) ou a arquitetura com atrasos individuais, um para borda de subida e outro para borda de descida. A escolha por uma das arquiteturas dispon´ıveis ´e um compromisso entre a ´area de prototipa¸c˜ao dispon´ıvel e o n´ıvel de detalhamento dese- jado nos ensaios. Ao finalizar esta modifica¸c˜ao na c´elula procura-se pela c´elula seguinte para executar novamente o processo descrito acima at´e que todas as c´elulas presentes no arquivo de c´elulas para inje¸c˜ao tenham sido modificadas no arquivo netlist.

3.4 Instrumenta¸c˜ao 73

Ao finalizar a modifica¸c˜ao das portas das c´elulas descritas na netlist ´e inclu´ıdo o nome dos arquivos de constantes, os quais ser˜ao referenciados como arquivos externos a netlist gerados em uma etapa posterior (gera¸c˜ao de constantes, se¸c˜ao 3.4.4). Estes arquivos contˆem os valores dos parˆametros gen´ericos de borda de subida e descida adicionados a cada c´elula do projeto, cujo o valor descrito no arquivo representa o atraso quantizado da respectiva c´elula no circuito. Dois arquivos s˜ao inclu´ıdos na netlist, um para descrever os atrasos normais de todas as c´elulas do circuito e outro que cont´em apenas os atrasos com valores alterados das c´elulas com capacidade de inje¸c˜ao de erro. Incluir os atrasos quantizados em arquivos diferentes facilita a gera¸c˜ao de m´ultiplos casos de teste sobre o mesmo conjunto de c´elulas sem a necessidade de alterar o arquivo netlist.

Ap´os a conex˜ao das portas a netlist modificada ´e gravada em um novo arquivo ({projeto} instrumentado.v) o qual ser´a utilizado posteriormente na etapa de s´ıntese no FPGA.

Documentos relacionados