Skip to main content

Circuit Automatic Characterization Engine

Project description

CACE

Circuit Automatic Characterization Engine

License: Apache 2.0 Python 3.8 or higher Code Style: black

Invite to the Open Source Silicon Slack

CACE is a set of python scripts that take an input file in the CACE 4.0 format and uses the information found there in combination with CACE-compatible testbenches and analysis scripts to characterize a circuit and to produce a datasheet showing the circuit performance.

Installation

You'll need the following:

  • Python 3.8 or higher with PIP and Tkinter

CACE can be installed directly from PyPI:

$ python3 -m pip install --upgrade cace

Prerequisite design tools:

Usage

If installed as Python package, CACE can be started from the command line using:

$ cace

Or to start the GUI:

$ cace-gui

Development

Dependencies

To install the dependencies for CACE, run:

$ pip3 install -r requirements.txt

To install the dependencies to build CACE, run:

$ pip3 install -r requirements_dev.txt

To install the dependencies to build the documentation for CACE, run:

$ pip3 install -r requirements_docs.txt

CACE

To build the Python package, run:

$ make build

To install the package, run:

$ make install

To install the package in editable mode, run:

$ make editable

CACE GUI syntax

/path/to/cace_gui.py [path/to/project.txt]

where optional file project.txt (normally <name_of_project>.txt
where <name_of_project> is the name of the circuit to be
characterized) is a circuit characterization description in the
file format described below.  If a file is not specified, then
the GUI window will come up without content.  Click on the button
with text "(no selection)" to find and select a characterization
file to load.  The project file may also be in JSON format.

Normally, cace_gui.py is called from a project top level directory,
while the project.txt file is usually in a subdirectory called
cace/.  The project.txt file may be the output file from a CACE
run, which will add results to all of the parameter entries.

There may be multiple characterization files in a single project
(repository), as a project may contain multiple subcircuits that
may need independent characterization or be able to be used as
standalone circuits, or a project may simply be a collection of
circuits (library) without a specific single top level. 

CACE command line syntax

/path/to/cace.py <filename_in> <filename_out> [options]

where <filename_in> is a format 4.0 ASCII CACE file
and <filename_out> is the name of the file to write.

Options may be one of:

  -source=schematic|layout|rcx|all|best
  -param=<parameter_name>
  -force
  -json
  -keep
  -debug
  -sequential
  -summary

When run from the top level, this program parses the CACE
characterization file, runs simulations, and outputs a
modified file annotated with characterization results.

With option "-source", restrict characterization to the
specific netlist source, which is either schematic capture,
layout extracted, or full R-C parasitic extracted.  If not
specified, then characterization is run on the full R-C
parasitic extracted layout netlist if available, and the
schematic captured netlist if not (option "best").

Option "-param=<parameter_name>" runs simulations on only
the named electrical or physical parameter.

Option "-force" forces new regeneration of all netlists.

Option "-json" generates an output file in JSON format.

Option "-keep" retains files generated for characterization.

Option "-noplot" will not generate any graphs.

Option "-debug" generates additional diagnostic output.

Option "-sequential" runs simulations sequentially.

Option "-nosim" does not re-run simulations if the output file exists.
   (Warning---does not check if simulations are out of date).

Option "-summary" prints a summary of results at the end.

Examples

The following repositories contain example circuit designs, each having a "cace/" subdirectory with a specification input file in the format described below, and a set of testbench schematics which are used by CACE to measure all specified electrical and physical parameters, generate results, and analyze them to determine circuit performance over corners.

(NOTE: Example repositories, like CACE itself, are currently a work in progress.)

All repositories are rooted at: https://github.com/RTimothyEdwards/.

Example circuit repositories:

sky130_ef_ip__instramp		Instrumentation amplifier
sky130_ef_ip__rdac3v_8bit	8-bit resistor ladder DAC
sky130_ef_ip__samplehold	sample-and-hold circuit
sky130_ef_ip__driveramp		Rail-to-rail driver amplifier
sky130_ef_ip__ccomp3v		Rail-to-rail continuous comparator
sky130_ef_ip__rc_osc_500k	R-C oscillator, 500kHz nominal output
sky130_ef_ip__xtal_osc_16M	Crystal oscillator, 4 to 15MHz
sky130_ef_ip__xtal_osc_32k	Crystal oscillator, 32kHz

Each of these repositories contains a circuit designed with the SkyWater sky130 process open PDK, and contains schematics, layout, and CACE characterization.

NOTE: These repositories are a work in progress, and may not exist yet or may not have a characterization setup for CACE.

Documentation

To build the documentation, run:

$ make docs

Th host the docs, run:

$ make host-docs

Note: The documentation is not yet hosted online anywhere.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cace-2.1.2.tar.gz (315.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cace-2.1.2-py3-none-any.whl (146.4 kB view details)

Uploaded Python 3

File details

Details for the file cace-2.1.2.tar.gz.

File metadata

  • Download URL: cace-2.1.2.tar.gz
  • Upload date:
  • Size: 315.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for cace-2.1.2.tar.gz
Algorithm Hash digest
SHA256 5c50e26c70abb4515e62e164930d915b38bb71b44d076f9269cf8b820d79b062
MD5 64a60a8a9f1ecd1c708909e69da456f9
BLAKE2b-256 154a7308f6794eb299b045148ef0ee8a36a8ac9d51aae19313c3b1b7c0ba1452

See more details on using hashes here.

File details

Details for the file cace-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: cace-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 146.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for cace-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6d8a5de8339501f43756600e1fbf122d16908dbb09017f825c1ed384b3584257
MD5 12d8222e938077a414cb79000dfc1358
BLAKE2b-256 34497e8f26aad182fa146ea7ab591afad0b4a7ada85aeb80d40e0150fecfe1f8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page