VeryGA - Interface Modular VGA para Simulação de Verilog
DOI:
https://doi.org/10.5753/ijcae.2025.6436Keywords:
FPGA, Verilog, VGA, Laboratório RemotoAbstract
O ensino de Verilog com FPGAs apresenta diversos desafios. Entre eles, destacam-se a complexidade das ferramentas comerciais, o acesso limitado às placas físicas, a própria linguagem de descrição de hardware e a necessidade de simulações com depuração por meio de formas de onda. Uma estratégia eficaz para motivar os estudantes a superar essas barreiras é o desenvolvimento de jogos e aplicações gráficas, cujos resultados podem ser verificados visualmente, promovendo o aprendizado de programação em nível intermediário a avançado. Neste trabalho, apresentamos o VeryGA, uma ferramenta modular que integra simulações em Verilog com entradas via teclado ou mouse e saída em um emulador de sinais VGA, possibilitando visualização gráfica em tempo real. Ao oferecer um ambiente intuitivo e interativo, o VeryGA auxilia iniciantes a compreender melhor e documentar seus projetos de sistemas computacionais em Verilog com saída VGA, reduzindo a curva de aprendizado e promovendo a construção colaborativa de um conjunto de exemplos. A solução é executada inteiramente no navegador por meio do Google Colab, configurado com o simulador Verilator e o CMake, utilizando uma versão em WebAssembly para alcançar desempenho próximo ao tempo real. Diversos exemplos são apresentados para ilustrar os recursos do ambiente desenvolvido. O código emulado é sintetizável, validado em placas FPGA reais, e pode ser executado nelas sem alterações. Outra contribuição é demonstrar que, mesmo em um ambiente virtualizado na nuvem, é possível obter taxas de quadros por segundo próximas a uma execução em tempo real.
Descargas
Citas
Alhammami, M. (2024). Fpga hardware kit for remote training platforms. Discover Education, 3(1):102. DOI: 10.1007/s44217-024-00203-w.
Bisong, E. (2019). Google colaboratory. Building Machine Learning and Deep Learning Models on Google Cloud Platform, pages 59-64. DOI: 10.1007/978-1-4842-4470-8_7.
Brunvand, E. (2011). Games as motivation in computer design courses: I/o is the key. In ACM technical symposium on Computer science education. DOI: 10.1145/1953163.1953178.
Burch, C. et al. (2024). Logisim evolution. Available at: [link].
Bybell, T. (2023). Gtkwave: A vcd and lxt waveform viewer. Available at: [link].
Canesche, M., Bragança, L., Neto, O. P. V., Nacif, J. A., and Ferreira, R. (2021). Google colab cad4u: Hands-on cloud laboratories for digital design. In International Symposium on Circuits and Systems (ISCAS), pages 1-5. IEEE. DOI: 10.1109/iscas51556.2021.9401151.
Chinchanikar, A., Chandankhede, P. H., and Titarmare, A. (2023). Vga controller design & implementation on fpga. In IEEE Global Conf. for Advancement in Technology (GCAT). DOI: 10.1109/GCAT59970.2023.10353298.
Combéfis, S., Beresnevičius, G., and Dagienė, V. (2016). Learning programming through games and contests: overview, characterisation and discussion. Olympiads in Informatics, 10(1). Available at: [link].
Costa, A. S., Silveira, L. D., and Reis, A. I. (2023). Live demonstration: Pitanga platform for virtual fpga remote laboratories. In 2023 IEEE International Symposium on Circuits and Systems (ISCAS), pages 1-5. IEEE. DOI: 10.1109/iscas46773.2023.10181345.
Cruz, C., Gil, R., de la Llana, A., Bravo, I., Gardel, A., and Lázaro, J. L. (2024). Remote laboratory based on a reconfigurable hardware platform. In Congreso de Tecnolog'ıa, Aprendizaje y Enseñanza de la Electrónica (TAEE). IEEE. DOI: 10.1109/taee59541.2024.10604937.
Dai, Z. and Cai, L. (2024). Autotrinity: An heterogeneous runner based remote digital system lab system. In Int. Conference on Computer and Communications (ICCC). IEEE. DOI: 10.1109/iccc62609.2024.10941836.
Doulos (2024). Eda playground. Available at: [link].
EDABoard Community (2024). Edaboard – forum for eda tools and hdl development. Available at: [link].
Falstad, P. (2024). Falstad circuit simulator. Available at: [link].
Ferreira, R., Canesche, M., Jamieson, P., Neto, O., and Nacif, J. (2024a). Examples and tutorials on using google colab and gradio to create online interactive student-learning modules. Computer Applications in Engineering Education. DOI: 10.1002/cae.22729.
Ferreira, R., Sabino, C., Canesche, M., Neto, O. P. V., and Nacif, J. A. (2024b). Aiot tool integration for enriching teaching resources and monitoring student engagement. Internet of Things, 26:101045. DOI: 10.1016/j.iot.2023.101045.
Guimarães, F. (2019). Como funciona o vga - mundo projetado. Available at: [link].
Jarusauskas, A. (2009). Fpga based vga driver and arcade game. University of Sussex, 2010. Available at: [link].
Kent, S. L. (2010). The ultimate history of video games, volume 1: From Pong to Pokemon and beyond... the story behind the craze that touched our lives and changed the world. Crown. Book.
Kluyver, T., Ragan-Kelley, B., Pérez, F., Granger, B., Bussonnier, M., Frederic, J., Kelley, K., Hamrick, J., Grout, J., Corlay, S., et al. (2016). Jupyter Notebooks-a publishing format for reproducible computational workflows. In Positioning and Power in Academic Publishing: Players, Agents and Agenda. IOS Press. Available at: [link].
Lima, I. D. A. (2021). Scalable Web-Based FPGA Board Simulator. Trabalho de conclusão de curso, UFCG. Available at: [link].
Liu, C. C. (2018). Use of fpgas in a digital system design course with computer gaming applications. In ASEE. DOI: 10.18260/1-2--31188.
Martins Jacob, G., Lopes Mendes da Silva, L., and de Melo Barros Penze, L. (2024). Github - ic-unicamp/2024s1-mc613-projeto-elektras: Projeto final de mc613. Available at: [link].
Materzok, M. (2019). Digitaljs: A visual verilog simulator for teaching. In Proceedings of the 8th Computer Science Education Research Conference, pages 110-115. DOI: 10.1145/3375258.3375272.
Mentor Graphics Corporation (2022). Modelsim user’s manual. Available at: [link].
Navas-González, R., Oballe-Peinado, Ó., Castellanos-Ramos, J., and Rosas-Cervantes, D. (2023). Practice projects for an fpga-based remote laboratory to teach and learn digital electronics. Information, 14(10). DOI: 10.3390/info14100558.
Neebel, D. J., Burek, N. J., and Griebel, T. (2012). Fpgarcade: Motivating the study of digital hardware. In 2012 ASEE Annual Conference & Exposition, pages 25-648. DOI: 10.18260/1-2--21405.
Passe, F., Canesche, M., Neto, O. P. V., Nacif, J. A., and Ferreira, R. (2020). Mind the gap: Bridging verilog and computer architecture. In 2020 IEEE International Symposium on Circuits and Systems (ISCAS), pages 1-5. IEEE. DOI: 10.1109/iscas45731.2020.9180650.
Perez, F. and Granger, B. E. (2007). Ipython: A system for interactive scientific computing. Computing in Science & Engineering, 9:21-29. DOI: 10.1109/mcse.2007.53.
Project, V. (2025). Vga playground. Available at: [link] Accessed: 2025-08-03.
Qucs Team (2024). Quite universal circuit simulator. Available at: [link].
Research, G. (2017). Google colaboratory. urlhttps://colab.research.google.com/. Available at: [link].
Sanchez-Elez, M. and Roman, S. (2015). Learning hardware design by implementing student's video-game on a fpga. In Proceedings of the International Conference on Frontiers in Education: Computer Science and Computer Engineering (FECS), page 24. The Steering Committee of The World Congress in Computer Science, Computer …. Avaialble at: [link].
Snyder, W. (2004). Verilator and systemperl. Available at: [link].
Soares, J., Lobo, J., and DEEC, F. (2011). A remote fpga laboratory for digital design students. In Portuguese meeting on reconfigurable systems (REC). Avaialble at: [link].
Stratton, J. (2024). An introduction to microsoft copilot. In Copilot for Microsoft 365: Harness the Power of Generative AI in the Microsoft Apps You Use Every Day. DOI: 10.1007/979-8-8688-0447-2_2.
Thompson, S. (1988). Vga—sign choices for a new video subsystem. IBM Systems Journal, 27:185-197. DOI: 10.1147/sj.272.0185.
Venn, M. D. (2024). Tiny tapeout: A shared silicon tapeout platform accessible to everyone. DOI: 10.36227/techrxiv.172055642.27780676/v1.
Williams, S. (2024). Icarus verilog. Available at: [link].
Williams, S. and Baxter, M. (2002). Icarus verilog: open-source verilog more than a year later. Linux Journal, 2002(99):3. Available at: [link].
Wolf, C., Glaser, J., and Kepler, J. (2013). Yosys-a free verilog synthesis suite. In Proceedings of the 21st Austrian Workshop on Microelectronics (Austrochip), volume 97. Available at: [link].
Xilinx Inc. (2023). Vivado design suite user guide. urlhttps://www.xilinx.com/products/design-tools/vivado.html. Available at: [link].
Zakai, A. (2011). Emscripten: An llvm-to-javascript compiler. In ACM Int Conf Companion on Object Oriented Programming Systems Languages and Applications Companion (OOPSLA '11). ACM. DOI: 10.1145/2048147.2048224.
Zakai, A. and contributors (2025). Emscripten official website. Available at: [link].
Descargas
Published
Cómo citar
Issue
Section
Licencia
Derechos de autor 2026 Talles de Sousa Costa, Racyus Delano Gracia Pacífico, Ricardo dos Santos Ferreira

Esta obra está bajo una licencia internacional Creative Commons Atribución 4.0.
