Universidade Estadual de Feira de Santana (UEFS)
Disciplina: Sistemas Digitais (TEC499) - 2025.2, UEFS
Equipe: Luis Felipe Carneiro Pimentel e Walace de Jesus Venas
- Índice
- 1. Descrição e Objetivo do Projeto
- 2. Levantamento de Requisitos e Solução
- 3. Arquitetura Geral da Solução
- 4. Estrutura dos Módulos (HPS e FPGA)
- 5. Instalação, Configuração e Integração
- 6. Fluxo de Dados Entre HPS e FPGA
- 7. Testes, Resultados e Validação
- 8. Referências Cruzadas: Documentação Específica
Este projeto integra um sistema completo de processamento de zoom de imagens em escala de cinza (8 bits/pixel) para o kit DE1-SoC. A lógica central reside na divisão funcional:
- O HPS (ARM) cuida da interface com o usuário, da manipulação de arquivos BMP, comandos via menu interativo e comunicação com o hardware através de Assembly.
- O FPGA (Cyclone V) implementa o coprocessador dedicado, recebendo comandos, processando algoritmos de zoom, e retornando dados e flags de estado. O objetivo é criar uma solução robusta, modular e expansível, documentada de forma que futuros usuários/engenheiros possam compreender, replicar, manter e aprimorar.
- Manipulação correta de imagens BMP e integração com o coprocessador.
- Implementação de ISA enxuta para operações de zoom, replicação e decimação.
- Comunicação eficiente entre HPS e FPGA via barramentos PIO (Parallel Input/Output), com controle de delays e sinalização de status.
- Interface de usuário clara e facilitada.
- Resultados visíveis em monitor VGA.
- HPS e FPGA conectados via sistema Qsys(Platform Designer).
- Separação total entre lógica de interface/controle (HPS) e lógica de processamento (FPGA).
- Estrutura modular, favorecendo manutenção e expansão.
Mais detalhes sobre os requisitos e solução específica em cada componente estão nos seus respectivos READMEs:
• README HPS
• README FPGA
U[Usuário]
M[Menu de Alta Nível (HPS)]
BMP[BMP Loader]
ASM[API Assembly]
PIO[Registradores PIO]
FPGA[Coprocessador FPGA]
VGA[Monitor VGA]
U --> M
M --> BMP
M --> ASM
ASM --> PIO
PIO --> FPGA
FPGA --> VGA
FPGA --> PIO
PIO --> ASM
Descrição:
- O usuário interage com o menu HPS.
- Imagens BMP são selecionadas e carregadas pelo HPS.
- API Assembly monta e envia comandos via registradores PIO.
- FPGA recebe a instrução, processa e retorna status/resultados.
- A imagem processada é visualizada via monitor VGA.
- Interface de navegação via menus.
- Gerenciamento de arquivos BMP.
- API Assembly para controle direto do hardware e sincronização.
Mais detalhes: README HPS
- Implementação da ISA customizada.
- FSM e Datapath para zoom e manipulação de VRAM.
- Flags de status para monitoramento e depuração.
Mais detalhes: README FPGA
Resumo dos passos principais:
- Instalar ambiente Linux e ferramentas ID/compilação HPS.
- Realizar upload do bitstream do FPGA (projeto pronto e validado).
- Instalar, compilar e executar o software HPS conforme instruções individuais.
- Verificar conexão física HPS ↔ FPGA.
- Testar operações iniciais (carregar imagem, zoom, reset, status).
Para instruções detalhadas de instalação/configuração, acesse:
Resumo do protocolo:
- HPS monta instrução (LOAD, STORE, ZOOM) em formato de 32 bits.
- A instrução é escrita em registrador PIO na FPGA.
- Pulso de enable ativa o processamento.
- FPGA processa, atualiza flags de status, retorna resultado.
- HPS lê flags, exibe resultados para usuário e/ou manipula imagem conforme saída.
Diagrama de sinalização PIO (ver detalhes em cada README):
| Sinal | Direção | Finalidade | Largura |
|---|---|---|---|
| instruct | Entrada | Palavra de comando | 32 bits |
| enable | Entrada | Disparo de processamento | 1 bit |
| flags | Saída | Status do processamento | 4 bits |
| data_out | Saída | Dados lidos pelo HPS | 8 bits |
- Testes unitários e integrados validaram todas operações existentes.
- Erros identificados e corrigidos incluem dimensionamento inadequado de imagens, erros de sincronização entre HPS/FPGA e limites de zoom atingidos corretamente.
- Resultados detalhados com logs, imagens e exemplos estão disponíveis nas seções específicas dos respectivos READMEs.
- Documentação HPS (interface, menus, API Assembly): README HPS
- Documentação FPGA (coprocessador, ISA, blocos internos): README FPGA
- Este README serve como visão geral e guia para integração entre os dois sistemas.
Para dúvidas sobre integração, arquitetura e fluxograma do sistema, consulte os documentos da referência.
Para detalhes de implementação, operação ou depuração, acesse os READMEs específicos de HPS e FPGA acima.
