1. Table of Contents

In this website, following programming languages are used for different purposes,

  • C/C++ : ‘To simulate the mathematical models of the design’ and ‘implementing the designs on FPGA using NIOS-II processor.’
  • Verilog/SystemVerilog/VHDL : To implement the designs on FPGA board.
  • Python : ‘To simulate the mathematical models of the designs’, ‘data processing’ and for analyzing the data received by the FPGA’.
  • HTML and JavaScript etc. : ‘To design the webpages.’

Offline tutorials in PDF, EPUB and HTML formats

Click on the ‘v.latest’ on the bottom-left in the tutorial website, and select the format for offline reading, as shown in below figure,


Fig. 1.1 Download tutorials for offline reading

1.2. Linux software list

A list of software is added in the below link, which are used to create the tutorials presented in this website. The software lists are provided for ‘Ubuntu’, ‘Lubuntu’, ‘Mint’ and ‘Fedora’.


I tried various other distros as well e.g. CentOS, Manjaro and OpenSUSE etc. But I like “Lubuntu” as it is lightweight and the software (related to Electronics designs) are very easy to install as compare to other distros.

1.3. FPGA Designs with VHDL

In this tutorial, VHDL is used to implement various designs on FPGA board. All the designs are tested on the FPGA boards. NIOS II processor is also used for designs.

1.4. FPGA designs with Verilog and SystemVerilog

In this tutorial, Verilog is used to implement various designs on FPGA board. All the designs are tested on the FPGA boards. NIOS II processor is also used for designs.

1.5. FPGA designs with MyHDL

In this tutorial, the designs of Verilog/SystemVerilog/VHDL-tutorials are re-implemented using MyHDL.

1.6. Programming with C and C++

In this tutorial, basic features of C and C++ programming are discussed for designing the embedded systems using NIOS.

1.7. Python

In the below topics, several features of Python are discussed which can be useful for ‘data processing’ and ‘simulation of mathematical designs”.

1.7.1. Advance Python

In this tutorial, basic Python features are reviewed first. And then the advance Python features are discussed such as decorator, descriptor and property etc.

1.7.2. Python for simulation

In this tutorial, Python is discussed for simulating the mathematical designs. Further, Numba and Cython are used to speed up the simulation; and Matplotlib is used for plotting the data. Lastly, OOP method is also discussed and used for simulations.

1.7.3. Matplotlib

In this tutorial, the Matplotlib library is discussed to plot the data in Python,

1.7.4. Pandas-0.22.0

In this tutorial, Pandas library is discussed for data processing. Created using Python-3.6.4 and Pandas-0.22.0

1.7.5. Machine learning

In this tutorial, the SciKit library is discussed for Machine learning.

1.7.6. Regular expressions

Some useful regular expression patterrns are shown here,

1.7.7. Statistical analysis

Here, basics of random variable and their probability distribution functions are discussed. Then PDF and CDF of these distributions are implemented using Python.

1.7.8. Testing with PyTest

In the below tutorial, ‘PyTest’ library is used to test the Python and Cython codes.

Also, we can see the methods by which Cython codes can be documented on the ReadTheDocs (see conf.py on the Git-repository). Please see the ‘Documentation Guide’ for more details about the auto-documentation of Python and Cython codes.

1.7.9. GUI (under progress)

1.8. MySQL with Python

Here, various MySQL commands are discussed. Further, Python is used to connect with the MySQL database.

1.9. Guides

Following are the short guides, which contain some useful tips/information for using Git, Unix and ReadTheDocs. Also, good ways of creating the simulators are discussed.

1.9.3. Git guide

1.9.4. Unix guide

1.10. Text-editors (VIM and Sublime)

In these tutorials, keyboard-shortcuts for the text-editors are shown,

1.11. WEB Design

This part contains various tutorials on web-designs,

1.11.1. HTML, CSS, Bootstrap, JavaScript and jQuery

Below link contains the tutorials on front-end web designs,

1.11.2. Flask

1.11.4. Selenium testing

1.12. TMUX for terminals

TMUX can be used for providing the addition features to terminals such as split-screen etc.

1.13. Latex format for Thesis and Notes

1.14. Sphinx format for Latex and html

Here, conf.py is modified for Latex and HTML documents. Also, some of the methods are discussed for creating document using Sphinx.