File size: 1,381 Bytes
0ba037b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# ASIC synthesis (sky130)

Synthesizes `rtl/bit_accelerator.sv` to the SkyWater 130 nm high-density standard
cells (`sky130_fd_sc_hd`, typical corner, 25 °C, 1.80 V). The liberty file is
downloaded from OpenROAD-flow-scripts at a pinned commit and checked by SHA-256.

```sh
make            # synth + equiv
make sta STA=/path/to/sta PERIOD=2.0
```

Needs Yosys. `make sta` needs [OpenSTA](https://github.com/The-OpenROAD-Project/OpenSTA)
(build it from source with CUDD; it is not packaged for Ubuntu).

## Results

| | |
|---|---|
| Cells | 1538 (139 flip-flops, plus buffers inserted for fanout) |
| Cell area | 10,063 µm² (about 0.010 mm²) |
| Equivalence to RTL | proved: 223/223 `$equiv` points (Yosys `equiv_simple` + `equiv_induct`) |
| Timing, 2.0 ns (500 MHz) | met: WNS 0.00 ns, no slew/capacitance/fanout violations |
| Timing, 1.9 ns | fails: WNS -0.03 ns |

These are **pre-layout** numbers: no floorplan, placement, clock tree or wire
parasitics. Inputs are assumed registered on the same clock. Post-layout Fmax
will be lower. Getting to a GDS for fabrication (OpenLane or
OpenROAD-flow-scripts, then a shuttle) is not done here.

Synthesis uses `-nofsm` so the gate netlist keeps the RTL state encoding, which
lets the equivalence check match registers. With FSM re-encoding, Yosys could
not prove 135 of 220 points without a sequential proof across encodings.