Simulations

Install ngspice to simulate circuits.

sudo apt install ngspice -y

Then run magic to extract spice description of the circuit.

magic -T sky130A.tech designs/counter/runs/RUN_2024.03.23_12.36.33/results/final/mag/counter

When you open magic’s terminal, choose one of the below simulations by running appropriate commands. As the result you find a file named counter.spice in OpenLane directory.

Post-synthesis

Run following command in magic’s terminal.

extract all
ext2spice lvs
ext2spice subcircuit on
ext2spice
quit

Post-layout

Run following command in magic’s terminal.

extract all
ext2spice lvs
ext2spice cthresh 0.01
ext2spice subcircuit on
ext2spice
quit

SPICE

Open a new terminal and find counter.spice file in the OpenLane directory and add the following text to the file.

VDD VPWR 0 3.3V
VSS VGND 0 0.0V

.param mc_mm_switch=0
.param mc_pr_switch=1

.lib /home/debian/.volare/sky130A/libs.tech/ngspice/sky130.lib.spice tt

Xcounter VGND VPWR clk p q[0] q[1] q[2] q[3] counter
Vclk clk VGND PULSE(0V 3.3V 0ns 0.1ns 0.1ns 2ns 4ns)

.tran 1ns 60ns

.control
set ngbehavior=hsa
set ng_nomodcheck
run
plot "q[0]" "q[1]"-3.3 "q[2]"-6.6 "q[3]"-9.9
.endc
.end

Then run ngspice to simulate the circuit.

ngspice counter.spice

Quartus