getting-started-with-verilog
getting-started-with-verilog copied to clipboard
Verilog modules for beginners
Getting Started with Verilog
This repository contains some verilog modules which are the elementary and fundamental building blocks of a digital circuit. It is best suited for those who are just getting started with Verilog.
Table of Contents
-
Modules
- Flip Flops
- Adder Circuits
- Counters
- Multiplexers and De-Multiplexers
- Multipliers
- Miscellaneous
- Usage and Installation
- Contributing
- License
Modules
Flip Flops
-
D Flip-Flop
- without Clear/Reset
- with Synchronous Clear/Reset
- with Asynchronous Clear/Reset
-
T Flip-Flop
- without Clear/Reset
- with Synchronous Clear/Reset
- with Asynchronous Clear/Reset
-
JK Flip-Flop
- without Clear/Reset
- with Synchronous Clear/Reset
- with Asynchronous Clear/Reset
Adder Circuits
- 1 Bit Half Adder
- 1 Bit Full Adder
- N Bit Carry Look Ahead Adder
- N Bit Ripple Carry Adder
Counters
- N Bit Counter (generic)
- N Bit Johnson Counter
Multiplexers and De-Multiplexers
- 2n to 1 Multiplexer
- 1 to 2n De-Multiplexer
Multipliers
- (8 Bit) Wallace Tree Multiplier
- (4 Bit) Serial Parallel Multiplier
- (4 Bit) Booth Multiplier
Miscellaneous
- Clock (customisable tick rate)
- Clock Divider (customisable factor)
- D Latch
- Memory
- 32 Bit LFSR - Pseudo Random Number Generator
- Switch Debouncer
- Pattern Detector
- Two's Complementer
- N Bit Shift Register (universal shift register)
- Typical Example of circuit with datapath and control unit
- N-Bit Barrel Shifter
- FIFO
Usage and Installation
- Clone this repository to local machine -
git clone https://github.com/aklsh/getting-started-with-verilog.git
. - cd into the repository -
cd getting-started-with-verilog/
- Edit the testbench in the file
testbench.v
by instantiating the module you want to check, and providing the stimulus in the initial block. - Run with
make
.
Contributing
Feel free to submit pull requests with more such modules. Do take a look at the format of an accepted file before contributing.
License
MIT © Akilesh Kannan