Skip to content

Commit a8e5961

Browse files
[AP][Legalization] Updated the Mass Abstraction
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).
1 parent 3b984a7 commit a8e5961

File tree

6 files changed

+491
-62
lines changed

6 files changed

+491
-62
lines changed

0 commit comments

Comments
 (0)