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.
Downloads
References
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].
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2026 Talles de Sousa Costa, Racyus Delano Gracia Pacífico, Ricardo dos Santos Ferreira

This work is licensed under a Creative Commons Attribution 4.0 International License.
