/cad4u

Cad4u

Primary LanguageJavaScriptApache License 2.0Apache-2.0

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

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.

Bibtex:

@inproceedings{canesche2021cad4u,
  title={Google Colab CAD4U: Hands-on Cloud Laboratories for Digital Design},
  author={Canesche, Michael and Braganca, Lucas and Neto, Omar Paranaiba Vilela and Nacif, Jose A and Ferreira, Ricardo},
  booktitle={2021 IEEE International Symposium on Circuits and Systems (ISCAS)},
  pages={1--5},
  year={2021},
  organization={IEEE}
}

Colabs:

Colab Example Resume
Logic Synthesis This lab is based PyEDA library
Verilog This lab will illustrate three Colab extensions for verilog: %%verilog, %%print_verilog, %%waveform
MIPS pipeline in Verilog This lab shows an example of a CPU five-stage MIPS processor, including Hazard and Forward detection units.
GPU This lab presents three extensions to compile & execute GPU CUDA code
Valgrind This lab presents Colab extentions to use the Valgrind Cache Simulator.
Gem5 This lab shows an extension for the Gem5 simulator framework.

Video:

EduComp2023 - Ideas for using Google Colab in Computer Education [Portuguese]