# Approximation component¶

## Component description¶

In the configuration file, the user specifies at least one approximation technique, used to approximate the candidates. CIRCA currently provides two techniques: precision scaling (PS) and approximation-aware AIG rewriting (AIG). For each specified approximation technique, CIRCA instantiates an approximator and assigns the approximators to the corresponding candidates. During the approximation process, the Approximation component calls the candidate’s approximator to generate new variants.

Additionally to the approximation techniques, the user has to specify local quality constraints, i.e., local error metrics and local error bounds, and may specify the step-size in which the error bounds are increased in the next iteration.

## Precision scaling¶

The precision scaling approximation method generates approximated variants of a candidate by replacing bits of the candidate’s output vector with logic 1s or 0s, starting from the LSB. This causes the logic behind the replaced bits to become obsolete; thus, enabling an external synthesis tool to remove it and thereby reduce the circuit’s area, delay, power consumption, etc.

Note

Precision scaling is inherently better compatible with the bit-flip error metric than with worst-case, because the increasing significance of the replaced bits leads to an exponential increase of the absolute error, making the variant generation for all worst-case error values in-between the exponential steps effectively unnecessary.

Thus, in order to significantly reduce runtime overhead, it is highly recommended to use BF as local error metric.

## AIG rewriting [*]¶

Approximation-aware AIG rewriting operates on the And-Inverter-Graph representation of a circuit. The technique identifies the critical paths, ranks the nodes on the critical paths by their cut size, and iteratively substitutes the nodes by logical 0. In this way, the computational delay, the area, as well as the power consumption can be reduced. To check the variant’s compliance with its quality constraints, an approximation miter formed (a circuit similar to the SQCC) and a SAT solver is employed.

Note

This technique is restricted to combinational candidates.

## Configuration options¶

Method: QualityConstraints: precision_scaling or aig_rewriting or both separated by a c The default local quality constraints for each candidate which got no constraints assigned in the input stage. The format of the specification is CIRCA’s standard quality constraint syntax. Both the bound and the step parameter are optional. The maximum bound can be determined automatically for each candidate and each error metric has a default step value. At least one error metric must be specified. All error metrics are supported unless restricted by a candidate’s approximation method.

Notes and restrictions

• The approximators specified in the config. file are the default approximators. Some front-ends allow the specification of candidate-specific configurations, including candidate-specific approximators which override the default settings.
• Approximation method implementations can specify a set of restrictions for the quality constraints of their candidates. There may be incompatibilities in some configurations of approximation methods and error metrics. In such a case, the quality constraints will be adjusted accordingly, if possible, and a warning message will be generated. If the adjustments lead to an invalid configuration, e.g., no error metrics left, the approximation process will not be started and CIRCA will terminate with an error message.

Back to the User Guide