This repository focuses on designing and simulating logical circuits using Verilog HDL (Hardware Description Language) with the Icarus Verilog simulator. This project aims to provide a collection of Verilog code examples and testbenches for various logical circuits, facilitating learning and experimentation in digital design and HDL programming.
-
Basic Logic Gates:
- Verilog code for basic logic gates such as AND, OR, NOT, NAND, NOR, XOR, and XNOR.
- Testbenches to verify the functionality of each gate through simulation.
-
Combinational Circuits:
- Implementation of combinational logic circuits including multiplexers, demultiplexers, encoders, decoders, and adders (half and full adders).
- Simulation files to test and validate the behavior of these circuits.
-
Sequential Circuits:
- Verilog designs for sequential circuits like flip-flops (SR, D, JK, T) and latches.
- Testbenches to simulate clock-driven operations and state changes in sequential circuits.
-
Arithmetic Circuits:
- Code for arithmetic circuits such as ripple carry adders, subtractors, multipliers, and dividers.
- Test cases to ensure accurate arithmetic operations and handling of carry/borrow bits.
-
Shift Registers and Counters:
- Implementation of various types of shift registers (serial-in serial-out, serial-in parallel-out, etc.).
- Design of different counters (binary, BCD, up/down) with corresponding simulation files.
The primary objective of this repository is to enhance understanding of digital circuits and the practical application of HDL in circuit design and simulation. It also provides a strong foundation for more advanced digital design projects and encourages the exploration of complex digital systems using Verilog HDL.