Lição do Teach
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.
Entre com uma conta de professor para preparar uma sessão. Os estudantes entram com um código da turma.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor
Objetivos de aprendizagem
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.
Visualização da atividade do estudante
Conteúdo da atividade
Apenas visualização. Em uma sessão de aula, os estudantes podem preencher respostas e entregar o trabalho ao professor.
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..NSW9ou outra fonte de entrada validada.LEDR0..LEDR9ou 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
NSWpara JP1 e depois paraLEDR. - Use a Lição 4 para rever os caminhos validados do display HEX, do temporizador e, opcionalmente, dos botões
NB.
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”.
Restrições
6 min
Seu projeto deve permanecer dentro do fluxo atual do LabsLand para Nios V:
- Não envie um arquivo
.sofpersonalizado. - 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..NSW9para os controles lógicos de chaves do LabsLand. Não os chame de porta físicaSW0..SW9. - Se usar botões, chame-os de
NB0..NB3e leia-os via JP1/GPIO. Não os chame deKEY0..KEY3.
Qual restrição é mais importante para o seu projeto? Por quê?
Compilar e testar
24 min
Abra a opção Nios V CodeIDE para C ou assembly.
Implemente o pequeno comportamento planejado.
Clique em
Build ELF(Compilar ELF).Envie o arquivo para a FPGA com
Upload to FPGA.Teste pelo menos três casos de entrada e saída.
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.
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?
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.
Transforme esta visualização em uma sessão de aula
Continue para o LabsLand Teach para usar esta lição com seus estudantes e conferir o acesso disponível para sua conta.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor