A complete VLSI implementation of an 8-bit × 8-bit unsigned integer multiplier using Braun array architecture designed for SKY130 PDK.
This project implements a high-performance 8×8 Braun array multiplier that performs unsigned integer multiplication in a single combinational cycle. The design uses a regular array structure with 64 processing elements arranged in an 8×8 grid, demonstrating advanced VLSI design concepts and parallel processing techniques.
Processing Element Grid Layout:
B0 B1 B2 B3 B4 B5 B6 B7
A0 PE PE PE PE PE PE PE PE → P0
A1 PE PE PE PE PE PE PE PE → P1
A2 PE PE PE PE PE PE PE PE → P2
A3 PE PE PE PE PE PE PE PE → P3
A4 PE PE PE PE PE PE PE PE → P4
A5 PE PE PE PE PE PE PE PE → P5
A6 PE PE PE PE PE PE PE PE → P6
A7 PE PE PE PE PE PE PE PE → P7-P15
The complete multiplication result is available as:
Result = A[7:0] × B[7:0] = P[15:0]
The multiplier performs comprehensive multiplication operations across the full input range:
Multiplication Examples:
0x00 × 0x00 = 0x0000 # Zero multiplication
0xFF × 0x01 = 0x00FF # Single bit multiplication
0x0F × 0x0F = 0x00E1 # Mid-range values
0xAA × 0x55 = 0x3872 # Alternating bit patterns
0x80 × 0x02 = 0x0100 # Power-of-2 multiplication
0xFF × 0xFF = 0xFE01 # Maximum value multiplication
0x12 × 0x34 = 0x03A8 # Random test pattern
0xF0 × 0x0F = 0x0E10 # Complementary patterns
This multiplier demonstrates:
Rakesh Somayajula
This project showcases professional VLSI design practices and serves as a comprehensive educational reference for digital multiplier implementation using industry-standard tools and methodologies.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | Multiplicand A[0] - Input A bit 0 | Product P[0] - Product bit 0 (LSB) | Multiplier B[0] / Product P[8] - Input B bit 0 / Output P bit 8 |
1 | Multiplicand A[1] - Input A bit 1 | Product P[1] - Product bit 1 | Multiplier B[1] / Product P[9] - Input B bit 1 / Output P bit 9 |
2 | Multiplicand A[2] - Input A bit 2 | Product P[2] - Product bit 2 | Multiplier B[2] / Product P[10] - Input B bit 2 / Output P bit 10 |
3 | Multiplicand A[3] - Input A bit 3 | Product P[3] - Product bit 3 | Multiplier B[3] / Product P[11] - Input B bit 3 / Output P bit 11 |
4 | Multiplicand A[4] - Input A bit 4 | Product P[4] - Product bit 4 | Multiplier B[4] / Product P[12] - Input B bit 4 / Output P bit 12 |
5 | Multiplicand A[5] - Input A bit 5 | Product P[5] - Product bit 5 | Multiplier B[5] / Product P[13] - Input B bit 5 / Output P bit 13 |
6 | Multiplicand A[6] - Input A bit 6 | Product P[6] - Product bit 6 | Multiplier B[6] / Product P[14] - Input B bit 6 / Output P bit 14 |
7 | Multiplicand A[7] - Input A bit 7 | Product P[7] - Product bit 7 | Multiplier B[7] / Product P[15] - Input B bit 7 / Output P bit 15 (MSB) |