This project presents the design and FPGA implementation of a Carry Select Adder (CSLA) based on Ripple Carry Adder (RCA) architecture using Verilog HDL.
The Carry Select Adder improves computational speed by generating results for multiple carry conditions in parallel and selecting the appropriate output through multiplexing logic. This architecture significantly reduces carry propagation delay compared to conventional Ripple Carry Adders, making it suitable for high-performance arithmetic circuits.
- Modular Verilog HDL implementation
- FPGA-ready architecture
- Reduced propagation delay
- Hierarchical design methodology
- Functional simulation and verification
- Timing and resource utilization analysis
- Scalable architecture for wider bit-widths
The design consists of:
- Full Adder modules
- Ripple Carry Adder blocks
- Parallel carry computation paths
- Multiplexer-based carry selection logic
- FPGA implementation layer
Input A, B │ ▼ ┌─────────────┐ │ RCA (Cin=0) │ └─────────────┘ │ │ ┌─────────────┐ │ RCA (Cin=1) │ └─────────────┘ │ ▼ ┌─────────────┐ │ Multiplexer │ └─────────────┘ │ ▼ Sum & Cout
carry-select-adder-fpga/
├── src/ │ ├── full_adder.v │ ├── ripple_carry_adder.v │ └── carry_select_adder.v │ ├── testbench/ │ └── csla_tb.v │ ├── constraints/ │ └── fpga_constraints.xdc │ ├── docs/ │ ├── architecture_diagram.png │ ├── timing_report.pdf │ └── project_report.pdf │ ├── results/ │ ├── simulation_waveform.png │ ├── synthesis_report.pdf │ └── fpga_output.jpg │ ├── README.md ├── LICENSE └── .gitignore
A single-bit Full Adder is designed as the fundamental arithmetic building block.
Multiple Full Adders are cascaded to construct Ripple Carry Adders.
Two RCA blocks operate simultaneously:
- RCA assuming Carry-In = 0
- RCA assuming Carry-In = 1
The actual carry input selects the appropriate precomputed result.
The design is synthesized, implemented, and tested on FPGA hardware.
The design was verified through functional simulation to ensure:
- Correct Sum generation
- Correct Carry propagation
- Proper multiplexer selection
- Stable operation across test vectors
| Parameter | RCA | CSLA |
|---|---|---|
| Speed | Lower | Higher |
| Delay | High | Reduced |
| Area | Smaller | Slightly Larger |
| Throughput | Moderate | High |
- Arithmetic Logic Units (ALUs)
- Digital Signal Processors
- FPGA Accelerators
- High-Speed Computing Systems
- Embedded Arithmetic Units
- Processor Datapaths
- Verilog HDL
- Xilinx Vivado
- ModelSim
- FPGA Development Board
- Digital Logic Design
- Square Root CSLA implementation
- Low-power optimization techniques
- Pipelined architecture
- 16-bit, 32-bit, and 64-bit extensions
- ASIC implementation and comparison
Joshua
This project is released under the MIT License.