
This project implements a compact ECC (Elliptic Curve Cryptography) Scalar Multiplication engine for Tiny Tapeout.
The design accepts an 8-bit scalar value (k) through the dedicated input pins and an 8-bit point coordinate (P) through the bidirectional input pins. On every rising edge of the clock, the circuit performs a simplified scalar multiplication operation:
Q = k × P
The result is stored in an internal register and provided on the output pins. This project demonstrates the core concept of scalar multiplication used in ECC systems while remaining small enough to fit within a 1×1 Tiny Tapeout tile.
ui_in[7:0] : Scalar value (k)uio_in[7:0] : Point coordinate (P)uo_out[7:0] : Result of scalar multiplication (Q)The computation is synchronized with the clock and can be reset using the active-low reset signal.
rst_n = 0.rst_n = 1.ui_in.uio_in.uo_out.| Scalar (k) | Point (P) | Output (Q) |
|---|---|---|
| 5 | 3 | 15 |
| 10 | 4 | 40 |
| 20 | 30 | 88 |
Note: Outputs are limited to 8 bits.
No external hardware is required.
The project can be tested entirely using Tiny Tapeout simulation, gate-level simulation, or FPGA-based verification environments.
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | Scalar bit 0 | Result bit 0 | Point bit 0 |
| 1 | Scalar bit 1 | Result bit 1 | Point bit 1 |
| 2 | Scalar bit 2 | Result bit 2 | Point bit 2 |
| 3 | Scalar bit 3 | Result bit 3 | Point bit 3 |
| 4 | Scalar bit 4 | Result bit 4 | Point bit 4 |
| 5 | Scalar bit 5 | Result bit 5 | Point bit 5 |
| 6 | Scalar bit 6 | Result bit 6 | Point bit 6 |
| 7 | Scalar bit 7 | Result bit 7 | Point bit 7 |