Welcome to the ASIC and FPGA repository! This guide will help you set up the environment and start exploring the contents and projects.
Before you begin, make sure you have the following tools installed:
- ModelSim (or alternatives like Xcelium, Icarus Verilog)
- Quartus Prime (Intel FPGAs)
- Vivado (Xilinx FPGAs)
- Icarus Verilog (an open-source Verilog simulator)
- GTKWave (for visualizing simulated signals)
-
Git (to clone the repository and manage changes):
sudo apt install git # Linux brew install git # macOS winget install --id Git.Git -e --source winget # Windows
-
Python (if needed for automation or additional scripts):
sudo apt install python3 # Linux brew install python3 # macOS winget install --id Python.Python.3 -e --source winget # Windows
-
Open your terminal and run:
git clone https://github.com/jakunzler/asic_fpga_introduction.git cd asic_fpga_introduction
-
Navigate to the appropriate directory:
-
For HDL codes:
cd src/
-
For documentation:
cd docs/
-
src/
: Contains HDL source codes (Verilog/VHDL) for ASICs and FPGAs.- Subdirectories:
- asic/: Codes related to ASIC design.
- fpga/: Codes and testbenches for FPGA.
- Subdirectories:
examples/
: Practical project examples.docs/
: Documentation and tutorials.tests/
: Files for testing and validation.
Here’s how to run the included example of a multiplexer.
-
Navigate to the project directory:
cd src/fpga/
-
Compile the code using ModelSim (or another HDL simulator):
vlog multiplexor.v multiplexor_test.v
-
Start the simulation:
vsim multiplexor_test
-
Run all the tests:
run -all
-
Check the results in the terminal or visualize the signals in the Waveform.
-
Create an HDL module:
- Write a module in Verilog or VHDL inside the
src/
directory.
- Write a module in Verilog or VHDL inside the
-
Add a Testbench:
- Create a test file to validate your module's behavior.
-
Compile and Simulate:
- Follow the steps above to compile and simulate.
-
Add Documentation:
- Explain your module’s functionality in a Markdown file within the
docs/
directory.
- Explain your module’s functionality in a Markdown file within the
Use the Makefile
(if included) to simplify task execution:
-
To compile and simulate:
make simulate
-
To clean up generated files:
make clean
If you’d like to contribute, check out CONTRIBUTING.md for guidelines on getting started.
- Learn how to install the Cadence product management tool, Install Scape.
- Already installed Xcelium? Check out its roadmap.
- For a quick introduction to Verilog HDL, visit Roadmap to Verilog.
- For a quick introduction to VHDL HDL, visit Roadmap to VHDL.
- See some recommended FPGA Tools.
- Are you searching for the theory behind digital circuits, find it here
- Let me guide you through thoughtful steps in carefully prepared tutorials.
- Lots of ideas and ready to launch circuits in the examples directory.
- If you're in a hurry and want to jump right into the code, check the src directory.
Follow this guide to start exploring the projects and developing new designs! If you have any questions or need support, open an issue in the repository or get in touch. 😊