Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/user/FlowVariables.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ configuration file.
| <a name="LIB_FILES"></a>LIB_FILES| A Liberty file of the standard cell library with PVT characterization, input and output characteristics, timing and power definitions for each cell.| |
| <a name="MACRO_BLOCKAGE_HALO"></a>MACRO_BLOCKAGE_HALO| Distance beyond the edges of a macro that will also be covered by the blockage generated for that macro. Note that the default macro blockage halo comes from the largest of the specified MACRO_PLACE_HALO x or y values. This variable overrides that calculation.| |
| <a name="MACRO_EXTENSION"></a>MACRO_EXTENSION| Sets the number of GCells added to the blockages boundaries from macros.| |
| <a name="MACRO_PLACEMENT_TCL"></a>MACRO_PLACEMENT_TCL| Specifies the path of a TCL file on how to place certain macros manually.| |
| <a name="MACRO_PLACEMENT_TCL"></a>MACRO_PLACEMENT_TCL| Specifies the path of a TCL file on how to place macros manually. The user may choose to place just some of the macros in the design. The macro placer will handle the remaining unplaced macros.| |
| <a name="MACRO_PLACE_HALO"></a>MACRO_PLACE_HALO| Horizontal/vertical halo around macros (microns). Used by automatic macro placement.| |
| <a name="MACRO_ROWS_HALO_X"></a>MACRO_ROWS_HALO_X| Horizontal distance between the edge of the macro and the beginning of the rows created by tapcell. Only available for ASAP7 PDK and GF180/uart-blocks design.| |
| <a name="MACRO_ROWS_HALO_Y"></a>MACRO_ROWS_HALO_Y| Vertical distance between the edge of the macro and the beginning of the rows created by tapcell. Only available for ASAP7 PDK and GF180/uart-blocks design.| |
Expand Down
2 changes: 2 additions & 0 deletions flow/designs/nangate45/black_parrot/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ export IO_CONSTRAINTS = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/io.tcl

export PLACE_DENSITY_LB_ADDON = 0.05

export MACRO_PLACEMENT_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/macro_placement.tcl

export MACRO_PLACE_HALO = 10 10

export TNS_END_PERCENT = 100
43 changes: 43 additions & 0 deletions flow/designs/nangate45/black_parrot/macro_placement.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
place_macro \
-macro_name multi_top.me.genblk1_0__bp_cce_top.bp_cce/directory.wg_ram/macro_mem0.mem \
-location {20.07 355.915} -orientation MY

place_macro \
-macro_name multi_top.me.genblk1_0__bp_cce_top.bp_cce/directory.wg_ram/macro_mem1.mem \
-location {94.6 355.915} -orientation MY

place_macro \
-macro_name multi_top.rof1_0__core/fe.icache_1/metadata_mem.macro_mem.mem \
-location {20.07 245.105} -orientation R180

place_macro \
-macro_name multi_top.rof1_0__core/be.be_mmu.dcache/data_mem_0__data_mem.macro_mem/mem \
-location {1177.31 1166.095} -orientation R0

place_macro \
-macro_name multi_top.rof1_0__core/be.be_mmu.dcache/data_mem_1__data_mem.macro_mem/mem \
-location {659.6 1166.095} -orientation MY

place_macro \
-macro_name multi_top.rof1_0__core/be.be_mmu.dcache/data_mem_2__data_mem.macro_mem/mem \
-location {1177.31 1032.605} -orientation MX

place_macro \
-macro_name multi_top.rof1_0__core/be.be_mmu.dcache/data_mem_3__data_mem.macro_mem/mem \
-location {832.17 1166.095} -orientation R0

place_macro \
-macro_name multi_top.rof1_0__core/be.be_mmu.dcache/data_mem_4__data_mem.macro_mem/mem \
-location {1004.74 1032.605} -orientation MX

place_macro \
-macro_name multi_top.rof1_0__core/be.be_mmu.dcache/data_mem_5__data_mem.macro_mem/mem \
-location {832.17 1032.605} -orientation MX

place_macro \
-macro_name multi_top.rof1_0__core/be.be_mmu.dcache/data_mem_6__data_mem.macro_mem/mem \
-location {1004.74 1166.095} -orientation R0

place_macro \
-macro_name multi_top.rof1_0__core/be.be_mmu.dcache/data_mem_7__data_mem.macro_mem/mem \
-location {659.6 1032.605} -orientation R180
56 changes: 28 additions & 28 deletions flow/scripts/macro_place_util.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -36,40 +36,40 @@ if { [find_macros] != "" } {

if { [env_var_exists_and_non_empty MACRO_PLACEMENT_TCL] } {
log_cmd source $::env(MACRO_PLACEMENT_TCL)
} else {
set additional_rtlmp_args ""
append_env_var additional_rtlmp_args RTLMP_MAX_LEVEL -max_num_level 1
append_env_var additional_rtlmp_args RTLMP_MAX_INST -max_num_inst 1
append_env_var additional_rtlmp_args RTLMP_MIN_INST -min_num_inst 1
append_env_var additional_rtlmp_args RTLMP_MAX_MACRO -max_num_macro 1
append_env_var additional_rtlmp_args RTLMP_MIN_MACRO -min_num_macro 1
append additional_rtlmp_args " -halo_width $halo_x"
append additional_rtlmp_args " -halo_height $halo_y"
append_env_var additional_rtlmp_args RTLMP_MIN_AR -min_ar 1
append_env_var additional_rtlmp_args RTLMP_SIGNATURE_NET_THRESHOLD -signature_net_threshold 1
append_env_var additional_rtlmp_args RTLMP_AREA_WT -area_weight 1
append_env_var additional_rtlmp_args RTLMP_WIRELENGTH_WT -wirelength_weight 1
append_env_var additional_rtlmp_args RTLMP_OUTLINE_WT -outline_weight 1
append_env_var additional_rtlmp_args RTLMP_BOUNDARY_WT -boundary_weight 1
append_env_var additional_rtlmp_args RTLMP_NOTCH_WT -notch_weight 1
append_env_var additional_rtlmp_args RTLMP_DEAD_SPACE -target_dead_space 1
append_env_var additional_rtlmp_args RTLMP_RPT_DIR -report_directory 1
append_env_var additional_rtlmp_args RTLMP_FENCE_LX -fence_lx 1
append_env_var additional_rtlmp_args RTLMP_FENCE_LY -fence_ly 1
append_env_var additional_rtlmp_args RTLMP_FENCE_UX -fence_ux 1
append_env_var additional_rtlmp_args RTLMP_FENCE_UY -fence_uy 1
}

append additional_rtlmp_args " -target_util [place_density_with_lb_addon]"
set additional_rtlmp_args ""
append_env_var additional_rtlmp_args RTLMP_MAX_LEVEL -max_num_level 1
append_env_var additional_rtlmp_args RTLMP_MAX_INST -max_num_inst 1
append_env_var additional_rtlmp_args RTLMP_MIN_INST -min_num_inst 1
append_env_var additional_rtlmp_args RTLMP_MAX_MACRO -max_num_macro 1
append_env_var additional_rtlmp_args RTLMP_MIN_MACRO -min_num_macro 1
append additional_rtlmp_args " -halo_width $halo_x"
append additional_rtlmp_args " -halo_height $halo_y"
append_env_var additional_rtlmp_args RTLMP_MIN_AR -min_ar 1
append_env_var additional_rtlmp_args RTLMP_SIGNATURE_NET_THRESHOLD -signature_net_threshold 1
append_env_var additional_rtlmp_args RTLMP_AREA_WT -area_weight 1
append_env_var additional_rtlmp_args RTLMP_WIRELENGTH_WT -wirelength_weight 1
append_env_var additional_rtlmp_args RTLMP_OUTLINE_WT -outline_weight 1
append_env_var additional_rtlmp_args RTLMP_BOUNDARY_WT -boundary_weight 1
append_env_var additional_rtlmp_args RTLMP_NOTCH_WT -notch_weight 1
append_env_var additional_rtlmp_args RTLMP_DEAD_SPACE -target_dead_space 1
append_env_var additional_rtlmp_args RTLMP_RPT_DIR -report_directory 1
append_env_var additional_rtlmp_args RTLMP_FENCE_LX -fence_lx 1
append_env_var additional_rtlmp_args RTLMP_FENCE_LY -fence_ly 1
append_env_var additional_rtlmp_args RTLMP_FENCE_UX -fence_ux 1
append_env_var additional_rtlmp_args RTLMP_FENCE_UY -fence_uy 1

set all_args $additional_rtlmp_args
append additional_rtlmp_args " -target_util [place_density_with_lb_addon]"

if { [env_var_exists_and_non_empty RTLMP_ARGS] } {
set all_args $::env(RTLMP_ARGS)
}
set all_args $additional_rtlmp_args

log_cmd rtl_macro_placer {*}$all_args
if { [env_var_exists_and_non_empty RTLMP_ARGS] } {
set all_args $::env(RTLMP_ARGS)
}

log_cmd rtl_macro_placer {*}$all_args
Comment thread
maliberty marked this conversation as resolved.

source $::env(SCRIPTS_DIR)/placement_blockages.tcl
block_channels $blockage_width
} else {
Expand Down
4 changes: 3 additions & 1 deletion flow/scripts/variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,9 @@ TAPCELL_TCL:
- floorplan
MACRO_PLACEMENT_TCL:
description: |
Specifies the path of a TCL file on how to place certain macros manually.
Specifies the path of a TCL file on how to place macros manually.
The user may choose to place just some of the macros in the design.
The macro placer will handle the remaining unplaced macros.
stages:
- floorplan
MACRO_PLACE_HALO:
Expand Down