Este exemplo de projeto de Mandelbrot demonstra o uso do compilador de aceleração C-to-Hardware (C2H) do processador Nios® II integrado. Neste exemplo, o compilador C2H transforma a implementação baseada em C do algoritmo de Mandelbrot em hardware. Este design também contém um controlador de vídeo para exibir vídeo em movimento completo dos valores de pixel calculados.
O padrão Mandelbrot tornou-se um dos fractais mais conhecidos por causa de seus padrões complexos e implementação intensiva de processadores. O algoritmo opera no plano complexo onde o eixo x representa o componente real, e o eixo y representa o componente imaginário. O exemplo executa movimentos para diferentes regiões do plano e também amplia e amplia, criando vídeo em movimento total.
Este exemplo faz uso total do paralelismo executando cálculos de coordenadas em software enquanto os aceleradores de hardware estão em uso. Isso é feito por buffer triplo dos dados de vídeo no SDRAM DDR e usando o processador Nios II integrado para coordenar o fluxo de dados. Toda vez que um framebuffer completo é renderizado pelo acelerador de hardware, os dados são gerenciados pelo processador para sobrepor dados de benchmark e notificar o controlador de vídeo de que um novo buffer está pronto para exibição.
Usando este exemplo de projeto
Este projeto tem como alvo os seguintes kits de desenvolvimento:
- Nios II de avaliação embarcada, Cyclone® III FPGA edição
- Nios II de desenvolvimento embarcado, Cyclone III FPGA edição
Baixe o exemplo Nios II de design do Mandelbrot C2H (arquivo.zip)
Baixe o Nios II exemplo de design de Mandelbrot C2H README (arquivo.txt)
O uso deste design é regido por, e sujeito, aos termos e condições do Contrato de licença de exemplo de projeto Intel®.
Os arquivos .zip contêm todos os arquivos de software necessários para reproduzir o exemplo, bem como um arquivo readme.txt. O arquivo readme.txt contém instruções para reconstruir o design destinado a um design de hardware existente.
Diagrama de blocos
Figura 1. Exemplo de design do compilador C2H Mandelbrot
Resultados acelerados do compilador C2H
O algoritmo de Mandelbrot acelerado pelo compilador C2H resulta em uma melhoria de velocidade de pelo menos 60 vezes em comparação com o mesmo algoritmo rodando no processador Nios II mais rápido usando o nível de otimização do compilador 2 (-O2). Este aumento de velocidade é devido ao paralelismo e velocidades de iteração rápidas que o hardware pode fornecer, o que não é possível a partir de uma unidade de processamento de uso geral.