GF180MCUPDK.jl
The purpose of this package is to make it extremely easy to include the GF180MCUPDK by use of the Julia package manager which allows for simple installation, compatible version resolution and updating.
PDK Contents
This GF180MCUPDK originally came from the Google/Global Foundries collaboration here. If there are issues then please open an Issue.
Usage
1. Netlist Usage
When CedarSim reads the netlist and sees a file path for an .include
or .lib
file with a jlpkg://GF180MCUPDK
prefix it will reference the GF180MCUPDK
model files via the Julia package mechanism. Modify your netlist like so:
.include "jlpkg://GF180MCUPDK/model/design.ngspice"
.LIB "jlpkg://GF180MCUPDK/model/sm141064.ngspice" typical
2. Top-level Julia Script
Then in your Julia script that runs the simulation, ensure to load the GF180MCUPDK
package as well as CedarEDA
. If the Julia package manager asks you to install the package then answer y
.
julia> using GF180MCUPDK
│ Package GF180MCUPDK not found, but a package named GF180MCUPDK is available
│ from a registry.
│ Install package?
│ (@v1.11) pkg> add GF180MCUPDK
└ (y/n/o) [y]: y
julia> using CedarEDA
Now to run a simulation with the PDK load CedarEDA
create a script like so:
using CedarEDA
using CedarWaves
using GF180MCUPDK
sm = SimManager("top.spice") # read netlist with .param cload and rload
# Setup 3x3=9 point parameter sweep
params = ProductSweep(
cload=[10e-12, 20e-12, 50e-12],
rload=[1000, 10e3, 20e3],
)
sp = SimParameterization(params=params, tspan=(0, 20-e6)) # parameterize netlist
tran1 = tran!(sp) # run transient
inspect(tran1.tran.node_vout) # plot signals
p2p = peak2peak.(tran1.tran.node_vout) # measure P2P voltage of Vout across 9 point sweep
The above will run a 2D parameter sweep and make a peak2peak
measurement of the vout
node for each sweep point.
Version Control
Since GF180MCUPDK
is a regular Julia package it has version numbers and users can specify which version of the PDK is compatible with their project or simulator. See the Managing Documentation in the Pkg manual for more info.