You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Within the partial legalizer of the AP flow, a mass abstraction was used
to abstract the complex logical block constraints of the device.
Originally, this abstraction created a primitive vector which kept a
count of each model used by the atom and the capacity of each model in a
given tile. This worked well, but it was very innacurate due to not
capturing differences between models with different numbers of
inputs/outputs.
Updated the mass abstraction in three ways:
1) Used the number of bits stored in a memory as the mass for memory
primitives.
2) Used the number of pins used for all other types of primitives
(clamped by the capacity of pins for the given logical block).
3) Created the concept of "one-hot" primitives to assign multiple models
to the same dim if they are part of a primitive which can only every
implement one of them.
These changes improved the ability of the partial legalizer to
understand the details of the complex blocks in the architecture such
that it can better legalize during analytical placement.
From experimentation, found that this greatly improved the post-FL
quality of the placement with practically no cost in run time (since
this does not change the complexity of the legalizer, just spends
slightly more time deciding the mass of the atoms / tiles).
0 commit comments