Litcius/Paper detail

Google Colab CAD4U: Hands-On Cloud Laboratories for Digital Design

Michael Canesche, Lucas Bragança, Omar P. Vilela Neto, José Augusto M. Nacif, Ricardo Ferreira

202140 citationsDOI

Abstract

Google Colab is a cloud Jupyter notebook widespread used to teach machine learning by writing text explanations and Python codes through the browser. This work introduces new Colab extensions to teach logic circuit design, Verilog language, processor, and GPU architectures. Colab allows us to share reproducible experiments on the Web. The students become motivated to do laboratory assignments without download/configure software packages and dependencies on their computers. Furthermore, almost all universities had to shut down due to the COVID-19 pandemic, forcing us to adapt to virtual learning scenarios. Colab provides portability and accessibility since it can even run on smartphones. The lab assignments include intermediate guided exercises, text explanations, figures, online quizzes, problem sets, and basic hands-on tasks. We develop a simple setup for Icarus Verilog, PyEDA, CUDA, Valgrind, and Gem5 frameworks. This work presents Verilog teaching and computer architecture simulation insights by using Valgrind and Gem5, and GPU computer architecture profiling at the thread and instruction assembly level.

Topics & Concepts

Computer scienceCloud computingSoftware portabilityVerilogPython (programming language)ArchitectureInstruction setAssembly languageCUDAComputer architectureSoftwareCompilerMultimediaSoftware engineeringOperating systemField-programmable gate arrayProgramming languageVisual artsArtParallel Computing and Optimization TechniquesEmbedded Systems Design TechniquesRadiation Effects in Electronics