These are examples to demonstrate labs sessions for systemverilog-homework which are portable systemverilog examples for FPGA and ASIC.
FPGA Field Programmable Gate Array is a type of integrated circuit that can be programmed multiple times. It consists of an array of programmable logic blocks and interconnects that can be configured to perform various digital functions. FPGAs are commonly used in applications where flexibility, speed, and parallel processing capabilities are required, such as in telecommunications, automotive and aerospace.
ASIC, Application Specific Integrated Circuit, this is an integrated circuit chip designed for specific use for instance, telecommunications, automotive etc.
These examples facilitate learning for beginners by:-
- Removing EDA and FPGA vendor complexity and restrictions.
- Compensating the gap between academia and industry in solving microarchitectural problems necessary for a career in ASIC design, building CPU, GPU and networking chips.
- Reducing the barrier of entry for them or a person who is transitioning to FPGA/ASIC design.
Requirements:-
- Ubuntu 23.10,supports latest icarus verilog 12, other versions of linux are supported also.
- git.
- FPGA board, the examples support 30 boards with FPGAs from Xilinx,Altera, Gowin and Lattice and aim to be compatible with open-source ASIC design tools.
A List of boards for various FPGA vendors:-
Go to and download Quartus Lite Edition 23.1. This version needs no license to generate files to program the FPGA
Right click on installer and select properties.
Set installer executable as program.
Sellect Devices depending on board you have check add on button, agree to licence and click download.
Installation Completed
Double click on desktop icon OR Navigate to installation directory in bin directory in command line and type
./quartus
Open terminal and type
sudo apt-get install git
In terminal, at a desired location clone the main directory from github
git clone https://github.com/yuri-panchul/basics-graphics-music
Connect your FPGA board via usb cable
Open the cloned directory on your pc in terminal
git pull
To update to the new version.
Run the bash script
./check_setup_and_choose_fpga_board.bash
Sellect the corresponding number of your boards DE10-lite is 16 and press ENTER The number might change depending on cloned version of the directory. Some old boards that are not supported by Quartus 23.1 can be used by of the software.
Choose N when prompted with choice to use Qurtus GUI The reason for N is because you what to run one example after which you can try the rest.
Navigate to shift register example by typing
cd labs/08_shift_register
To Run synthesis in CLI run the script
./03_synthesize_for_fpga.bash
During synthesis a directory Run is generated, containing necessary files for programming the FPGA, after which the programmer is run by the same script to program the board using the files. After a successful!! synthesis the response should be as bellow.
Ensure all the LED switches are off All switches should be down because the left switch is used as a reset.
The image bellow illustrates how a shift register works.
Press Reset button, KEY 0 to observe how logic 1 get shifted accross the registers If you use another board, not DE10-Lite, reset might be allocated to another button.
You can run other scripts in the directory depending on what you want to do
Date 2024-02-06