
The ECC Processor is a compact hardware accelerator implemented in Verilog for TinyTapeout.
The design accepts two 8-bit input values:
ui_in[7:0] : ECC scalar value (k)uio_in[7:0] : ECC point coordinateOn every rising edge of the clock, the processor performs a simplified ECC arithmetic operation:
Result = (Scalar × Point) + Scalar
The computed result is stored in an internal register and presented on the output bus uo_out[7:0].
The design demonstrates the basic concept of scalar multiplication used in Elliptic Curve Cryptography (ECC) while remaining small enough to fit within a TinyTapeout 1x1 tile.
rst_n = 0) for one clock cycle.rst_n = 1).ui_in.uio_in.clk.uo_out.Example:
| Scalar (ui_in) | Point (uio_in) | Output (uo_out) |
|---|---|---|
| 5 | 3 | 20 |
| 10 | 4 | 50 |
| 7 | 2 | 21 |
Calculation:
Output = (Scalar × Point) + Scalar
No external hardware is required.
The design uses only the standard TinyTapeout I/O interface and can be tested directly through simulation or on TinyTapeout demonstration boards.
| # | 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 |