Desenvolvendo Ferramentas para Ensino de RISC-V com Python, Verilog, Matplotlib, SVG e ChatGPT
DOI:
https://doi.org/10.5753/ijcae.2024.5343Keywords:
Google Colab, Software Pipelining, Escalonamento, GPUAbstract
O uso de simuladores é um facilitador para o ensino de arquitetura de computadores. Porém, o desenvolvimento de simuladores e ferramentas de visualização proporciona uma visão mais aprofundada aos estudantes. Este trabalho apresenta diversas ferramentas para o ensino de projeto de processadores RISC-V. Para motivar os estudantes, utilizamos o ambiente Google Colab com a linguagem Python no desenvolvimento das ferramentas para implementações de alto nível, juntamente com a linguagem Verilog para implementações mais detalhadas do RISC-V. São apresentados exemplos de interfaces interativas com visualizações gráficas utilizando a biblioteca Matplotlib e o formato vetorial SVG. Devido à popularidade do Python, o desenvolvimento é facilitado com o apoio de modelos de linguagem como ChatGPT para geração parcial do código de interface e visualização. O trabalho foi desenvolvido em conjunto com os alunos da disciplina de Arquitetura de Computadores da Universidade Federal de Viçosa. Todas as ferramentas são abertas com o propósito de serem continuadas, servindo de base para o desenvolvimento de exercícios, exemplos e mais ferramentas para ensino.
Descargas
Citas
FA Alves, Danilo Almeida, Lucas Bragança, André BM Gomes, Ricardo S Ferreira, and José Augusto M Nacif. Ensinando arquiteturas vetoriais utilizando um simulador de instruções mips. International Journal of Computer Architecture Education (IJCAE), 4(1):9–12, 2015.
Sahan Bandara, Alan Ehret, Donato Kava, and Michel A Kinsy. Brisc-v: An open-source architecture design space exploration toolbox. arXiv preprint arXiv:1908.09992, 2019.
Hector Perez Baranda, Jeronimo Costa Penha, and Ricardo Ferreira. Implementação de um preditor de desvio no mips 5 estágios. International Journal of Computer Architecture Education, 6, 2018.
Michael Canesche, Lucas Bragança, Omar Paranaiba Vilela Neto, Jose A Nacif, and Ricardo Ferreira. Google colab cad4u: Hands-on cloud laboratories for digital design. In 2021 IEEE International Symposium on Circuits and Systems (ISCAS), pages 1–5. IEEE, 2021.
Kaya Celebi. Python risc-v assembly code assembler package. [link].
Universidade Federal de Vicosa. Exemplos de simuladores em google colab para ensino risc-v. [link].
Ricardo Ferreira e José Augusto Nacif. Ensino de software pipelining e escalonamento em gpus com python. International Journal of Recent Contributions from Engineering, Science & IT (iJES), 12(2):20 – 29, 2023.
Guilherme Álvaro RM Esmeraldo, Robson Gonçalves Fechine Feitosa, Edna Natividade da Silva Barros, Eduardo Carlos P da S Proto, Harley Macedo de Mello, Edson Barbosa Lisboa, Esdras L Bispo Jr, and Gustavo Augusto Lima de Campos. Uma abordagem para ensino-aprendizado de projetos de sistemas computacionais com utilização do simulador compsim com suporte à arquitetura risc-v. Revista Brasileira de Informática na Educação, 31:271–288, 2023.
Ricardo Ferreira, Michael Canesche, Peter Jamieson, Omar P Vilela Neto, and Jose AM Nacif. Examples and tutorials on using google colab and gradio to create online interactive student-learning modules. Computer Applications in Engineering Education, page e22729, 2024.
Ricardo Ferreira, Jose Nacif, Salles Magalhaes, Thales de Almeida, and Racyus Pacifico. Be a simulator developer and go beyond in computing engineering. In 2015 IEEE Frontiers in Education Conference (FIE), pages 1–8. IEEE, 2015.
Ricardo Ferreira, Carlos Sabino, Michael Canesche, Omar Paranaiba V Neto, and José Augusto Nacif. Aiot tool integration for enriching teaching resources and monitoring student engagement. Internet of Things, 26:101045, 2024.
Ricardo S Ferreira, Antonio Carlos S Beck, Luigi Carro, Andre Toledo, and Aroldo Silva. A java framework to teach computer architecture. In New Trends and Technologies in Computer-Aided Learning for Computer-Aided Design: IFIP TC10 Working Conference: EduTech 2005, October 20–21, Perth, Australia, pages 25–35. Springer, 2005.
Ricardo S Ferreira, Ulisses Chieppe, Giliardo C Freitas, and Cristiano Biancardi. Software livre no ensino de sistemas digitais e arquitetura de computadores. Universidade Federal de Viçosa, Departamento de Ciência da Computação, 2003.
Roberto Giorgi and Gianfranco Mariotti. Webrisc-v: A web-based education-oriented risc-v pipeline simulation environment. In Proceedings of the workshop on computer architecture education, pages 1–6, 2019.
Jesse Hines. Risc-v-graphical-datapath-simulator. [link].
Dmitry Kirsanov. The Book of Inkscape: The Definitive Guide to the Graphics Editor. No Starch Press, 2021.
Matthias Koenig and Roin Rasch. Digital teaching an embedded systems course by using simulators. In 2021 ACM/IEEE Workshop on Computer Architecture Education (WCAE), pages 1–7. IEEE, 2021.
Marek Materzok. Digitaljs: A visual verilog simulator for teaching. In Proceedings of the 8th Computer Science Education Research Conference, pages 110–115, 2019.
Fernando Passe, Michael Canesche, Omar Paranaiba Vilela Neto, Jose A Nacif, and Ricardo Ferreira. Mind the gap: Bridging verilog and computer architecture. In 2020 IEEE International Symposium on Circuits and Systems (ISCAS), pages 1–5. IEEE, 2020.
David A Patterson and John L Hennessy. Computer organization and design RiscV edition: the hardware software interface. Morgan kaufmann, 2017.
Jeronimo Costa Penha, Geraldo Fontes, and Ricardo Ferreira. Mipsfpgaum simulador mips incremental com validaçao em fpga. International Journal in Computer Architecture Education (IJCAE), 5(1):19–25, 2016.
Fernando Pérez and Brian E Granger. Ipython: a system for interactive scientific computing. Computing in science & engineering, 9(3):21–29, 2007.
Cristóbal Ramírez, César Alejandro Hernández, Oscar Palomar, Osman Unsal, Marco Antonio Ramírez, and Adrián Cristal. A risc-v simulator and benchmark suite for designing and evaluating vector architectures. ACM Transactions on Architecture and Code Optimization (TACO), 17(4):1–30, 2020.
Eric Steven Raymond. A catedral e o bazar. The Linux Logic Home Page, 12, 1998.
Isabel Sanches. Do ‘aprender para fazer’ao ‘aprender fazendo’: as práticas de educação inclusiva na escola. Revista lusófona de educação, 19(19), 2011.
G Savaton. A visual simulator for teaching computer architecture using the risc-v instruction set. Guillaume-Savaton-ESEO/emulsiV, 2021.
Guillaume Savaton. emulsiv is a visual simulator for a simple risc processor called virgule. [link].
James Somers. The scientific paper is obsolete. The Atlantic, 4, 2018.
Boston University. Brisc-v (boston university risc-v) simulator and teaching tool. [link].
Keyhan Vakil. Venus, risc-v simulator. [link].
Kenneth Vollmar and Pete Sanderson. Mars: an education-oriented mips assembly language simulator. In Proceedings of the 37th SIGCSE technical symposium on Computer science education, pages 239–243, 2006.
Stefan Wallentowitz. Python model of the riscv isa. [link].