Ir para o conteúdo

Técnicas de Utilização

Com base nas instruções existentes, diversas técnicas podem ser utilizadas para a execução dos testes, incluindo: execução manual, execução até um ponto de parada e execução por páginas.

Execução Manual

A execução manual é realizada através da execução manual do fluxo após o carregamento dos testes na memória. Isso inclui tarefas como "resetar" o processador e gerar manualmente N pulsos de clock. O pseudo código abaixo ilustra essa abordagem:

Obter o ID e verificar o funcionamento do módulo;

Escrever N posições a partir do acumulador;

Resetar o Core;

Enviar N pulsos de CLK;

Ler a posição N de memória.

# Se necessário mais M pulsos de CLK

Enviar N pulsos de CLK

Execução Até Ponto de Parada (UNTIL)

A infraestrutura permite a execução automática de um teste utilizando a técnica de ponto de parada. Com essa técnica, após carregar os testes na memória, basta definir um ponto de parada e um timeout em ciclos de clock. Com esses parâmetros definidos, é possível enviar a instrução para executar até o ponto de parada e aguardar a conclusão. O pseudo código para esse processo é apresentado abaixo:

Obter o ID e verificar o funcionamento do módulo;

Escrever N posições a partir do acumulador;

# Carregar endereço do ponto de parada

Definir endereço N de término da execução;

Setar timeout;

Executar até o ponto de parada.

Execução por Páginas

Para a execução de vários testes em sequência, é possível utilizar um sistema baseado em paginação. Nesse sistema, os testes são armazenados em blocos de tamanho fixo, por padrão 256 posições, e o controlador navega por esses blocos controlando os bits mais significativos do endereço. O funcionamento é semelhante ao da execução até um ponto de parada, mas o processo é repetido até a execução de todas as páginas. O pseudo código a seguir ilustra esse processo:

Obter o ID e verificar o funcionamento do módulo;

Escrever N posições a partir do acumulador;

# Carregar endereço do ponto de parada - o endereço precisa ser menor ou igual ao endereço máximo da página, por padrão 0xFF

Definir endereço N de término da execução;

Setar timeout;

Executar testes em memória.

Fluxo de Dados

É possível enviar e ler dados para a memória de duas formas: atômica (palavra por palavra) ou em lote, enviando N palavras de uma vez.

Carregamento Atômico

O carregamento atômico é realizado lendo e escrevendo dados palavra por palavra. Esse método pode ser executado utilizando as seguintes instruções: "Escrever na posição N de memória", "Escrever N na posição do acumulador", "Ler a posição N de memória" e "Ler a posição do acumulador". Ao utilizar instruções baseadas em valores imediatos, é necessário enviar a instrução M vezes para ler ou escrever M palavras. Quando se utiliza o acumulador, é necessário definir o ponteiro do acumulador M vezes e executar as instruções de leitura e escrita M vezes. Dessa forma, o uso dessas instruções é mais adequado para pequenas modificações, como ler um resultado ou ler/escrever uma ou duas palavras na memória.

Carregamento em Lote

O carregamento em lote permite ler ou escrever M palavras utilizando apenas uma ou duas instruções. Com esse método, é necessário apenas carregar o endereço base no acumulador e utilizar as instruções de leitura em lote para ler ou escrever M palavras. As instruções de operação em lote são: "Ler N posições a partir do acumulador" e "Escrever N posições a partir do acumulador".