mirror of https://github.com/YosysHQ/yosys.git
dfflegalize: Fix decision tree for adffe.
When an adffe is being legalized, and is not natively supported, prioritize unmapping to adff over converting to dffsre if dffsre is not natively supported itself. Fixes #2361.
This commit is contained in:
parent
925c0f2594
commit
880df4c897
|
@ -418,7 +418,8 @@ unmap_enable:
|
|||
ff_type = has_set ? FF_ADFFE1 : FF_ADFFE0;
|
||||
break;
|
||||
}
|
||||
if (supported_dffsr & initmask) {
|
||||
if (supported_cells[has_en ? FF_DFFSRE : FF_DFFSR] & initmask) {
|
||||
adff_to_dffsr:
|
||||
// Throw in a set/reset, retry in DFFSR/DFFSRE branch.
|
||||
if (has_set) {
|
||||
sig_s = sig_r;
|
||||
|
@ -441,6 +442,9 @@ unmap_enable:
|
|||
ff_type = has_set ? FF_ADFF1 : FF_ADFF0;
|
||||
goto unmap_enable;
|
||||
}
|
||||
if (supported_dffsr & initmask) {
|
||||
goto adff_to_dffsr;
|
||||
}
|
||||
log_assert(!((has_set ? supported_adff1 : supported_adff0) & initmask));
|
||||
// Alright, so this particular combination of initval and
|
||||
// resetval is not natively supported. First, try flipping
|
||||
|
|
Loading…
Reference in New Issue