Teach Lecciones con laboratorios remotos

Lección Teach

Nios V en la DE1-SoC (5/5): pequeña interfaz de usuario para un sistema embebido

El alumnado diseña con Nios V una pequeña interfaz de usuario para un sistema embebido, con controles lógicos del laboratorio remoto y salidas visibles en la placa: combina entradas NSW, salidas LEDR y un periférico adicional —visualizador HEX o temporizador de intervalo—, entrega el código y aporta evidencias de tres pruebas realizadas con hardware real.

  • Nios V para DE1-SoC
  • 50 min
  • Primeros cursos universitarios de informática, electrónica o ingeniería de computadores
  • Español
  • Sistemas digitales y FPGA · Sistemas embebidos

¿Primera vez que activas Teach? Puedes realizar una sesión de clase sin costo. El alumnado entra con un código de clase.

Diagrama: NSW0..NSW9 y, opcionalmente, NB0..NB3 entran en un programa en C o en ensamblador RISC-V; el programa controla LEDR0..LEDR9 y usa HEX o el temporizador. Indica que se debe empezar por algo sencillo —un patrón de entrada y una regla visible—, probar en hardware real al menos tres casos y explicar la dirección y función de cada registro y la ruta completa de los datos. Una advertencia indica que no se debe usar un SOF personalizado, depuración a nivel de código fuente, VGA, audio, ADC, PS/2, ejercicios de FPGAcademy basados en KEY0..KEY3 ni otros periféricos o flujos fuera del alcance de la actividad.
Nios V para DE1-SoC · Ver información del laboratorio

Resultados de aprendizaje

  • Diseñar una funcionalidad embebida sencilla mediante E/S mapeada en memoria.

  • Elegir C o ensamblador RISC-V según las ventajas e inconvenientes de cada implementación.

  • Usar NSW/LEDR y al menos un periférico adicional disponible en esta actividad.

  • Usar opcionalmente NB0..NB3 como entradas lógicas de botón por JP1.

  • Entregar el código, la explicación y evidencias obtenidas con hardware real.

Vista previa de la actividad del estudiante

Contenido de la actividad

Solo vista previa. En una sesión de clase, los estudiantes pueden completar respuestas y entregar su trabajo al docente.

1

Propuesta de diseño

8 min

Antes de empezar, debes haber completado las lecciones 1 a 4. Esta actividad retoma los flujos de trabajo de los IDE de C y ensamblador, la E/S mediante JP1, la programación y los periféricos de esas lecciones; no puede realizarse de forma independiente.

Diseña un pequeño programa para el sistema Nios V de la DE1-SoC. Parte de un ejemplo de una lección anterior y adáptalo; en esta versión de 50 minutos no empieces con un archivo vacío.

El espacio de trabajo del IDE se conserva para tu cuenta. Siempre que sea posible, realiza el trabajo previo y el proyecto final en el mismo espacio de trabajo y durante la misma sesión en directo. Si caduca la sesión con la placa, vuelve a abrir el espacio de trabajo completo que se ha conservado, haz clic en Build ELF y vuelve a usar Enviar a la FPGA antes de probarlo.

Tu programa debe usar:

- Al menos uno de los controles NSW0..NSW9, mediante los bits 5 a 14 de JP1.
- Al menos una de las salidas LEDR0..LEDR9.
- Al menos un periférico adicional usado en la lección 4: visualizador HEX o temporizador de intervalo.

Puedes programar en C o en ensamblador RISC-V. Usa C si quieres centrarte en el comportamiento y los registros. Usa ensamblador solo si ya puedes seguir con soltura la ejecución del bucle de carga, almacenamiento, desplazamiento, enmascarado y salto de la lección 3.

La entrada obligatoria debe elegirse entre los controles NSW0..NSW9, que llegan mediante los bits 5 a 14 de JP1. Si añades botones opcionales, NB0..NB3 llegan mediante los bits 0 a 3 de JP1. No uses ejercicios de FPGAcademy basados en las entradas físicas KEY0..KEY3 en esta versión de la actividad.

Referencias para el diseño:

- Usa el manual FPGAcademy DE1-SoC Computer with Nios V para el mapa de memoria fijo del sistema y los registros del visualizador HEX y del temporizador.
- Usa la lección 2 para la ruta de NSW a JP1 y de JP1 a LEDR empleada en este taller.
- Usa la lección 4 para las rutas del visualizador HEX, el temporizador y los botones NB opcionales empleadas en este taller.

Diagrama: NSW0..NSW9 y, opcionalmente, NB0..NB3 entran en un programa en C o en ensamblador RISC-V; el programa controla LEDR0..LEDR9 y usa HEX o el temporizador. Indica que se debe empezar por algo sencillo —un patrón de entrada y una regla visible—, probar en hardware real al menos tres casos y explicar la dirección y función de cada registro y la ruta completa de los datos. Una advertencia indica que no se debe usar un SOF personalizado, depuración a nivel de código fuente, VGA, audio, ADC, PS/2, ejercicios de FPGAcademy basados en KEY0..KEY3 ni otros periféricos o flujos fuera del alcance de la actividad.

Un proyecto final satisfactorio mantiene un diseño pequeño: elige entradas disponibles en esta actividad, implementa una única funcionalidad clara en C o ensamblador RISC-V, observa la salida LEDR y el efecto del periférico adicional y registra evidencias.

Limita el alcance deliberadamente. Es mejor un proyecto final terminado que un diseño ambicioso imposible de probar. El comportamiento mínimo viable debe seguir este patrón: un patrón de entrada, una regla de salida visible y un efecto de un periférico de extensión.

¿Qué opción de implementación usarás?

Describe la funcionalidad que quieres implementar. Incluye qué controles NSW usarás, qué salida LEDR observarás y qué periférico adicional —visualizador HEX o temporizador de intervalo— utilizarás. Si añades NB0..NB3, explica su función opcional.

Indica la versión mínima que seguiría cumpliendo los requisitos. Por ejemplo: «NSW0..NSW3 seleccionan un valor, LEDR0..LEDR3 reflejan esos cuatro bits y HEX0 muestra el mismo valor hexadecimal».

2

Restricciones

6 min

Tu diseño debe mantenerse dentro del flujo Nios V actual de LabsLand:

- No cargues un .sof personalizado.
- No dependas de depuración a nivel de código fuente ni de puntos de interrupción.
- No utilices VGA, audio, ADC, PS/2, IrDA, un puerto serie externo, la entrada de vídeo ni ningún otro periférico o flujo fuera del alcance de esta actividad. La salida del terminal JTAG UART sí puede usarse como evidencia complementaria.
- Usa los controles lógicos NSW0..NSW9 de LabsLand. No los confundas con las señales físicas SW0..SW9 de la placa.
- Si usas botones, llámalos NB0..NB3 y léelos mediante JP1/GPIO. No los llames KEY0..KEY3.

¿Qué restricción es la más importante para tu diseño y por qué?

3

Compilar y probar

24 min

  1. Abre Nios V C IDE for DE1-SoC o Nios V Assembly IDE for DE1-SoC, según la opción que hayas elegido.

  2. Implementa esa funcionalidad sencilla.

  3. Haz clic en Build ELF.

  4. Haz clic en Enviar a la FPGA para cargar el ELF en la placa.

  5. Prueba al menos tres casos distintos de entrada y salida.

  6. Registra el resultado de cada caso.

Registra al menos tres pruebas distintas de tu proyecto final. Usa una fila por caso de entrada o comportamiento: escribe el caso, predice el resultado visible, pruébalo en la placa y marca el resultado como correcto, fallido o no concluyente.

Caso de prueba Comportamiento esperado Comportamiento observado Resultado

Código final

Captura una única instantánea del espacio de trabajo completo del IDE que utilizaste para las tres pruebas. La instantánea debe incluir todos los archivos, constantes, definiciones de registros, inicialización y lógica necesarios para reproducir el comportamiento probado.

Evidencias de hardware

Entrega un breve resumen de las evidencias de hardware vinculadas al espacio de trabajo completo incluido en la instantánea de código. Para cada uno de los tres casos, relaciona la entrada con el comportamiento de LEDR/HEX que observaste mediante la cámara en directo de la placa real. Puedes añadir la salida del terminal JTAG UART como evidencia complementaria, pero no sustituye las observaciones del hardware mediante la cámara en directo.

4

Explicar el diseño

9 min

Explica qué registros mapeados en memoria utiliza tu programa: indica la dirección y la función de cada uno y describe las rutas de datos pertinentes, desde NSW/JP1 hasta LEDR y la forma en que el programa accede al periférico de extensión.

Compara las ventajas y los inconvenientes de C y del ensamblador RISC-V para este proyecto. Indica qué te resultó más sencillo en el lenguaje elegido y qué habría sido más sencillo en el otro.

5

Preparar la demostración

3 min

Escribe un guion de 30 segundos para mostrar tu programa a otro grupo. Incluye qué hay que pulsar o accionar, qué se debe observar y qué significa el resultado.

Convierte esta vista previa en una sesión de clase real

Activa LabsLand Teach para usar esta lección con tus estudiantes. La primera vez que actives Teach, podrás realizar una sesión de clase sin costo.