Repolode
cvut

cvut/qtrvsim

Simulador de CPU RISC-V basado en Qt para enseñar arquitectura de computadoras, con una versión WebAssembly que se ejecuta en el navegador.

Estrellas
651
Forks
97
Issues abiertos
25
Último commit
hace 9 días

¿Qué es?

QtRvSim es un simulador gráfico de CPU RISC-V creado para cursos de arquitectura de computadoras. Carga y ejecuta archivos ELF enlazados estáticamente, de 32 o 64 bits y en formato little-endian; el simulador selecciona XLEN según el encabezado ELF. Incluye un ensamblador integrado básico y puede llamar a una utilidad make externa para compilar el programa que se está editando.

El simulador modela varios periféricos mapeados en memoria: un puerto serie UART, un panel con LED y perilla, un framebuffer LCD RGB565, y dispositivos ACLINT de temporizador e interrupciones de software. También implementa un subconjunto de CSR y manejo de interrupciones, además de algunas llamadas al sistema de Linux, como read, write, openat y exit, para ejecutar programas sencillos.

El proyecto lo desarrolla el grupo de Educación en Arquitectura de Computadoras de la Universidad Técnica Checa. Se puede probar en línea una versión WebAssembly sin instalar nada, aunque está marcada como experimental. Hay paquetes binarios para varias distribuciones de Linux y se compila con Qt 5 o Qt 6 mediante CMake.

Funciones clave

  • 01Ejecuta archivos ELF de RISC-V enlazados estáticamente en modos de 32 y 64 bits.
  • 02Incluye un ensamblador integrado básico que acepta un subconjunto de las directivas de GNU assembler.
  • 03Emula periféricos UART, un panel con LED y perilla, un framebuffer LCD y temporizadores ACLINT.
  • 04Implementa CSR habituales y manejo de interrupciones en modo máquina.
  • 05Ofrece varias llamadas al sistema de Linux para ejecutar programas sencillos.
  • 06Se ejecuta en el navegador mediante una versión WebAssembly.

Casos de uso

  • Enseñar arquitectura de computadoras en cursos de grado o posgrado con un modelo visual de CPU.
  • Demostrar cómo interactúan la E/S serie, las interrupciones y los temporizadores con un programa de RISC-V.
  • Probar pequeños programas en ensamblador o C para RISC-V, compilados con GCC o Clang, antes de ejecutarlos en hardware.

Inicio rápido

  1. 1

    Clona el repositorio con sus submódulos

    git clone --recurse-submodules https://github.com/cvut/qtrvsim.git
  2. 2

    En Linux, ejecuta make en la raíz del proyecto para compilar con el Makefile envoltorio

    make
  3. 3

    O prueba la versión experimental de WebAssembly en el navegador sin instalar nada

Antes de usarlo

  • Está bajo la licencia GPL-3.0, una licencia copyleft que exige que las obras derivadas se publiquen como código abierto bajo las mismas condiciones.
  • Aún no admite las instrucciones RISC-V comprimidas.
  • La versión de WebAssembly es experimental.

Temas

#risc-v#cpu-simulator#computer-architecture#teaching#emulator#webassembly#qt#cpu-emulator

Preguntas frecuentes

¿Qué es qtrvsim?
Simulador de CPU RISC-V basado en Qt para enseñar arquitectura de computadoras, con una versión WebAssembly que se ejecuta en el navegador. QtRvSim es un simulador gráfico de CPU RISC-V creado para cursos de arquitectura de computadoras. Carga y ejecuta archivos ELF enlazados estáticamente, de 32 o 64 bits y en formato little-endian; el simulador selecciona XLEN según el encabezado ELF. Incluye un ensamblador integrado básico y puede llamar a una utilidad make externa para compilar el programa que se está editando.
¿qtrvsim es gratuito? ¿Qué licencia tiene?
qtrvsim es open source bajo la licencia GPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿qtrvsim sigue mantenido?
Mantenimiento activo. El último commit de qtrvsim fue el 29 oct 2026.
¿Para qué puedo usar qtrvsim?
Enseñar arquitectura de computadoras en cursos de grado o posgrado con un modelo visual de CPU. Demostrar cómo interactúan la E/S serie, las interrupciones y los temporizadores con un programa de RISC-V. Probar pequeños programas en ensamblador o C para RISC-V, compilados con GCC o Clang, antes de ejecutarlos en hardware.
¿Cómo se instala qtrvsim?
Clona el repositorio con sus submódulos: git clone --recurse-submodules https://github.com/cvut/qtrvsim.git En Linux, ejecuta make en la raíz del proyecto para compilar con el Makefile envoltorio: make O prueba la versión experimental de WebAssembly en el navegador sin instalar nada
¿Dónde consigo qtrvsim?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/cvut/qtrvsim

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados