diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index eee4432b1..8d95d60b4 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -61033,7 +61033,7 @@ int Abc_CommandAbc9eSLIM( Abc_Frame_t * pAbc, int argc, char ** argv ) { } params.synthesis_approach = atoi(argv[globalUtilOptind]); globalUtilOptind++; - if ( params.synthesis_approach < 0 || params.synthesis_approach > 2) + if ( params.synthesis_approach < 0 || params.synthesis_approach > 3) goto usage; break; case 'I': @@ -61249,7 +61249,7 @@ int Abc_CommandAbc9elSLIM( Abc_Frame_t * pAbc, int argc, char ** argv ) { } params.synthesis_approach = atoi(argv[globalUtilOptind]); globalUtilOptind++; - if ( params.synthesis_approach < 0 || params.synthesis_approach > 2) + if ( params.synthesis_approach < 0 || params.synthesis_approach > 3) goto usage; break; case 'I': diff --git a/src/opt/eslim/delayEngine.cpp b/src/opt/eslim/delayEngine.cpp index 0604a242a..5e92566cf 100644 --- a/src/opt/eslim/delayEngine.cpp +++ b/src/opt/eslim/delayEngine.cpp @@ -83,11 +83,13 @@ namespace eSLIM { } int replacement_size = synth.getSizeFromActivationVars(last_model); int replacement_delay = synth.getDelayFromDelayVariables(last_model); - assert (replacement_delay > 0); - std::vector model = synth.reduceDelay(replacement_size, replacement_delay - 1); - if (model.size() > 0) { - replacement_size = synth.getSizeFromActivationVars(model); - std::swap(last_model, model); + assert (replacement_delay > 0 || replacement_size == 0); + if (replacement_delay > 0) { // a constant circuit has already optimal depth + std::vector model = synth.reduceDelay(replacement_size, replacement_delay - 1); + if (model.size() > 0) { + replacement_size = synth.getSizeFromActivationVars(model); + std::swap(last_model, model); + } } return synth.getReplacement(last_model, replacement_size); } diff --git a/src/opt/eslim/windowMan.tpp b/src/opt/eslim/windowMan.tpp index d09b264ab..c540988a3 100644 --- a/src/opt/eslim/windowMan.tpp +++ b/src/opt/eslim/windowMan.tpp @@ -126,7 +126,7 @@ namespace eSLIM { std::cout << "PThreads not available, minimize random window.\n"; std::uniform_int_distribution<> udist(0, windows.size() - 1); int wid = udist(rng); - eSLIM_Man::applyeSLIM(windows[wid], cfg, wlogs[wid]) + eSLIM_Man::applyeSLIM(windows[wid], cfg, wlogs[wid]); #endif }