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
macro placement from hierarchical synthesis. Some reasonable MAX_UNGROUP_SIZE is needed for good macro placement, default used below.
flattened synthesis. Flattening the entire design(or using a MAX_UNGROUP_SIZE so large that macro placement is ruined and the design is flattened anyway), takes instances down from ca. 2 million to 1 million.
From the hierarchical synthesis and floorplan, we can see that there major groupings of macros are:
icache
dcache
branch predictors (2x)
integer register file
floating point register file
1250x1250 is not half bad. my assessment(I forget my back of the envelope tongue in cheek justifications) was that 1000x1000 is where we should be compared to the 28nm 1000ps SonicBOOM tapeout. Macro placement will need to be reivisted. Can a single value for MACRO_PLACE_HALO be used and then leave it to macro placer to space the macros suitably based on placement and routing requirements? A single value for MACRO_PLACE_HALO for the entire design is going to be pretty bad as all macro placement then has to take into account the worst case requirements. From the heatmaps there looks like there is a quite a bit of free room.
Until recently the area was 1500x1500 and there we saw a better clock tree and WNS was ca. -2600 on 1200ps clock period. However, we also so pathological routing loops around macros.
Clock tree; something has gone off the rails...
reg2reg histogram, timing repair is only run on worst path TNS_END_PERCENT=0 and there is an enormous amount of slew on the worst paths:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
No questions here as such, just sharing the latest results.
Comments and questions welcome!
(get in touch with @tspyrou if you would like to have access to bazel pre-built artifacts, building with the instruction below takes 6-12 hours)
From the hierarchical synthesis and floorplan, we can see that there major groupings of macros are:
1250x1250 is not half bad. my assessment(I forget my back of the envelope tongue in cheek justifications) was that 1000x1000 is where we should be compared to the 28nm 1000ps SonicBOOM tapeout. Macro placement will need to be reivisted. Can a single value for MACRO_PLACE_HALO be used and then leave it to macro placer to space the macros suitably based on placement and routing requirements? A single value for MACRO_PLACE_HALO for the entire design is going to be pretty bad as all macro placement then has to take into account the worst case requirements. From the heatmaps there looks like there is a quite a bit of free room.
Until recently the area was 1500x1500 and there we saw a better clock tree and WNS was ca. -2600 on 1200ps clock period. However, we also so pathological routing loops around macros.
Clock tree; something has gone off the rails...
reg2reg histogram, timing repair is only run on worst path TNS_END_PERCENT=0 and there is an enormous amount of slew on the worst paths:
WNS:
Beta Was this translation helpful? Give feedback.
All reactions