01 / 38
nav A anexos H inicio F fullscreen
Índice de anexos
IPN
TT 2026-B059
ESCOM

Aplicación multiplataforma para el aprendizaje y depuración de código VHDL sin requerimiento de hardware físico

Presenta
Ulrich Tamayo Daniel
Directores
M. en C. Pastrana Fernández Carlos Jesús
Dr. Cifuentes Álvarez Alejandro Sigrido
Trabajo Terminal I
2026 — Ingeniería en Sistemas Computacionales
El punto de partida

Un laboratorio.
Treinta estudiantes.
Cinco tarjetas FPGA.

Esta es la realidad del laboratorio de diseño digital en muchas instituciones, incluida la ESCOM. La práctica con hardware se convierte en un privilegio compartido — no en una experiencia individual de aprendizaje.

[1] ESCOM, Catálogo de Trabajos Terminales, IPN, 2026 — véase Anexo A36

Barrera económica

Equipar un laboratorio
para 30 estudiantes cuesta

$55,000
MXN

Sólo en hardware. Sin contar mantenimiento, accesorios o licencias de software comercial. Una Basys 3 ronda los $3,400; una Cyclone IV cerca de $1,866.

[2] Digilent, Basys 3 Artix-7 FPGA Trainer Board · [3] Amazon MX, Tarjeta Cyclone IV EP4CE6, feb. 2026 — Anexo A36

Lo que hoy tenemos

Para simular VHDL hoy,
el estudiante debe encadenar tres herramientas distintas.

Editor genérico
GHDL (CLI)
GTKWave

Tres curvas de aprendizaje. Tres flujos de trabajo. Cero integración. Y la atención del estudiante se desvía de lo que importa: comprender el comportamiento del hardware.

Y en ESCOM, 0 Trabajos Terminales han abordado un depurador interactivo de HDL — la línea pedagógica está abierta.

[4] GHDL · [5] GTKWave · [1] ESCOM, Catálogo de TT — Anexo A36

Las alternativas existen, pero…

Cada herramienta resuelve una parte. Ninguna resuelve el problema completo.

GHDL solo CLI GTKWave sin simulador Icarus Verilog no VHDL Verilator no testbench ModelSim licencia Vivado 80 GB Quartus solo Win/Linux EDA Playground sólo online HDLBits no VHDL Logisim esquemáticos

Análisis comparativo completo en Anexo A2 →

Fuentes oficiales y sitios de los proyectos: [4][13] GHDL, GTKWave, Icarus, Verilator, ModelSim, Vivado, Quartus, EDA Playground, HDLBits, Logisim — Anexo A36

El insight

No necesitamos
otra herramienta.
Necesitamos una sola.

Kmila

Kmila

Un IDE académico de VHDL que integra editor, simulador y visualizador de ondas.

Sin hardware. Sin licencias. Sin terminal.
Gratuito. Open-source. Multiplataforma.

¿Qué es Kmila, en una frase?

Una plataforma académica que unifica el flujo de trabajo HDL en una sola interfaz.

01
Unificada
Editor, simulador, visualizador y catálogo FPGA en una sola aplicación. Sin terminales ni archivos intermedios visibles para el usuario.
02
Sin hardware
Cualquier computadora o teléfono ejecuta Kmila. Sin tarjetas FPGA, sin licencias, sin cables. Pre-laboratorio que vive en el bolsillo.
03
Pedagógica
Pensada para estudiantes ESCOM. Catálogo de FPGAs reales, soporte multilingüe y curva de aprendizaje mínima.
Demo · 01
Editor Kmila

Editor profesional desde el primer instante.

Mismo motor que VS Code: Monaco Editor con resaltado de sintaxis VHDL, autocompletado contextual, navegación por líneas, atajos de teclado y vista previa Markdown.

  • Detección automática del tipo de archivo
  • Persistencia dual (disco + SQLite)
  • Indicador visual de cambios sin guardar
Demo · 02

34 dispositivos FPGA
al alcance de un clic.

Catálogo completo con especificaciones reales: LUTs, flip-flops, bloques de memoria, DSPs, PLLs, frecuencias máximas y pines I/O — los datos que el estudiante necesita para dimensionar su diseño.

16
AMD / Xilinx
9
Intel / Altera
9
Lattice
Selector FPGA

Especificaciones tomadas de datasheets oficiales: [14] Xilinx 7-Series · [15] Intel Cyclone IV · [16] Lattice iCE40 · [17] Lattice ECP5 — Anexo A36

Demo · 03
Formas de onda

Ver la señal.
Entender el circuito.

Visualizador de formas de onda con codificación semántica por color: clock, input, output, vector. Zoom, escala temporal y exportación a formato VCD estándar.

Una sola base de código

Seis plataformas. Cero compromisos.

Ninguna otra herramienta de simulación HDL ofrece este alcance.

Windows
macOS
Linux
Android
iOS
Web

.NET 9 · MAUI · Blazor

Peso del instalador
43–72 MB
iOS 43 · macOS 68 · Android 72
vs
Vivado / Quartus
20–80 GB
~500× más pesados que Kmila

[18] Microsoft, .NET MAUI · [19] Microsoft, ASP.NET Core Blazor · Pesos medidos — véase Anexo A37

Internacionalización

7 idiomas.
Soporte RTL nativo.

El diseño digital es una disciplina global. Kmila habla el idioma del estudiante — incluido el árabe, con dirección de escritura derecha-a-izquierda completa.

Español English Français Deutsch 中文 日本語 العربية
Kmila en japonés
Cómo está construido

Tecnología madura.
Decisiones deliberadas.

Cada pieza fue elegida para maximizar cobertura de plataformas, minimizar dependencias y mantener el código abierto.

.NET 9 + MAUI
Cobertura nativa Win/macOS/Android/iOS
Blazor WebAssembly
Soporte Linux y navegador, sin servidor
C# 13
Código compartido al 100% entre plataformas
Monaco Editor
Mismo motor que Visual Studio Code
Chart.js
Visualización de formas de onda
SQLite
Persistencia local embebida, multiplataforma

[18] MAUI · [19] Blazor · [20] C# · [21] .NET 9 · [22] SQLite · [23] sqlite-net — Anexo A36

Lo que ya está construido

TT1 entregado.
La interfaz funciona.

11
Requerimientos funcionales TT1
6
Plataformas soportadas
7
Idiomas + RTL
34
FPGAs en catálogo
29
Componentes Razor
10
Casos de uso documentados
167
Páginas de documentación
100%
Código abierto
Lo que viene

TT2: el motor cobra vida.

La interfaz está lista. La siguiente fase implementa el corazón de la simulación: parser, intérprete y máquina del tiempo.

TT2 · Siguiente fase
Motor de simulación
  • Parser — análisis sintáctico VHDL → AST
  • Interpreter — ciclos delta y eventos
  • TimeMachine — ejecución paso a paso
  • Estimación de recursos contra FPGA seleccionado
  • Exportación VCD + integración con la UI
  • Validación con estudiantes y docentes ESCOM
Lo que está en juego

Cada estudiante de la ESCOM con un simulador HDL en su bolsillo.

Sin barreras económicas. Sin licencias. Sin cables. Sólo VHDL — y la libertad de equivocarse mil veces antes de la primera práctica de laboratorio.

Kmila
Kmila
Kmila
IN  MEMORIAM
“Por tí, volaré más alto y más lejos que nadie.”
Kmila
A · N · E · X · O · S

Material
de respaldo

Diagramas, tablas comparativas, requerimientos detallados, casos de uso, factibilidad económica y catálogo FPGA completo.

ANEXO A1
Análisis comparativo: Kmila vs. herramientas existentes
HerramientaTipoHDLPlataformasCostoEditorVisor ondasGUIEducativo
GHDL + GTKWaveOpen-sourceVHDLWin/Lin/MacGratuitoNoSeparadoParcialBajo
Icarus VerilogOpen-sourceVerilogWin/Lin/MacGratuitoNoNoCLIBajo
VerilatorOpen-sourceVerilog/SVWin/Lin/MacGratuitoNoNoCLIBajo
YosysSíntesisVerilogWin/Lin/MacGratuitoNoNoCLIBajo
ModelSim / QuestaComercialVHDL/Verilog/SVWin/LinLimitadoNoMedio
Quartus Prime LiteComercialVHDL/Verilog/SVWin/LinLimitadovía QuestaMedio
Vivado ML StandardComercialVHDL/Verilog/SVWin/LinLimitadoXSIMMedio
EDA PlaygroundWebVHDL/Verilog/SVNavegadorGratuitoEPWaveMedio
HDLBitsWebVerilogNavegadorGratuitoAlto
DigitalJSWebVerilog (Yosys)NavegadorGratuitoAlto
Logisim EvolutionAcadémicaGenera HDLWin/Lin/MacGratuitoEsquemáticoCronogramaAlto
KmilaOpen-sourceVHDLWin/Mac/Lin/Android/iOS/WebGratuitoMonacoChart.jsAlto
ANEXO A2
Brechas detectadas en las herramientas existentes

Limitaciones identificadas

  • 1. Las herramientas open-source carecen de GUI integrada y exigen orquestar múltiples programas.
  • 2. Las herramientas comerciales (ModelSim, Quartus, Vivado) tienen ediciones gratuitas con límites de líneas/familias y requieren 40-80 GB de instalación.
  • 3. Las plataformas web (EDA Playground, HDLBits) dependen de conexión a Internet, tienen cuotas y no permiten persistencia local garantizada.
  • 4. Logisim trabaja a nivel de esquemáticos, no de HDL; DigitalJS sólo visualiza síntesis sin simulación comportamental.
  • 5. Ninguna herramienta cubre las 6 plataformas principales (Win/macOS/Linux/Android/iOS/Web) desde un único código base.

Cómo Kmila las cubre

  • GUI integrada con Monaco Editor, simulador, visualizador y catálogo FPGA en una sola aplicación.
  • Aplicación local ligera, sin licencias, sin restricciones de líneas, ejecutable desde cualquier dispositivo personal.
  • Funcionamiento 100% offline con persistencia dual disco + SQLite. Versión web opcional para Linux.
  • Simulación comportamental real con motor propio (TT2) sobre código VHDL escrito por el estudiante.
  • Único proyecto multiplataforma con cobertura completa desde un solo código base C# / .NET 9.
ANEXO A3
Requerimientos funcionales TT1 (interfaz y gestión)
IDNombreDescripciónPrioridad
RF-01Gestionar proyectosCrear, abrir, eliminar y listar proyectos que agrupen archivos HDL y configuración.Alta
RF-02Gestionar archivos HDLCrear, cargar y guardar archivos .vhd con respaldo dual en disco y SQLite.Alta
RF-03Editar código HDLEdición VHDL con resaltado, posición del cursor, indicador de cambios sin guardar.Alta
RF-04Navegar estructura del proyectoPanel lateral y barra superior con acceso a archivos, secciones y configuración.Alta
RF-05Seleccionar dispositivo FPGAElegir entre catálogo de 34 dispositivos de 3 fabricantes (Xilinx, Intel, Lattice).Media
RF-06Configurar parámetros de simulaciónDefinir duración, escala temporal, frecuencia de reloj y estímulos por puerto.Media
RF-07Visualizar diagnósticos y recursosMostrar entidades, puertos, señales y utilización de recursos del FPGA seleccionado.Alta
RF-08Visualizar formas de ondaVisor con codificación por color, zoom y exportación VCD.Alta
RF-09Cambiar idioma de la interfazSelección entre 7 idiomas (ES, EN, FR, DE, ZH, JA, AR) con soporte RTL.Baja
RF-10Cambiar tema visualAlternar entre tema claro y tema oscuro de la interfaz.Baja
RF-11Persistir datos localmenteAlmacenar proyectos, archivos, configuraciones y preferencias en SQLite.Media
ANEXO A4
Requerimientos funcionales TT2 (motor de simulación)
IDNombreDescripciónPrioridad
RF-12Analizar sintaxis VHDLVerificar la corrección sintáctica del código y generar diagnósticos.Alta
RF-13Generar ASTConstruir la representación jerárquica intermedia del código VHDL válido.Alta
RF-14Ejecutar simulaciónSimular la ejecución del circuito mediante el modelo de eventos discretos.Alta
RF-15Controlar simulaciónIniciar, pausar, reanudar y detener la ejecución de la simulación.Alta
RF-16Ejecutar paso a pasoAvanzar la simulación ciclo por ciclo para depuración interactiva.Media
RF-17Insertar puntos de interrupciónMarcar líneas en el editor donde la simulación debe detenerse.Media
RF-18Exportar resultadosExportar formas de onda en formato VCD (Value Change Dump) estándar.Baja
ANEXO A5
Requerimientos no funcionales
IDCategoríaRequerimiento
RNF-01MultiplataformaEjecución nativa en Windows, macOS, Android, iOS y soporte web para Linux.
RNF-02DisponibilidadFuncionamiento 100% offline, sin dependencia de servidores externos.
RNF-03RendimientoTiempo de respuesta de UI inferior a 200 ms en operaciones comunes.
RNF-04UsabilidadCurva de aprendizaje mínima: estudiante productivo en menos de 30 min.
RNF-05InternacionalizaciónSoporte de 7 idiomas con cambio en tiempo de ejecución y dirección RTL.
RNF-06AccesibilidadTema claro/oscuro, contraste WCAG AA, navegación por teclado.
RNF-07MantenibilidadArquitectura modular C4 con componentes desacoplados.
RNF-08PersistenciaRespaldo dual (disco + SQLite) con recuperación automática.
RNF-09DistribuciónCódigo abierto bajo licencia permisiva, repositorio público.
RNF-10CompatibilidadCatálogo FPGA actualizable mediante archivos JSON sin recompilación.
ANEXO A6
Casos de uso — resumen
IDCaso de usoActorRF asociadoFase
CU-01Gestionar proyectosEstudianteRF-01TT1
CU-02Gestionar archivos HDLEstudianteRF-02TT1
CU-03Editar código HDLEstudianteRF-03, RF-04TT1
CU-04Seleccionar dispositivo FPGAEstudianteRF-05TT1
CU-05Cambiar idiomaEstudianteRF-09TT1
CU-06Cambiar temaEstudianteRF-10TT1
CU-07Validar código VHDLEstudianteRF-12, RF-13TT2
CU-08Configurar y ejecutar simulaciónEstudianteRF-06, RF-14, RF-15TT2
CU-09Visualizar formas de ondaEstudianteRF-08TT2
CU-10Exportar resultados (VCD)EstudianteRF-18TT2
ANEXO A7
Modelo del dominio completo
Modelo de dominio

Entidades en rojo (AST, CicloSimulacion) corresponden al motor de simulación de TT2.

ANEXO A8
Arquitectura C4 — Nivel 1: Contexto
C4 Contexto

Kmila como sistema, sus actores externos (estudiante) y sistemas de persistencia (sistema de archivos + SQLite).

ANEXO A9
Arquitectura C4 — Nivel 2: Contenedores
C4 Contenedores

Kmila.sln se compone de 7 proyectos .NET: 2 hosts (MAUI y Web) + 1 librería compartida + 4 módulos backend (Debugger, Parser, Interpreter, TimeMachine).

ANEXO A10
Arquitectura C4 — Nivel 3: Componentes
C4 Componentes

Componentes internos de Kmila.Shared organizados en 4 capas: páginas, servicios, repositorios y datos.

ANEXO A11
Arquitectura C4 — Diagrama de despliegue
C4 Despliegue
PlataformaMecanismoCiclo de vida DICarga de recursos FPGA
AndroidAPK vía .NET MAUI (min API 24)SingletonFileSystem.OpenAppPackageFileAsync
WindowsMSIX o publicación directaSingletonFileSystem.OpenAppPackageFileAsync
macOSApp BundleSingletonFileSystem.OpenAppPackageFileAsync
iOSApp BundleSingletonFileSystem.OpenAppPackageFileAsync
Linux / WebASP.NET Core + Blazor ServerScoped_content/Kmila.Shared/Devices/
ANEXO A12
Diagrama de clases — vista general
Diagrama de clases

10 modelos de datos · 4 servicios · 3 repositorios · 4 módulos de backend. Vistas segmentadas disponibles en el documento TT1, capítulo 5.

ANEXO A13
Diagrama de casos de uso — TT1
Casos de uso TT1
ANEXO A15
Catálogo FPGA — 34 dispositivos · 3 fabricantes
34
Dispositivos totales
3
Fabricantes
5
Familias FPGA
JSON
Formato actualizable
FabricanteFamiliaCantidadAplicación típica
AMD / XilinxSpartan-68Académico básico, tarjetas legacy
AMD / XilinxArtix-78Académico moderno (Basys 3, Nexys A7)
Intel / AlteraCyclone IV E9Industrial bajo costo, DE0/DE2
LatticeiCE40 HX3Bajo consumo, IoT, herramientas open
LatticeiCE40 UltraPlus2Edge AI, ML embebido
LatticeECP54Mid-range, ASIC prototyping
Total5 familias34 dispositivos

Cada dispositivo incluye especificaciones de LUTs, flip-flops, bloques de memoria (BRAM), DSPs, PLLs, frecuencia máxima de reloj y pines I/O.

ANEXO A16
Stack tecnológico detallado
ComponenteTecnologíaVersiónJustificación
Framework nativo.NET MAUI9.0Apps nativas Win/macOS/Android/iOS desde un solo código base
Framework webBlazor Server9.0Cobertura Linux y navegadores sin servidor externo
LenguajeC#13.0Tipado fuerte, ecosistema unificado .NET
Editor de códigoMonaco Editor (BlazorMonaco)3.3.0Mismo motor que Visual Studio Code
VisualizaciónChart.js (BlazorBootstrap)3.4.0Gráficas interactivas para formas de onda
PersistenciaSQLite (sqlite-net-pcl)1.9.172BD embebida, sin servidor, multiplataforma
IconografíaBootstrap Icons1.13.1Set consistente, tipografía vectorial
Motor simulaciónC# propio (TT2)Control total del ciclo de simulación HDL

Todas las dependencias son open-source o de licencia gratuita para uso académico. No se requiere infraestructura de servidor ni servicios en la nube.

ANEXO A17
Factibilidad económica — desglose de costos
1,010
Horas estimadas
10
Meses de desarrollo
$209,646
TCO estimado (MXN)
$2,750
Desembolso real (MXN)
CategoríaConceptoCosto estimado (MXN)
Recursos humanos1,010 hrs × $200/hr (tarifa junior)$202,000
Equipo desarrolloLaptop Lenovo IdeaPad L340 (prorrateo 10/48)$3,125
Equipo pruebasSmartphone POCO F5 Pro (prorrateo 10/48)$1,771
Licencias.NET 9 SDK, VS Code, Git, Android SDK$0
DistribuciónGoogle Play Store (registro único)$500
DistribuciónApple Developer Program (anual)$2,000
DistribuciónDominio web (anual)$250
DistribuciónHosting Netlify · GitHub público$0
Total TCO$209,646
Desembolso real (excluye horas valuadas)$2,750

96.3% del costo es recurso humano: característico de proyectos de software con herramientas open-source. Frente a los $55,000 MXN solo en hardware FPGA para 30 estudiantes, Kmila reduce a $0 el costo per cápita de acceso a un entorno de simulación.

ANEXO A18
Desglose de horas — TT1 (460 hrs) + TT2 (550 hrs) = 1,010 hrs

TT1 · Completado · 460 hrs

MóduloHrs
Investigación, documentación y protocolo80
Arquitectura y diseño del sistema60
UI: Monaco, pestañas, explorador100
Gestión de proyectos + SQLite60
Catálogo FPGA (34 dispositivos)40
i18n (7 idiomas + RTL)40
Configuración (temas, .k-config)30
Visor de formas de onda (Chart.js)30
Pruebas de integración y ajustes20
Subtotal TT1460

TT2 · Siguiente fase · 550 hrs

MóduloHrs
Analizador léxico/sintáctico (Parser VHDL)120
Generación de AST y modelo intermedio80
Motor de simulación (DeltaCycleEngine)100
Depuración paso a paso (TimeMachine)60
Construcción de estímulos (StimulusBuilder)40
Integración motor-UI y visualización50
Pruebas, depuración y optimización60
Documentación de TT240
spacer0
Subtotal TT2550

TT1: febrero–junio 2026 · TT2: julio 2026–enero 2027 · Dedicación promedio: 3.5 hrs/día × 6 días/semana.

ANEXO A19
Cronograma de actividades — feb 2026 a ene 2027
# Actividad FEB MAR ABR MAY JUN JUL AGO SEP OCT NOV DIC ENE
1Investigación del estado del arte
2Definición de requerimientos
3Análisis del alcance y planeación
4Requerimientos técnicos y versiones
5Diseño de la arquitectura (MAUI/.NET, Blazor)
6Diseño de interfaz y editor (Monaco)
7Desarrollo inicial del motor HDL
8Documentación TT1 + Evaluación
9Motor de simulación avanzado
10Visualización de señales y reloj
11Ejecutables multiplataforma
12Pruebas de validación
13Manual de usuario y documentación final
14Publicación GitHub + Evaluación TT2
TT1 · feb–jun 2026 TT2 · jul 2026–ene 2027
ANEXO A20
Objetivos del proyecto

Objetivo general

Desarrollar una aplicación multiplataforma, gratuita y de código abierto que permita la simulación y depuración interactiva de código HDL en un entorno local, facilitando el aprendizaje del diseño digital sin requerir hardware FPGA físico.

Objetivos específicos

  1. Analizar requerimientos funcionales y no funcionales del sistema considerando a estudiantes y docentes de ESCOM.
  2. Diseñar la arquitectura modular contemplando edición, simulación, visualización y control temporal con .NET 9 + MAUI + Blazor.
  3. Construir una interfaz gráfica unificada con Monaco Editor, gestión de proyectos y panel de configuración de simulación.
  4. Implementar un selector de FPGAs con especificaciones de LUTs, flip-flops, pines I/O, BRAM y DSPs de varios fabricantes.
  5. Desarrollar un visualizador de formas de onda preparado para integración con el motor de simulación.
  6. Validar el funcionamiento de la versión web sobre Linux mediante Blazor.
ANEXO A21
Lenguajes de descripción de hardware — comparativa

VHDL vs. Verilog

CaracterísticaVHDLVerilog
OrigenDoD EE.UU., 1983Gateway DA, 1984
Estándar IEEE1076 (1987–2019)1364 → 1800
Influencia sintácticaAdaC
TipadoFuerteDébil
VerbosidadAltaBaja
Lógica multivaluada9 valores (std_logic, IEEE 1164)4 valores nativos
Verificación avanzadaPSL externoSystemVerilog (UVM, SVA)
Predominio académicoEuropa, LatinoaméricaEE.UU., Asia
Predominio industrialAeroespacial, defensa, FPGASemiconductores, ASIC

Otros HDLs de alto nivel

LenguajeBase / salida
SystemCC++ · IEEE 1666 (ESL)
MyHDLPython → Verilog/VHDL
AmaranthPython → Verilog (Yosys)
ChiselScala → FIRRTL → Verilog
SpinalHDLScala → Verilog/VHDL
Bluespec (BSV)Reglas guardadas → Verilog

Ninguno reemplaza a VHDL/Verilog: todos generan RTL en uno de estos dos lenguajes para síntesis.

Kmila implementa VHDL como lenguaje primario; Verilog contemplado como extensión TT2.

ANEXO A22
Estándares IEEE de los lenguajes HDL

IEEE 1076 · VHDL

EstándarAñoCambios principales
1076-19871987Primera estandarización; definición base del lenguaje
1076-19931993ISO-8859-1, operador xnor, sintaxis más consistente
1076-20002000Tipos protegidos para concurrencia en variables compartidas
1076-20082008Subconjunto PSL, genéricos en paquetes; absorbe IEEE 1164 y 1076.3
1076-20192019Revisión vigente: integración completa de PSL

IEEE 1364 / 1800 · Verilog y SystemVerilog

EstándarAñoDescripción
1364-19951995Primera estandarización (Verilog-95)
1364-20012001Sentencias generate, aritmética con signo
1364-20052005Último estándar Verilog independiente
1800-20052005Primer estándar de SystemVerilog
1800-20092009Fusión de Verilog (1364) con SystemVerilog
1800-20172017Revisión vigente de SystemVerilog

Estándares relacionados: IEEE 1164 (std_logic) · IEEE 1666 (SystemC) · IEEE 1850 (PSL)

ANEXO A23
Justificación del proyecto

 Técnica

Las herramientas actuales son fragmentadas: el estudiante debe configurar GHDL + GTKWave + un editor por separado. Soluciones comerciales como ModelSim integran todo, pero dependen de licencias restrictivas. Kmila unifica edición, configuración y visualización en una sola aplicación multiplataforma.

 Educativa

La formación en diseño digital exige comprender el comportamiento temporal de las señales. Sin herramienta accesible, la enseñanza queda condicionada al tiempo de laboratorio. Kmila funciona como pre-laboratorio: el estudiante prepara y verifica antes de la sesión con hardware real.

 Académica

En la revisión de Trabajos Terminales de la ESCOM, no se identificó ningún proyecto previo dedicado a un entorno integrado de depuración HDL. Kmila contribuye a la línea institucional de herramientas educativas, generando un recurso open-source extensible por la comunidad ESCOM/IPN.

 Económica

Equipar un laboratorio para 30 estudiantes con tarjetas FPGA supera los $55,000 MXN solo en hardware. Kmila se distribuye gratis y no requiere hardware: cualquier computadora o móvil con navegador ejecuta la aplicación, reduciendo la barrera de entrada para la práctica individual.

ANEXO A24
Factibilidad del proyecto

Técnica

Stack maduro y de código abierto: .NET 9, MAUI, Blazor, C# 13, Monaco Editor, Chart.js, SQLite. Todas las dependencias son gratuitas para uso académico.

  • SDK .NET 9 gratuito
  • VS Code / VS Community gratuito
  • Sin servidor ni servicios cloud
  • Soporte oficial hasta mayo 2026

Económica

El recurso humano (96.3% del costo) es estimación teórica; el desembolso real es de $2,750 MXN en distribución y dominio.

Tiendas (Play + Apple)$2,500
Dominio web anual$250
Hosting Netlify$0
GitHub público$0

Operativa

Desarrollo local en equipo personal, sin permisos institucionales especiales ni infraestructura adicional.

  • 1 alumno + 2 directores
  • Cronograma feb 2026 – ene 2027
  • Versión web validada en Linux
  • Git + repo remoto (respaldo)

Las tres dimensiones de factibilidad presentan viabilidad confirmada sin riesgos críticos identificados.

ANEXO A25
Modelos empleados para la estimación de costos

El análisis económico se estructura mediante tres enfoques complementarios:

MODELO · 01

Cost Breakdown Structure (CBS)

Descompone el costo total en categorías identificables, facilitando la trazabilidad de cada partida.

Categorías: recursos humanos · equipo de desarrollo · equipo de pruebas · licencias de software · costos de distribución
MODELO · 02

Total Cost of Ownership (TCO)

Extiende el análisis al considerar no sólo el desarrollo inicial, sino también los costos recurrentes de distribución y mantenimiento del software.

Resultado: $209,646 MXN (TCO total con horas valuadas) · $2,750 MXN (desembolso real)
MODELO · 03

Análisis costo-beneficio (contexto educativo)

Contrasta la inversión requerida con el valor que la solución aporta frente a las alternativas existentes en el contexto académico.

Comparación: $55,000 MXN (lab. FPGA · 30 alumnos) vs. $0 MXN/alumno (Kmila distribución gratuita)
Tarifa de referencia para horas: $200 MXN/hr (desarrollador junior, mercado mexicano) · Prorrateo de equipo: 10/48 meses sobre vida útil estimada
ANEXO A26
Plataformas soportadas y requerimientos mínimos

Versiones de OS soportadas

PlataformaMínimaRecomendadaArquitecturas
Android7.0 (API 24)12+ (API 31+)ARMv7, ARM64, x86_64
iOS / iPadOS1517+ARM64 (A9+)
macOS12 Monterey14 Sonoma+x64, ARM64 (Apple Silicon)
Windows10 v1809 (17763)11 22H2+x64
Linux (web)Ubuntu 20.04 o equiv.Ubuntu 22.04 LTS+x64, ARM64

Equiv. Linux: Debian 11, RHEL 8, Fedora 39, openSUSE 15, Alpine 3.18 · Navegadores: Chrome/Edge 90+, Firefox 88+, Safari 14+.

Requerimientos mínimos de hardware

PlataformaRAMAlmacenamientoProcesador
Android2 GB150 MBARMv7-A o ARM64, 2× ≥ 1.5 GHz
iOS / iPadOS2 GB150 MBARM64 (Apple A9+)
macOS4 GB400 MBx64 2 núcleos o Apple Silicon
Windows4 GB400 MBx64 2 núcleos ≥ 1.8 GHz
Cliente web2 GB50 MB cachécualquiera con navegador moderno
Servidor web1 GB libre200 MBx64 / ARM64 · 1 vCPU base

Pantalla mín.: 360 px (móvil vertical) · óptimo editor: 1280 px+. Para múltiples proyectos o simulaciones extensas, doblar valores.

ANEXO A27
Reglas de negocio
IDReglaDescripciónJustificación
RN-01Proyecto obligatorio para simulaciónTodo archivo HDL debe pertenecer a un proyecto creado en Kmila antes de ser simulado o analizado.La persistencia en SQLite (tabla Projects) requiere contexto de proyecto.
RN-02Un dispositivo FPGA por proyectoCada proyecto debe tener asociado exactamente un modelo del catálogo de 34 dispositivos.Los recursos del dispositivo determinan las restricciones de síntesis y simulación.
RN-03Extensiones permitidasSólo archivos .vhd o .vhdl. Verilog/SystemVerilog quedan fuera del alcance.Evita archivos no compatibles con el motor de análisis VHDL.
RN-04Persistencia dualCada archivo se almacena en disco y simultáneamente en SQLite (campo Content) como respaldo.Recuperación ante pérdida del archivo y portabilidad del proyecto.
RN-05Idioma por defecto: españolIdioma inicial ES; el usuario puede cambiar entre 7 idiomas desde configuración.Contexto académico ESCOM donde el idioma principal es español.
RN-06Configuración por proyectoFrecuencia de reloj, tiempo de ejecución y formato se almacenan por proyecto en .k-config.Configuraciones independientes sin afectar otros proyectos.
RN-07Validación previa a simulación [TT2]El código debe pasar análisis sintáctico completo sin errores antes de simular.Previene ejecución de código malformado y excepciones del motor.
RN-08Límite de tiempo de simulación [TT2]La simulación se detiene automáticamente al alcanzar el tiempo máximo configurado.Evita bucles infinitos y consumo excesivo de recursos.
ANEXO A28
Historias de usuario — TT1 (interfaz y gestión)

Rol: Alumno de ISC que cursa Fundamentos de Diseño Digital, Diseño de Sistemas Digitales, Arquitectura de Computadoras o Sistemas en Chip.

IDHistoriaRF
HU-01Crear proyecto. Como alumno, quiero crear un proyecto nuevo para organizar los archivos VHDL de mi práctica de laboratorio.RF-01
HU-02Escribir código VHDL. Como alumno, quiero crear archivos .vhd y escribir código con resaltado de sintaxis.RF-02, RF-03
HU-03Abrir práctica anterior. Como alumno, quiero abrir un proyecto existente y recuperar los archivos para continuar una sesión anterior.RF-01, RF-02
HU-04Navegar archivos. Como alumno, quiero ver todos los archivos de mi proyecto en un panel lateral y cambiar entre ellos.RF-04
HU-05Seleccionar FPGA. Como alumno, quiero elegir el modelo (Cyclone IV EP4CE6, Artix-7 XC7A35T…) para verificar compatibilidad con la tarjeta del laboratorio.RF-05
HU-06Configurar estímulos. Como alumno, quiero configurar la frecuencia del reloj y los valores de las señales de entrada antes de simular.RF-06
HU-07Revisar diagnósticos y utilización. Como alumno, quiero ver entidades, puertos y porcentaje de recursos del FPGA que consume mi diseño.RF-07
HU-08Ver formas de onda. Como alumno, quiero visualizar las señales tras simular para verificar que mi diseño se comporta como esperaba.RF-08
HU-09Cambiar idioma. Como alumno, quiero cambiar el idioma de la interfaz al español u otro de mi preferencia.RF-09
HU-10Tema visual. Como alumno, quiero alternar entre tema claro y oscuro según mi preferencia.RF-10
ANEXO A29
Historias de usuario — TT2 (motor de simulación)

Funcionalidades del motor de simulación cuya implementación se contempla en la segunda fase del proyecto.

IDHistoria resumidaRF relacionado
HU-11Como alumno, quiero que la aplicación detecte errores de sintaxis en mi código VHDL antes de simular, para corregirlos a tiempo.RF-12, RF-13
HU-12Como alumno, quiero ejecutar la simulación de mi circuito y ver cómo se propagan las señales sin necesidad de la tarjeta FPGA.RF-14, RF-15
HU-13Como alumno, quiero avanzar la simulación ciclo por ciclo para entender cómo cambian las señales en cada paso de tiempo.RF-16
HU-14Como alumno, quiero pausar y reanudar la simulación para analizar el estado del circuito en un momento específico.RF-15
HU-15Como alumno, quiero insertar puntos de interrupción en mi código para que la simulación se detenga en líneas específicas.RF-17
Nota: Las HU de TT2 se enuncian para completitud del análisis; su implementación corresponde a la fase de motor de simulación (jul 2026 – ene 2027).
ANEXO A30
Glosario y acrónimos · 1 de 3 (A – F)
Amaranth HDL
HDL embebido en Python, sucesor conceptual de MyHDL. Genera Verilog para síntesis.
ASIC
Application-Specific Integrated Circuit. Circuito integrado de aplicación específica, no reconfigurable tras fabricación.
AST
Abstract Syntax Tree. Árbol de sintaxis abstracta; representación intermedia tras análisis sintáctico.
Bitstream
Archivo binario resultado de síntesis + place-and-route + generación que configura la lógica interna del FPGA.
Blazor
Framework de Microsoft para interfaces web interactivas con C# sobre WebAssembly o servidor.
BRAM
Block RAM. Bloque de memoria embebida en la matriz lógica del FPGA (decenas de Kbits).
BSV
Bluespec SystemVerilog. HDL con paradigma de reglas guardadas (MIT).
C4
Modelo de arquitectura (Simon Brown) con 4 niveles: contexto, contenedores, componentes y código.
Chisel
Constructing Hardware In a Scala Embedded Language. DSL en Scala (UC Berkeley); base de RISC-V/Rocket Chip.
CLB
Configurable Logic Block. Unidad básica de FPGAs Xilinx: LUTs + flip-flops + lógica de acarreo.
CPLD
Complex Programmable Logic Device. Antecesor del FPGA, basado en términos producto y memoria no volátil.
DCM
Digital Clock Manager. Bloque de gestión de reloj en FPGAs Xilinx Spartan-6.
DSL
Domain-Specific Language. Lenguaje de dominio específico (Chisel, SpinalHDL, etc.).
DSP (disciplina)
Digital Signal Processing. Procesamiento digital de señales muestreadas.
DSP (bloque)
Bloque de aritmética dedicada en FPGAs: DSP48 en Xilinx, multiplicador 18×18 en Intel/Lattice. Sentido empleado en tablas de catálogo.
E²PROM
Electrically Erasable Programmable ROM. Memoria no volátil borrable eléctricamente; base de GAL e iCE40.
EBR
Embedded Block RAM. Equivalente Lattice de la BRAM de Xilinx y M9K de Intel.
ESCOM
Escuela Superior de Cómputo del Instituto Politécnico Nacional.
ESL
Electronic System Level. Nivel de abstracción usado por SystemC para modelado arquitectónico.
FF
Flip-Flop. Elemento biestable de almacenamiento síncrono. Reportado como columna en catálogos FPGA.
FIRRTL
Flexible Intermediate Representation for RTL. Representación intermedia de Chisel previa a la generación de Verilog.
FPGA
Field-Programmable Gate Array. Circuito integrado reconfigurable por el usuario tras la fabricación.
ANEXO A31
Glosario y acrónimos · 2 de 3 (G – P)
GAL
Generic Array Logic. Familia de PLDs no volátiles basados en E²PROM (Lattice, 1985).
GHDL
Analizador, simulador y compilador de código abierto para VHDL.
GTKWave
Visor de formas de onda de código abierto, soporta VCD y FST.
HDL
Hardware Description Language. Categoría que incluye VHDL, Verilog y SystemVerilog.
HLS
High-Level Synthesis. Traducción de C/C++/SystemC a RTL sintetizable.
IDE
Integrated Development Environment. Editor + compilador + depurador en una sola aplicación.
IPN
Instituto Politécnico Nacional.
ISP (arquitectura)
Instruction Set Processor. Formalismo de Bell & Newell (1971) para describir procesadores a nivel RTL.
ISP (electrónica)
In-System Programming. Reprogramar dispositivos ya montados en placa (origen de ispLSI).
Kmila
Software de simulación y depuración de código HDL desarrollado en este Trabajo Terminal.
LE
Logic Element. Unidad básica de FPGAs Intel/Altera: LUT-4 + registro + lógica auxiliar.
LUT
Look-Up Table. Elemento lógico configurable fundamental: LUT-4 (Cyclone IV, iCE40) o LUT-6 (Xilinx 6/7, ECP5).
MAC
Multiply-Accumulate. Operación fusionada; en iCE40 UltraPlus designa el bloque DSP MAC 16×16.
MAUI
.NET Multi-platform App UI. Framework de Microsoft para apps nativas (Win/macOS/Android/iOS).
MMCM
Mixed-Mode Clock Manager. Evolución del DCM en FPGAs Xilinx 7+, frecuencia fraccionaria.
Monaco Editor
Editor de código de Microsoft (núcleo de VS Code), integrado en Kmila.
MyHDL
Biblioteca de Python para describir hardware con conversión a Verilog/VHDL.
Netlist
Lista de componentes lógicos primitivos y sus interconexiones (salida de la síntesis).
Place-and-Route
Etapa que asigna elementos del netlist a recursos físicos y rutea las interconexiones.
PLL
Phase-Locked Loop. Lazo de seguimiento de fase para generación de relojes.
PSL
Property Specification Language. IEEE 1850, integrado en VHDL 2008.
ANEXO A32
Glosario y acrónimos · 3 de 3 (R – Y)
RTL (abstracción)
Register-Transfer Level. Nivel de abstracción que describe el circuito en términos de registros y lógica combinacional. Nivel empleado para síntesis.
RTL (escritura)
Right-to-Left. Dirección de escritura de derecha a izquierda (árabe, hebreo). En Kmila aplica al árabe vía dir="rtl".
SerDes
Serializer/Deserializer. Transceptor de alta velocidad serie ↔ paralelo en FPGAs gama media/alta.
SoC
System-on-Chip. CI con CPU + memoria + periféricos + lógica programable (ej. Xilinx Zynq).
SpinalHDL
HDL embebido en Scala con énfasis en legibilidad. Compila a Verilog y VHDL.
SQLite
Motor de BD relacional embebido sin servidor. Persistencia local de proyectos en Kmila.
SVA
SystemVerilog Assertions. Subconjunto orientado a verificación formal y funcional.
Síntesis lógica
Traducción de RTL (VHDL/Verilog) a netlist de compuertas con biblioteca tecnológica.
SystemC
Biblioteca C++ estandarizada IEEE 1666 para modelado de hardware a nivel ESL.
SystemVerilog
Extensión de Verilog con OOP, SVA, cobertura funcional. IEEE 1800.
Testbench
Banco de pruebas; código HDL no sintetizable que genera estímulos y verifica salidas durante la simulación.
TT
Trabajo Terminal; proyecto de titulación de la ESCOM dividido en TT1 y TT2.
UVM
Universal Verification Methodology. Metodología estándar de verificación basada en SystemVerilog.
VCD
Value Change Dump. Formato ASCII estándar de cambios de señales (soportado por GTKWave y Kmila).
Verilog
HDL con sintaxis inspirada en C; IEEE 1364, fusionado con SystemVerilog en IEEE 1800 desde 2009.
VHDL
VHSIC Hardware Description Language. HDL del DoD (EE.UU.); IEEE 1076. Lenguaje primario de Kmila.
VHSIC
Very High Speed Integrated Circuit. Programa DoD (1980-1990) que financió VHDL.
WASM
WebAssembly. Formato binario portable para ejecución eficiente en navegadores; usado por Blazor.
Yosys
Suite de síntesis lógica open-source para Verilog/SystemVerilog; ampliamente usada con Lattice iCE40 y ECP5.
ANEXO A33
Capturas adicionales — interfaz
Inicio · vista de bienvenida
Inicio · características
Lista de proyectos
Crear nuevo proyecto
Configuración global
Selector de idioma
ANEXO A34
Capturas adicionales — editor y simulación
Editor · autocompletado
Editor · tooltips contextuales
Pestaña · entidades VHDL detectadas
Pestaña · puertos analizados
Uso de recursos contra FPGA
Tema oscuro completo
ANEXO A35
Análisis de complejidad y rendimiento — objetivos TT2
Alcance: el motor de simulación (Parser · Interpreter · TimeMachine) se desarrolla durante TT2. Aquí se presentan los objetivos cuantitativos de complejidad y rendimiento que guiarán esa implementación; el análisis empírico detallado y los benchmarks se entregarán como parte de TT2.

Complejidad asintótica objetivo por módulo

MóduloTemporalEspacialEstrategia
ParserO(n) sobre n caracteresO(d) profundidad ASTRecursive descent con lookahead k=1
InterpreterO(E) por delta-cycle, E = eventos disparadosO(S) señales activasEvent-driven (no exhaustivo)
TimeMachineO(1) jump por checkpointO(C·S) checkpoints × señalesSnapshots espaciados + delta-log entre ellos
Wave visualizerO(V) señales visiblesO(M) muestras en viewportVirtual scrolling y decimación adaptativa
Catálogo FPGAO(1) lookup por ID · O(n) filtroO(n=34)JSON indexado en RAM, ya entregado en TT1

Objetivos cuantitativos de rendimiento (TT2)

  • Parser ≥ 50K líneas/s en hardware medio (Intel i5 / Apple M1, single-thread).
  • Simulación < 1 s para 10K ciclos sobre diseños académicos típicos (≤ 1K LUTs equivalentes).
  • TimeMachine jump-back < 50 ms para historiales de hasta 10⁶ eventos.
  • Memoria peak < 200 MB para diseños académicos típicos en simulación completa.
  • UI < 200 ms en operaciones comunes (RNF-03) — consistente con heurísticas de respuesta percibida en interacción humano-computadora (umbral de fluidez ≤ 1 s, instantáneo ≤ 100 ms).

Estos objetivos son entregables verificables del TT2 mediante una batería de benchmarks sobre el motor implementado.

ANEXO A36
Referencias bibliográficas — formato IEEE

Fuentes institucionales y económicas

[1] Escuela Superior de Cómputo, Catálogo de Trabajos Terminales, IPN, 2026. escom.ipn.mx

[2] Digilent Inc., Basys 3 Artix-7 FPGA Trainer Board, consultado feb. 2026. digilent.com

[3] Amazon México, Tarjeta FPGA Altera Cyclone IV EP4CE6, consultado feb. 2026. amazon.com.mx

Herramientas EDA — open-source

[4] T. Gingold, GHDL — Open-source analyzer, compiler, simulator and synthesizer for VHDL, 2024. ghdl.github.io

[5] T. Bybell, GTKWave Electronic Waveform Viewer, 2024. gtkwave.sourceforge.net

[6] S. Williams, Icarus Verilog, 2023. github.com/steveicarus/iverilog

[7] W. Snyder, Verilator: Open-source SystemVerilog simulator and lint system, 2025. veripool.org

Herramientas EDA — comerciales y web

[8] Siemens EDA, ModelSim — FPGA Simulation, 2025. eda.sw.siemens.com

[9] Advanced Micro Devices, AMD Vivado Design Suite, 2026. amd.com

[10] Intel Corporation, Intel Quartus Prime Design Software, 2025.

[11] Doulos Ltd., EDA Playground: Online IDE for HDL simulation, 2025. edaplayground.com

[12] H. Wong, HDLBits: Practice digital hardware design, 2025. hdlbits.01xz.net

[13] C. Burch, "Logisim: a graphical system for logic circuit design and simulation," JERIC, vol. 2, no. 1, pp. 5–16, mar. 2002. doi:10.1145/545197.545199

Datasheets de fabricantes FPGA

[14] Xilinx, Inc., 7 Series FPGAs Data Sheet: Overview (DS180), 2020. docs.amd.com

[15] Intel Corporation, Cyclone IV Device Handbook, 2024. intel.com

[16] Lattice Semiconductor, iCE40 LP/HX Family Data Sheet, 2024. latticesemi.com

[17] Lattice Semiconductor, ECP5 and ECP5-5G Family Data Sheet, 2024. latticesemi.com

Plataforma de desarrollo

[18] Microsoft, .NET Multi-platform App UI (.NET MAUI) documentation, 2024. learn.microsoft.com/dotnet/maui

[19] Microsoft, ASP.NET Core Blazor documentation, 2024. learn.microsoft.com/blazor

[20] Microsoft, C# documentation, 2024. learn.microsoft.com/csharp

[21] Microsoft, What's new in .NET 9, 2024. learn.microsoft.com

[22] D. R. Hipp, SQLite, 2025. sqlite.org

[23] F. Krueger, sqlite-net, 2024. github.com/praeclarum/sqlite-net

Estándares y obras académicas

[24] IEEE, IEEE Standard VHDL Language Reference Manual, IEEE Std 1076-2008, 2009.

[25] P. J. Ashenden, The Designer's Guide to VHDL, 3rd ed. Burlington, MA: Morgan Kaufmann, 2008.

[26] S. Brown and Z. Vranesic, Fundamentals of Digital Logic with VHDL Design, 3rd ed. McGraw-Hill, 2009.

[27] D. E. Thomas and P. R. Moorby, The Verilog Hardware Description Language, 5th ed. Springer, 2002.

[28] Coursera, FPGA Design for Embedded Systems Specialization, 2026.

[29] GHDL contributors, GHDL Documentation: Backends and Features, 2025.

Fuente completa: Documentacion/TT1/references.bib (47 entradas en formato BibLaTeX)

ANEXO A37
Verificación empírica de requerimientos no funcionales

A. Pesos reales de los artefactos de distribución

Medidos con du -sh sobre los archivos generados por dotnet publish -c Release el 10 mayo 2026.

PlataformaArchivo entregablePesoTiempo de build
Androidkmila.kmila-Signed.apk72 MB182.5 s
Android (Play)kmila.kmila-Signed.aab72 MB
iOSKmila.ipa43 MB258.7 s
macOSKmila-1.0.pkg (instalador firmado)68 MB197.9 s
Linux / WebBlazor publish completo124 MB60.4 s
Linux / Websolo _content servido al cliente76 MB
Windowspendiente (host Windows o CI)

B. Comparativa contra alternativas comerciales

HerramientaPeso instaladoFactorPlataformas
AMD Vivado ML Standard [9]40–80 GB~500–1000×Win, Linux
Intel Quartus Prime Lite [10]20+ GB~250×Win, Linux
Siemens ModelSim [8]1.5+ GB~20×Win, Linux
Kmila (cualquier plataforma)43–147 MBWin, macOS, Linux, Android, iOS, Web

C. Matriz de verificación de los 10 RNF

IDRNFMétodo de verificaciónEstado TT1
RNF-01MultiplataformaCompilación exitosa en 5/6 targets + capturas de ejecución real en macOS, iOS, Android y Web — véase A38✅ Verificado
RNF-02Offline 100%Ejecución en modo avión sobre macOS — captura en A38✅ Verificado
RNF-03UI < 200 msChrome DevTools sobre localhost:5297: LCP = 45 ms, 0 tareas ≥ 200 ms, click máx = 1.56 ms (39 904 eventos, 9 s sesión) — véase A38✅ Verificado
RNF-04Usabilidad < 30 minPruebas con estudiantes ESCOM📋 TT2
RNF-057 idiomas + RTLCambio en runtime entre los 7 + verificación visual RTL✅ Verificado
RNF-06WCAG AA + tecladoLighthouse a11y + navegación por teclado⏳ Auditoría parcial
RNF-07Modularidad C4Componentes desacoplados, diagramas C4 (Anexos A8–A11)✅ Verificado
RNF-08Persistencia dualDisco + SQLite, recuperación tras cierre forzado✅ Verificado
RNF-09Open-sourceRepositorio público + LICENSE permisivo✅ Verificado
RNF-10Catálogo JSON sin recompilarEdición de fpgas.json + hot-reload✅ Verificado

Leyenda: verificado empíricamente en TT1 · objetivo medible pendiente · 📋 alcance TT2.

ANEXO A38
Evidencia visual de ejecución multiplataforma

Capturas reales de Kmila ejecutándose en cuatro de las cinco plataformas verificadas el 10 mayo 2026 (Windows pendiente de build). Las indicaciones nativas de cada SO (semáforos macOS, barra de estado iOS/Android, chrome de navegador) descartan emulación o contenedores web embebidos.

A. Pantalla de bienvenida (Home)

Home macOS
macOS · MAUI MacCatalyst
Home Web
Web · Blazor / Chrome
Home iOS
iOS · MAUI nativo
Home Android
Android · UI en inglés (RNF-05)

B. Editor de código VHDL

Editor macOS
macOS
Editor Web
Web
Editor iOS
iOS
Editor Android
Android · Build / Run en inglés

Invariante de arquitectura: el layout (sidebar, breadcrumb, editor Monaco con tabs, barra inferior FPGA + acciones) se conserva idénticamente entre las cuatro plataformas — evidencia empírica de que Kmila.Shared entrega un único código base sobre los seis destinos.

ANEXO A39
Evidencia visual — RNF-02 (offline) y RNF-03 (rendimiento UI)

RNF-02 · Modo offline (macOS)

Kmila en modo offline
Kmila operando con la conexión a red deshabilitada (modo avión en la barra de estado del sistema). Edición, gestión de archivos y persistencia local mantienen su disponibilidad sin depender de servicios externos.

RNF-03 · Métricas Chrome DevTools sobre localhost:5297

Chrome DevTools Performance
Panel Performance Insights de Chrome reportando LCP = 45 ms sobre la versión web de Kmila — 4.4× por debajo del umbral RNF-03 (200 ms) y dos órdenes de magnitud bajo el umbral Google de buena experiencia (2.5 s).
Análisis del trace subyacente (39 904 eventos, 9.01 s de sesión):
  • 0 tareas ≥ 200 ms registradas
  • Click de usuario máximo: 1.56 ms (~128× bajo el umbral)
  • EventDispatch promedio: 0.05 ms sobre 532 eventos
  • InputLatency máximo: 0 ms sobre 417 mediciones
ANEXO A40
Huella de memoria RAM en ejecución

Mediciones tomadas con el Monitor de Actividad de macOS (para procesos nativos y servidor Blazor) y top sobre adb shell para Android físico. Build Debug en todos los casos — el modo Release con AOT completo reduce típicamente estos valores en 30–50%.

Valores medidos

PlataformaMemoriaDetalle
macOS (MacCatalyst)144.3 MB70.2 MB privada · 9 subprocs
iOS (Simulator)124.6 MB30.0 MB residente · 16 subprocs
Android (físico)348 MBRES · 15.6% RAM dispositivo
Web (Blazor Server)947.3 MB37 subprocs · Debug + depurador

Comparativa contra herramientas comerciales

HerramientaRAM mínimaKmila es
AMD Vivado [9]8–16 GB8×–64× menor
Intel Quartus Prime [10]4–8 GB4×–55× menor
Siemens ModelSim [8]1–2 GB5×–14× menor
Nota sobre Web 947 MB: Blazor Server retiene el estado de cada cliente en memoria del servidor mediante circuito SignalR; la cifra incluye runtime .NET completo + hot reload + símbolos de depuración. Aun así, sigue siendo ~8× menor que el mínimo recomendado de Vivado.
Memoria macOS
macOS
Memoria iOS
iOS
Memoria Android
Android (top shell)
Memoria Web
Web (Blazor Server)

Capturas con la ruta completa del ejecutable disponibles en el documento de TT1 (figuras de detalle de procesos).

ANEXO A41
Modelo del dominio — vistas detalladas

Subdominios del modelo (A7) que corresponden al alcance de TT1: gestión de proyecto y modelo HDL.

Gestión de proyecto
Gestión de proyecto
Modelo HDL
Modelo HDL
ANEXO A42 · 1/2
C4 Componentes — vistas segmentadas

Desglose del Nivel 3 de C4 (Anexo A10) por capa de Kmila.Shared.

Capa de páginas Razor
Capa de páginas Razor
Capa de servicios (25+)
Capa de servicios (25+)
ANEXO A42 · 2/2
C4 Componentes — vistas segmentadas

Desglose del Nivel 3 de C4 (Anexo A10) por capa de Kmila.Shared.

Capa de repositorios + datos
Capa de repositorios + datos
ANEXO A43 · 1/4
Diagramas de clases — por subsistema

Sub-vistas del diagrama de clases (A12) correspondientes al alcance de TT1: persistencia, FPGA, configuración, repositorios y traducción.

Persistencia
Persistencia
FPGA
FPGA
ANEXO A43 · 2/4
Diagramas de clases — por subsistema

Sub-vistas del diagrama de clases (A12) correspondientes al alcance de TT1: persistencia, FPGA, configuración, repositorios y traducción.

Configuración
Configuración
Servicios y repos
Servicios y repos
ANEXO A43 · 3/4
Diagramas de clases — por subsistema

Sub-vistas del diagrama de clases (A12) correspondientes al alcance de TT1: persistencia, FPGA, configuración, repositorios y traducción.

DbContext
DbContext
Repos · Projects
Repos · Projects
ANEXO A43 · 4/4
Diagramas de clases — por subsistema

Sub-vistas del diagrama de clases (A12) correspondientes al alcance de TT1: persistencia, FPGA, configuración, repositorios y traducción.

ConfigService
ConfigService
Traductor JSON
Traductor JSON
ANEXO A44 · 1/3
Casos de uso — flujos detallados

Flujos de los casos de uso TT1 (CU-01 a CU-06): gestión, edición, FPGA, idioma y tema.

CU-01 Proyectos
CU-01 Proyectos
CU-02 Archivos
CU-02 Archivos
ANEXO A44 · 2/3
Casos de uso — flujos detallados

Flujos de los casos de uso TT1 (CU-01 a CU-06): gestión, edición, FPGA, idioma y tema.

CU-03 Editar
CU-03 Editar
CU-04 FPGA
CU-04 FPGA
ANEXO A44 · 3/3
Casos de uso — flujos detallados

Flujos de los casos de uso TT1 (CU-01 a CU-06): gestión, edición, FPGA, idioma y tema.

CU-05 Idioma
CU-05 Idioma
CU-06 Tema
CU-06 Tema
ANEXO A45
Diagramas de secuencia

Secuencias de los flujos de archivo del sistema (TT1): carga y guardado de archivos HDL.

Carga de archivo HDL
Carga de archivo HDL
Guardado archivo
Guardado archivo
ANEXO A46
Actividades y estados del sistema

Actividad principal de gestión y edición en la interfaz (TT1).

Gestión y edición
Gestión y edición
ANEXO A47
Subsistemas — LibraryCompiler y App

Subsistemas de la app correspondientes a TT1: módulo Learn y composición del editor.

App · Learn
App · Learn
App · EditorDock
App · EditorDock