mirror of
https://github.com/YosysHQ/yosys
synced 2025-08-22 11:07:52 +00:00
Do not SigSpec::extract() beyond bounds
This commit is contained in:
parent
e3d898dccb
commit
d90b8b081a
2 changed files with 10 additions and 8 deletions
|
@ -156,15 +156,17 @@ endcode
|
|||
|
||||
match ffO_lo
|
||||
select ffO_lo->type.in($dff)
|
||||
filter nusers(sigO.extract(0,16)) == 2
|
||||
filter includes(port(ffO_lo, \D).to_sigbit_set(), sigO.extract(0,16).to_sigbit_set())
|
||||
filter GetSize(sigO) >= param(ffO_lo, \WIDTH).as_int()
|
||||
filter nusers(sigO.extract(0,param(ffO_lo, \WIDTH).as_int())) == 2
|
||||
filter includes(port(ffO_lo, \D).to_sigbit_set(), sigO.extract(0,param(ffO_lo, \WIDTH).as_int()).to_sigbit_set())
|
||||
optional
|
||||
endmatch
|
||||
|
||||
match ffO_hi
|
||||
select ffO_hi->type.in($dff)
|
||||
filter nusers(sigO.extract(16,16)) == 2
|
||||
filter includes(port(ffO_hi, \D).to_sigbit_set(), sigO.extract(16,16).to_sigbit_set())
|
||||
filter GetSize(sigO) >= 16+param(ffO_hi, \WIDTH).as_int()
|
||||
filter nusers(sigO.extract(16,param(ffO_hi, \WIDTH).as_int())) == 2
|
||||
filter includes(port(ffO_hi, \D).to_sigbit_set(), sigO.extract(16,param(ffO_hi, \WIDTH).as_int()).to_sigbit_set())
|
||||
optional
|
||||
endmatch
|
||||
|
||||
|
@ -184,7 +186,7 @@ code clock clock_pol sigO sigCD
|
|||
clock = c;
|
||||
clock_pol = cp;
|
||||
|
||||
if (port(ffO_lo, \Q) != sigO.extract(0,16))
|
||||
if (port(ffO_lo, \Q) != sigO.extract(0,param(ffO_lo, \WIDTH).as_int()))
|
||||
sigO.replace(port(ffO_lo, \D), port(ffO_lo, \Q));
|
||||
}
|
||||
|
||||
|
@ -202,7 +204,7 @@ code clock clock_pol sigO sigCD
|
|||
clock = c;
|
||||
clock_pol = cp;
|
||||
|
||||
if (port(ffO_hi, \Q) != sigO.extract(16,16))
|
||||
if (port(ffO_hi, \Q) != sigO.extract(16,param(ffO_hi, \WIDTH).as_int()))
|
||||
sigO.replace(port(ffO_hi, \D), port(ffO_hi, \Q));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue