This repository contains the design and optimization of a Multi-Layer Perceptron (MLP) implemented in Cadence Virtuoso. The project includes:
- Schematic Design – Gate-level implementation of the MLP.
- Layout Design – Physical layout of the MLP in Cadence Virtuoso.
- Layout Optimization – Area optimization to reduce the overall footprint.
- Verification – Simulated and verified using HSPICE.
- Project Report – project_stage_4.pdf
This project is a simple implementation of a neuron that can be used in a neural network. It takes in a series of weights and biases and returns an output value based on an activation function.
Our design consists of:
- Multipliers – Multiply inputs by trained weights to tune the neuron.
- Adders – Sum all multiplied values into a single output.
- Multiplexer (MUX) – Implements the ReLU activation function.
Most transistors are sized with a beta ratio of 1.5 to ensure balanced rise and fall times. The exception is our mirror adder cells, which use a beta ratio of 1 to maintain a more compact layout.
- Cadence Virtuoso – Schematic & Layout design
- HSPICE – Circuit simulation & verification
- ASAP7 PDK Library – For gate-level design
- DRC & LVS – Design rule and layout verification

