This project implements different 32-bit multiplier algorithms in digital design and will analyze metrics using open-source EDA tools.
Currently, this project has three different implementations:
- Default
*operator in SystemVerilog - Binary Multiplication
- Radix-4 Multiplication
Verilator- Fast RTL simulation and lintingIcarus Verilog- 4-state RTL simulationCocoTB- Python-based HDL verificationYosys- RTL synthesisOpenLane 2- ASIC RTL-to-GDS flowOpenSTA- Static timing analysis, included through OpenLaneOpenROAD- Place-and-route, included through OpenLaneGTKWaveorSurfer- Waveform viewing (Either works well)
Recommended to use Python3.10+, git, and Ubuntu.
This project implements and verifies a 32-bit radix-4 multiplier in SystemVerilog, then runs it through an open-source ASIC flow using OpenLane 2 and the SkyWater SKY130 PDK.
config.json- Synthesis Config FileMakefilertl/- Where all RTL livesradix4_mult.svcounter.sv
tests/- System Verilog Testbenchestb_radix4_mult/- Main Testbench
cocotests/- CocoTB tests if neededscripts/- Helpful automation scriptsruns/- OpenLane Results
- Check out Cal Poly's CARP website for more information and resources: