3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-03-23 04:49:15 +00:00

dfflibmap: pass selection to dfflegalize dfflibmap was calling dfflegalize on the whole design regardless of the active selection, causing unselected modules to be modified. Fix by appending selected module names to the dfflegalize command. Fixes #5650

This commit is contained in:
abhinavputhran 2026-03-06 15:13:04 -05:00
parent 04113eb95d
commit ec54c36850
2 changed files with 13 additions and 0 deletions

View file

@ -694,6 +694,8 @@ struct DfflibmapPass : public Pass {
for (auto it : cell_mappings)
dfflegalize_cmd += stringf(" -cell %s 01", it.first);
dfflegalize_cmd += " t:$_DFF* t:$_SDFF*";
for (auto module : design->selected_modules())
dfflegalize_cmd += " " + module -> name.str();
if (info_mode) {
log("dfflegalize command line: %s\n", dfflegalize_cmd);
} else {

View file

@ -97,3 +97,14 @@ select -assert-count 1 t:dffe
# but we have to invert it because the CLEAR pin is active low.
# ff2.CLEAR = !R
select -assert-count 1 c:ff2 %x:+[CLEAR] %ci t:$_NOT_ %i
# Test that dfflibmap respects selection and doesn't run dfflegalize on unselected modules
design -load orig
copy top top_unmapped
dfflibmap -liberty dfflibmap.lib top
# top should be mapped
select -module top -assert-count 1 t:dffn
# top_unmapped should have no mapped cells
select -module top_unmapped -assert-none t:dffn
select -module top_unmapped -assert-none t:dffe
select -module top_unmapped -assert-none t:dffsr