- Add a simulation summary for the
ngspice
tool
- Add reserved variable
netlist_source
- Allow parameters to be specified via
--parameter
as a pattern - Add
--skip-parameter
to skip certain parameters- Applied after parameters have been queued via
--parameter
- Also allows the use of patterns
- Applied after parameters have been queued via
- Implement custom scripts for the
ngspice
toolscript
specifies the Python scriptscript_variables
specifies the output variables
- Improve various error messages
- Variables in
collate
andplot
entries can be specified with or without bit vectors ([a:b]
). For now bit vectors are unused. - A collate condition can still be used in a plot (but won't be displayed in the legend).
- Added a tutorial for custom scripts using the
ngspice
tool
- Implement plot limits
- Plots have an optional argument
limits
, which can betrue
,false
orauto
- Plots have an optional argument
- Add
runs
path to datasheet- Specifies where the
runs
directory will be created
- Specifies where the
- Add
--run-path
to arguments- Overrides
runs
path from datasheet
- Overrides
- Add
magic_antenna_check
as a tool- Performs antenna violation checks using magic
- Returns
antenna_violations
, the number of violations that have occured
- Improve netlist regeneration:
- Call
extract no all
when netlist source is layout - Use correct layout image names when GDS is compressed
- Don't crash when GDS layout is not found
- Call
- Fix: Do not include broken links in the documentation if no layout is available
- Generate a gzip compressed GDS file from magic layout
- Use absolute path for layout
- Use
path search +path
in magic
- Improve layout detection
- Fix
.gds.gz
handling - Unify codepaths for layout detection
- Unify log messages during regeneration
- Fix
- Improve plots
- Sort minimum/typical/maximum labels
- Connect points with the same condition on the x-axis
- Print when netlists do not need regeneration
- Named results
- Tools generate named results
- Spec entries apply per result
- Named plots
- Enable multiple plots per paramter
- Improve documentation generation
- Copy plots to the documentation directory and reference them in the Markdown
- New format for CACE substitutions
CACE{condition}
andCACE[expression]
- Fallback for datasheet version <= 5.0
- Export the schematic netlist with
top_is_subckt
enabled, which preserves certain spice parameters. This improves the simulation accuracy compared to layout extracted. - Fix for layout extraction: Reload the top cell after
readspice
- Do not perform substitutions if the conditions is not defined.
- After successful execution of CACE, the documentation is generated under the specified path "documentation"
- Generate Markdown summary of the design
- Generate Markdown summary of the results
- Export the symbol as SVG
- Export the schematic as SVG
- Export the layout as PNG
- Added
--nofail
argument
- Major rewrite of tool implementations:
- Each tool inherits from the
Parameter
class - Behavior is implemented by overwriting methods
- Registered via
@register_parameter
- Each tool inherits from the
- Unified
physical_parameters
andelectrical_parameters
toparameters
- Each parameter and each simulation run of a parameter (e.g.
ngspice
) has their own subfolder - Rewrite of the result handling
- Rewrite of plotting
- Added the
klayout_drc
tool - GDSII will be automatically generated from mag files
- Tools using magic will prefer mag files
- Remove
--keep
argument since all files are kept underrun/
- Added
--save
argument to save the summary upon successful completion - Cancel run with Ctrl+C
- Temporarily disable the GUI until it can be revised with the current changes
- Bugfix: Do not crash if certain entries are missing from authorship
- Improvement: Allow to specify
'null'
asnull
- Improve the .txt to .yaml conversion: export numbers as integers or float
- Fix paths in default LVS setup
- Added
--max-runs
to limit the maximum number of runs in the run folder
- Print the total runtime after completion
- Removed
--no-simulation
as the output files never exist in a new timestamp - Renamed
--parallel_parameters
to--parallel-parameters
- Added
--max-runs
to limit the maximum number of runs in the run folder
- Add support for the
-j
/--jobs
flag to limit the maximum number of jobs running in parallel - Parallelized simulations with collated conditions (Monte Carlo for example)
- Do not generate testbench netlists in parallel, this leads to race conditions
- Improve netlist generation
- Schematic netlist is always generated to get the correct port order for the extracted netlists
- Abort early if netlist generation fails
- Add a new logging system (adopted from OpenLane 2)
- Store output under
run/timestamp/
- New recommended design directory structure
- Add support for
{cond=value}
- Add portability checks for paths. Warn the user:
- If there are any paths containing
libs.tech
orlibs.ref
that are not using{PDK_ROOT}
- If the path has the user's $HOME as a leading component
- If there are any paths containing
- Add Rich as dependency
- Pass
--batch
to ngspice, to exit simulations after they are done
- Add a progress bar
- Render the Markdown of the summary
- Bugfix: Show a fail in the summary if a simulation fails
- Remove JSON datasheet format
- Add YAML datasheet format, set as default
- Remove cli interface from
cace_read.py
andcace_write.py
- Remove
JSON
in the file picker - Add
YAML
to the file picker - Remove bit-rotted
load_results
- Remove
--json
argument
- Improve extraction with only a GDS file
- Restored functionality of
sequential
runtime option
- Add
--version
argument
- Add
--version
argument
- Add
markdown_summary
- Call
markdown_summary
at the end and print to stdout - Change
--summary
argument to print to file
- Improve scheduling of parameters
- Simpler and more reliable
- Queued parameters can now be canceled
- While a simulation is running, the netlist source cannot be changed
- Lower setuptools_scm requirement to >=7
- Don't crash if no datasheet is found
- Simplify the code a lot
- Use the
SimulationManager
- Use the
SimulationManager
- Simulations can now be stopped
- Only update row with simulation results
- Added GUI option for
parallel_parameters
- Fix setting limits in edit window
- Create the
SimulationManager
that owns the datasheet and performs the simulations PhysicalParameter
- Class to manage evaluation of physical parametersElectricalParameter
- Class to manage evaluation of electrical parametersSimulationJob
performs the simulation via ngspice- Added runtime option
parallel_parameters
, determines how many parameters run in parallel - Export
PDK_ROOT
for other tools
- Use argparse
- Use argparse
- Fixed two issues deemed "severe" #47