Silicon foundries provide a limited set of models for passive components in their PDKs. Even though transformers are very valuable for single-ended to differential signal conversion and vice versa, as well as for matching network design, they are mostly completely omitted and models for those components are not shipped within PDK. With inductors, the situation is a bit different, models are usually provided, but only in a limited frequency range (up to 20 GHz). That is rarely sufficient for designers working on products in the MW frequency range.
In order to solve this problem, an EM simulator needs to be used to model missing passive components. However, design iterations and optimization with an EM simulator in the loop are very slow and tedious, leading to tape-out delays and increased development cost.
PassiveLib is a tool that automatize synthesis process of on-chip passive components in the required geometry and frequency range for any process node.
Synthesis can be done in two ways:
1. Generate parameterized spice model
Your input:
Component type and range of geometric parameters (diameter, metal width, number of turns, spacing between turns, …)
PassiveLib output:
DRC clean set of gds files
Two scripts runEmx.sh and runModelgen.sh
User to do:
Run script runEmx.sh to simulate all generated gds files for the provided component using Cadence EMX EM solver
Run script runModelgen.sh to create a scalable model for the required component in the given geometry and frequency range using Cadence Modelgen tool
Result:
Result is parameterized spice model (plIndSymRect.scs)
2. Sweep geometry
Your input:
Component type and range of geometric parameters (diameter, metal width, number of turns, spacing between turns, …)
Every component can have octagonal or rectangular geometry, and it can be with or without ground shield
Interface on the left side is used to draw layout in Cadence Virtuoso or to sweep geometry using EMX or FastHenry
For layout drawing every parameter needs to take one value and user should press apply or OK button
Parameters with the name ending with :: are sweepable
Sweep format is min:max:step
In the section Sweep two option are available EMX (SweepEMX) or FastHenry (SweepFastH) to sweep geometry
Sweep using FastHenry:
FastHenry can be used to sweep thousands of different geometries in the range of several minutes
This is specially valuable for designing transformers (for matching networks), since primary and secondary inductors and coupling coefficient are dependent on each other, and it is difficult to design them independently
Results are calculated at DC, but there are accurate up to 0.5*self-resonance-frequency
Once simulation is finished, filter section can be used to show only components with required performance
Format for filtering is min:max
Example: if we want to see only transformers with primary in range from 1nH to 1.1nH we should use 1e-9:1.1e-9 for Lp in the Filter section
Sweep using EMX:
EMX is used for better accuracy
After selecting several geometries based on FastHenry simulation, EMX can be used for fine tuning
Frequency at which we want to calculate L/Q/k should be chosen
After selecting component in the Report section, user can plot L/Q/k by applying some of the options from the Plot section
Simulation results can be saved for latter use
Format for filtering is min:max or only min for Q and srf
Example: if we use 10 for Qp it will show all components with Qp higher than 10, if we use 10:15 it will show all components with Qp in range from 10 to 15