Package circuitgraph

Python package circuitgraph provides a data structure for the generation, manipulation, and evaluation of Boolean circuits. The circuits are represented in a graph format based on the networkx package.

Features include:

  • parsing of generic verilog modules
  • easy circuit composition
  • synthesis interface to Genus and Yosys
  • SAT,#SAT, and approx-#SAT solver integration via pysat and approxmc
  • implementations of common circuit transformations

Look at the examples in Circuit for a quickstart guide.

Expand source code
"""
Python package `circuitgraph` provides a data structure
for the generation, manipulation, and evaluation of
Boolean circuits. The circuits are represented in a graph
format based on the `networkx` package.

Features include:

- parsing of generic verilog modules
- easy circuit composition
- synthesis interface to Genus and Yosys
- SAT,#SAT, and approx-#SAT solver integration via `pysat` and `approxmc`
- implementations of common circuit transformations

Look at the examples in `circuitgraph.circuit.Circuit` for a quickstart guide.

"""

from circuitgraph.circuit import *
from circuitgraph.io import *
from circuitgraph.sat import *
from circuitgraph.transform import *
from circuitgraph.logic import *
from circuitgraph.utils import *

Sub-modules

circuitgraph.analysis

Functions for analysis of Boolean properties

circuitgraph.circuit

Class for circuit graphs …

circuitgraph.io

Functions for reading/writing CircuitGraphs

circuitgraph.logic

A collection of common logic elements as Circuit objects

circuitgraph.parsing

Utilities for parsing netlists

circuitgraph.sat

Functions for executing SAT, #SAT, and approx-#SAT on circuits

circuitgraph.tests

Testing for Python package circuitgraph.

circuitgraph.transform

Functions for transforming circuits

circuitgraph.utils

Various circuit related utilities

Functions

def random()

random() -> x in the interval [0, 1).