Teach Remote lab lessons

Teach lesson

Nios V na DE1-SoC (5/5): pequena interface embarcada de hardware

Projete uma pequena interface embarcada no Nios V combinando entradas, LEDs, saída HEX, código enviado e evidências de testes no hardware real.

  • Nios V for DE1-SoC
  • 50 min
  • Graduação em Ciência ou Engenharia da Computação
  • Português (Brasil)
  • Digital systems & FPGA · Embedded systems
Nios V for DE1-SoC
Nios V for DE1-SoC · Lab details

Learning Outcomes

  • Projetar um pequeno comportamento embarcado usando E/S mapeada em memória.

  • Escolher C ou assembly RISC-V com base nas vantagens de cada implementação.

  • Usar NSW/LEDR e pelo menos um periférico de extensão validado.

  • Usar opcionalmente NB0..NB3 como entradas lógicas de botões via JP1.

  • Entregar código, explicação e evidências de testes no hardware.

Student activity preview

Activity Content

Preview only. In a class session, students can fill in responses and submit their work to the teacher.

1

Resumo do projeto

8 min

Projete um pequeno programa para o sistema Nios V da DE1-SoC. Comece com um exemplo de uma lição anterior e adapte-o; não comece com um arquivo em branco nesta versão de 50 minutos. Seu programa deve usar:

Cada nova abertura do laboratório restaura o código inicial. “Começar com um exemplo de uma lição anterior” significa copiar ou recriar a parte relevante desse exemplo e adaptá-la para este projeto final. As alterações feitas por você em uma sessão anterior não são transferidas automaticamente para a nova sessão.

- NSW0..NSW9 ou outra fonte de entrada validada.
- LEDR0..LEDR9 ou outra fonte de saída validada.
- Pelo menos um periférico de extensão validado da Lição 4: display HEX ou temporizador de intervalo.

Você pode programar em C ou em assembly RISC-V. Use C se quiser se concentrar no comportamento e no uso dos registradores. Use assembly somente se já conseguir acompanhar com segurança o laço da Lição 3 que carrega, armazena, desloca, aplica máscaras e salta.

As fontes de entrada validadas são NSW0..NSW9 nos bits 5 a 14 do JP1 e NB0..NB3 nos bits 0 a 3 do JP1. Não use exercícios da FPGAcademy baseados no registrador KEY0..KEY3 nesta versão autocontida; o perfil validado atual usa NB0..NB3 como entradas semelhantes a botões.

Referências para o projeto:

- Use o manual FPGAcademy DE1-SoC Computer with Nios V para consultar o mapa de memória do sistema fixo e os registradores do display HEX e do temporizador.
- Use a Lição 2 para rever o caminho validado de NSW para JP1 e depois para LEDR.
- Use a Lição 4 para rever os caminhos validados do display HEX, do temporizador e, opcionalmente, dos botões NB.

Padrão de projeto final que conecta entradas validadas, o programa do estudante, saídas validadas e evidências.

Um bom projeto final mantém o escopo reduzido: escolha entradas validadas, programe um comportamento claro em C ou assembly, observe saídas validadas e registre evidências.

Mantenha deliberadamente um escopo pequeno. Um projeto final concluído é melhor do que uma ideia ambiciosa que não pode ser testada. O comportamento mínimo viável deve seguir este padrão: uma combinação de entrada, uma regra de saída visível e um efeito de um periférico de extensão.

Qual caminho de implementação você usará?

Descreva o comportamento que você pretende criar. Inclua a entrada, a saída e o periférico de extensão que usará.

Indique a menor versão que ainda contaria como sucesso. Por exemplo: “NSW0..NSW3 selecionam um valor, LEDR0..LEDR3 o reproduzem e HEX0 exibe o mesmo nibble menos significativo”.

2

Restrições

6 min

Seu projeto deve permanecer dentro do fluxo atual do LabsLand para Nios V:

- Não envie um arquivo .sof personalizado.
- Não dependa de depuração no nível do código-fonte nem de pontos de interrupção.
- Não use fluxos de VGA, áudio, ADC, PS/2, IrDA, porta serial ou entrada de vídeo.
- Use NSW0..NSW9 para os controles lógicos de chaves do LabsLand. Não os chame de porta física SW0..SW9.
- Se usar botões, chame-os de NB0..NB3 e leia-os via JP1/GPIO. Não os chame de KEY0..KEY3.

Qual restrição é mais importante para o seu projeto? Por quê?

3

Compilar e testar

24 min

  1. Abra a opção Nios V CodeIDE para C ou assembly.

  2. Implemente o pequeno comportamento planejado.

  3. Clique em Build ELF (Compilar ELF).

  4. Envie o arquivo para a FPGA com Upload to FPGA.

  5. Teste pelo menos três casos de entrada e saída.

  6. Registre o resultado de cada caso.

Registre pelo menos três testes do seu projeto final. Use uma linha por caso de entrada ou comportamento: descreva o caso, preveja o resultado visível, teste na placa e marque passou, falhou ou incerto.

Caso de teste Comportamento esperado Comportamento observado Resultado

Entregue o código-fonte final ou o laço ou função principal, se o arquivo completo for muito longo.

Entregue um breve resumo das evidências obtidas no hardware. Inclua a saída do terminal, observações dos LEDs ou displays HEX e capturas de tela, se disponíveis.

4

Explicar o projeto

9 min

Explique quais registradores mapeados em memória seu programa usa e o que cada um deles faz.

O que foi mais fácil na linguagem escolhida? O que teria sido mais fácil na outra linguagem?

5

Preparar a demonstração

3 min

Escreva um roteiro de 30 segundos para demonstrar seu programa a outro grupo. Inclua o que clicar ou pressionar, o que observar e o que o resultado significa.