Closed lee30sonia closed 2 years ago
Merging #532 (04f8bce) into master (f427196) will decrease coverage by
0.09%
. The diff coverage is70.65%
.
@@ Coverage Diff @@
## master #532 +/- ##
==========================================
- Coverage 82.61% 82.52% -0.10%
==========================================
Files 146 146
Lines 18099 18207 +108
==========================================
+ Hits 14953 15025 +72
- Misses 3146 3182 +36
Impacted Files | Coverage Δ | |
---|---|---|
...mockturtle/algorithms/aqfp/buffer_verification.hpp | 100.00% <ø> (ø) |
|
include/mockturtle/networks/buffered.hpp | 90.43% <58.82%> (-4.01%) |
:arrow_down: |
...de/mockturtle/algorithms/aqfp/buffer_insertion.hpp | 78.52% <72.00%> (-1.99%) |
:arrow_down: |
include/mockturtle/properties/aqfpcost.hpp | 100.00% <0.00%> (ø) |
|
...le/algorithms/aqfp_resynthesis/detail/dag_cost.hpp | ||
...algorithms/aqfp_resynthesis/detail/partial_dag.hpp | ||
...le/algorithms/aqfp_resynthesis/detail/dag_util.hpp | ||
...tle/algorithms/aqfp_resynthesis/detail/dag_gen.hpp | ||
...kturtle/algorithms/aqfp_resynthesis/detail/dag.hpp | ||
...ude/mockturtle/algorithms/aqfp/detail/dag_cost.hpp | 100.00% <0.00%> (ø) |
|
... and 5 more |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update f427196...04f8bce. Read the comment docs.
Background In AQFP, input negation is for free, thus we don't need explicit inverters most of the time. However, when a gate is referenced by a primary output in its negated form, explicit inverter cells (= input negated buffers) might be necessary. In some (rare) cases, i.e., a gate on the critical path is referenced in both polarities by two POs, this necessary inverter might even increase the circuit depth and, if POs are assumed to be balanced, result in (#POs) more buffers needed.
Current solution As can be observed, dealing with output negations in the "not-stupid" way involves quite some case splitting, although the problem seems straight-forward.
This scheme is not optimal (not even locally, for some cases). However, we expect that the complicated cases should not appear often in real designs and/or that the negation could be dealt with in the next sequential stage.