[go: nahoru, domu]

Skip to content

Guilherme-jose/cad4u

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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]

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 88.6%
  • Python 4.9%
  • TypeScript 3.8%
  • C 1.7%
  • C++ 0.5%
  • Makefile 0.2%
  • Other 0.3%