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’.
MATLAB : ‘To simulate the mathematical models of the designs’.
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,
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.
Online : https://vhdlguide.readthedocs.io
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.
Online : https://verilogguide.readthedocs.io
1.5. FPGA designs with MyHDL¶
Online : https://myhdlguide.readthedocs.io
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.
Online : https://cppguide.readthedocs.io
In the below topics, several features of Python are discussed which can be useful for ‘data processing’ and ‘simulation of mathematical designs”.
1.8.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.8.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.
In this tutorial, the Matplotlib library is discussed to plot the data in Python,
In this tutorial, Pandas library is discussed for data processing. Created using Python-3.6.4 and Pandas-0.22.0
1.8.5. Machine learning¶
In this tutorial, the SciKit library is discussed for Machine learning.
In this tutorial, the Tensorflow is discussed for Machine learning.
1.8.7. Regular expressions¶
Some useful regular expression patterrns are shown here,
1.8.8. 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.8.9. 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.9. MySQL with Python¶
Here, various MySQL commands are discussed. Further, Python is used to connect with the MySQL database.
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.11.1. Simulation guide¶
1.11.2. Documentation guide¶
1.12. Text-editors (VIM and Sublime)¶
In these tutorials, keyboard-shortcuts for the text-editors are shown,
1.13. WEB Design¶
This part contains various tutorials on web-designs,
Below link contains the tutorials on front-end web designs,
1.14. TMUX for terminals¶
TMUX can be used for providing the addition features to terminals such as split-screen etc.
1.15. Latex format for Thesis and Notes¶
Latex format can be downloaded from below link (go to link and click on ‘clone and download’ and ‘Download Zip file’),
1.16. 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.