tdene / synth_opt_adders

Prefix tree adder space exploration library
Apache License 2.0
53 stars 8 forks source link

Remove all logic related to wire tracks #112

Closed tdene closed 1 year ago

tdene commented 2 years ago

When this library was first designed, wire tracks were considered an important factor.

Wire tracks stand out in classic prefix tree adder diagrams, where they are an important parameter and are clearly identifiable.
Furthermore, there is literature from the 1990s showing that wire tracks make a big difference when it comes to delay.

But the following questions exist:

As it stands, the method this library uses to identify a need for additional wire tracks and estimate its effect on the performance of the final circuit is unproven, inaccurate, and computationally slow.
This is in contrast to fan-out, whose computation is already necessary for other purposes, and which can be used to provide a decent estimate of final circuit performance through the method of logical effort.

Furthermore, functionality has already been added that allows for the delay estimation performed inside of this library to be outsourced to an external library using an optional parameter.

Given the questionable value of this computation, its effect on the performance of this library, and the need for continued maintenance, I would like to deprecate it.

tdene commented 2 years ago

@umarcor @macd @davidharrishmc @stineje Please advise.

tdene commented 1 year ago

"wire tracks" is a nebulous concept that is wrongfully extrapolated from faulty diagrams. While the physical effect is real, I currently have no way to quantify it. Run-time performance should not be destroyed by such a feature.