• Nenhum resultado encontrado

Testes de funcionamento

8.3 Testes desenvolvidos

Para verificac¸˜ao do correcto funcionamento do sistema de testes e dos n´ucleos desenvolvidos, foram desenvolvidos testes para cada n´ucleo utilizado. Como n˜ao poderia deixar de ser, e tal como foi menci-onado anteriormente, o n´ucleo UART tem de ser testado antes de todos os outros.

8.3.1 UART

O teste desenvolvido para o n´ucleo UART espera enviar e receber a mensagem de texto ”Uart Test\n”.

Para esse efeito, o FuseSoC envia a mensagem, o SoC faz um pedido de leitura ao n´ucleo UART e depois de ter recebido a mensagem volta a envi´a-la pela UART. Enquanto isso, o FuseSoC fica `a espera de receber a mensagem do SoC e se esta for igual `a mensagem enviada d´a o teste como executado com sucesso.

Simulador Verilator

No caso de ser utilizado o simulador Verilator, o FuseSoc escreve a mensagem no ficheiro FIFO TX que ser´a lida pelo m´odulo UART dotestbench, o qual a enviar´a ao SoC pela interface UART. Depois a mensagem ser´a enviada no sentido inverso do SoC para otestbench, que depois a escreve no ficheiro FIXO RX que ser´a lido pelo FuseSoc.

Placa de FPGA

No caso do teste ser na placa de FPGA n˜ao ´e necess´ario alterar qualquer parˆametro pois este j´a utiliza o conversor USB para UART. O m´odulo de testes do FuseSoc apenas escreve ou lˆe a mensagem dos dispositivos de entrada/sa´ıda disponibilizados pelo sistema operativo.

8.3.2 SPI

O teste ao n´ucleo de SPI consiste em escrever para o n´ucleo numa determinada posic¸˜ao de mem´oria e voltar a ler do mesmo enderec¸o a informac¸˜ao que l´a se encontra. Se a palavra lida for igual `a escrita,

´e considerado que o n´ucleo est´a a funcionar correctamente. Ent˜ao, o SoC realiza este teste e indica se teve sucesso ou n˜ao, comunicando com o FuseSoC pelo n´ucleo UART.

Simulador Verilator

No caso de ser utilizado o simulador Verilator, ser´a simulado o n´ucleo SPI que se encontra ligado ao barramento Wishbone do processador. O escravo SPI ´e constitu´ıda por uma mem´oria e foi desenvolvido no decorrer da tese.

Placa de FPGA

No teste do n´ucleo SPI na placa de FPGA utilizou-se o conversor digital anal´ogico existente na placa, o qual possui uma interface SPI.

Neste perif´erico a escrita SPI serve para identificar o pino que pretendemos ler e a leitura devolve a convers˜ao para digital da tens˜ao anal´ogica no pino. Colocou-se nesse pino uma tens˜ao de 5V para se distinguir dos outros pinos existentes. O SoC lˆe a tens˜ao no pino por SPI e se a resposta deste confirmar o valor de tens˜ao considera-se que a interface SPI lˆe e escreve correctamente.

8.3.3 I2C

Para o n´ucleo I2C o teste ´e semelhante ao do n´ucleo SPI. ´E escrito um byte para um determinado enderec¸o de mem´oria e em seguida ´e lido esse mesmo enderec¸o. Caso o valor lido for igual ao valor escrito considera-se que on ´ucleoI2C est´a a funcionar correctamente. Caso contr´ario o n´ucleo I2C est´a a funcionar incorrectamente. Em ambos os casos o FuseSoc ´e informado por mensagem do resultado do teste.

Simulador Verilator

O teste utilizando o simulador Verilator usa os dois n´ucleos I2C desenvolvidos: o mestre I2C ´e ligado ao barramento Wishbone do processador e o escravo I2C ´e ligado a um n´ucleo que essencialmente ´e constitu´ıdo por uma mem´oria interna.

Placa de FPGA

A placa tem dispon´ıvel uma pequena mem´oria n˜ao vol´atil com interface I2C, que ´e utilizada para escre-ver e ler um byte do mesmo enderec¸o. Se estes bytes coincidirem considera-se que o n´ucleo I2C se encontra a funcionar correctamente.

8.3.4 Interface FIFO

A Interface FIFO foi desenvolvida para ser ligada a m´odulos do utilizador. Este n´ucleo ´e testado ligando a interface FIFO de sa´ıda `a de entrada, de forma a que sempre que se escreve para o este n´ucleo a mesma mensagem ´e devolvida no sentido inverso.

Assim o SoC escreve para o n´ucleo e depois lˆe do mesmo. Se a mensagem recebida for igual `a mensagem enviada considera-se que o n´ucleo funciona correctamente.

Simulador Verilator

No simulador verilador a ligac¸˜ao entre a sa´ıda e entrada da interface FIFO ´e feita notestbench.

Placa de FPGA

Para o caso do teste na placa de FPGA da interface FIFO, a ligac¸˜ao entre a sa´ıda e entrada da interface FIFO ´e feita na pr´opria FPGA.

8.3.5 Boot ROM

Para o teste do n´ucleo Boot ROM, faz-se com que o programa carregado para a mem´oria principal envie a mensagem ”ROM OK\n”pela UART. Caso esta mensagem seja recebida correctamente pelo FuseSoC considera-se que o n´ucleo est´a a funcionar correctamente.

Para facilitar o desenvolvimento e os testes, as plataformas est˜ao desenvolvidas para que o pro-grama seja carregado directamente da mem´oria principal e o arranque do propro-grama seja feito a partir do enderec¸o da mem´oria principal, sem recurso `a Boot ROM. Mas neste teste quer-se testar o carre-gamento do programa na mem´oria principal como aconteceria na vida real. Ou seja o SoC comec¸a por executar o programa na Boot ROM, a qual carrega o programa principal de uma outra mem´oria com uma interface SPI, a qual simula, por exemplo, um cart˜ao de mem´oria SD.

Simulador Verilator

Em simulac¸˜ao pode-se acrescentar facilmente mem´orias ao SoC. O FuseSoc utiliza ent˜ao uma Boot ROM que tem a sub-rotina de carregamento do programa principal na mem´oria de instruc¸˜oes em vez da que est´a por defeito no sistema e que apenas efectua o salto para a mem´oria principal, admitindo que o programa j´a l´a est´a carregado.

Placa de FPGA

Na placa de FPGA n˜ao temos dispon´ıvel a quantidade de mem´oria necess´aria para o sistema, nem podemos acrescentar facilmente mais mem´oria. Por isso usamos a unica mem´oria dispon´ıvel na placa, utilizando os bits mais significativos para diferenciar secc¸˜oes. Assim podemos simular que temos v´arias mem´orias um pouco mais pequenas, permitindo assim a simulac¸˜ao do carregamento do programa. No entanto n˜ao foi poss´ıvel testar a interface SPI simulando a utilizac¸˜ao do cart˜ao SD.

Documentos relacionados