[core] now follow module unique index when naming grouped configuration memories

This commit is contained in:
tangxifan 2023-10-20 22:01:19 -07:00
parent e4b204f2e4
commit 66c3226fad
4 changed files with 21 additions and 11 deletions

View File

@ -1232,7 +1232,7 @@ static int build_physical_tile_module(
/* TODO: Add a physical memory block */
if (group_config_block) {
status = add_physical_memory_module(module_manager, decoder_lib,
grid_module, circuit_lib,
grid_module, std::string(), circuit_lib,
sram_orgz_type, sram_model, verbose);
if (status != CMD_EXEC_SUCCESS) {
return CMD_EXEC_FATAL_ERROR;

View File

@ -1486,6 +1486,7 @@ int build_memory_group_module(
int add_physical_memory_module(ModuleManager& module_manager,
DecoderLibrary& decoder_lib,
const ModuleId& curr_module,
const std::string& suggested_module_name_prefix,
const CircuitLibrary& circuit_lib,
const e_config_protocol_type& sram_orgz_type,
const CircuitModelId& sram_model,
@ -1509,8 +1510,12 @@ int add_physical_memory_module(ModuleManager& module_manager,
if (module_num_config_bits == 0) {
return CMD_EXEC_SUCCESS;
}
std::string module_name_prefix = module_manager.module_name(curr_module);
if (!suggested_module_name_prefix.empty()) {
module_name_prefix = suggested_module_name_prefix;
}
std::string phy_mem_module_name =
generate_physical_memory_module_name(std::string(), module_num_config_bits);
generate_physical_memory_module_name(module_name_prefix, module_num_config_bits);
VTR_LOGV(verbose, "Adding memory group module '%s' as a child to '%s'...\n",
phy_mem_module_name.c_str(),
module_manager.module_name(curr_module).c_str());

View File

@ -41,6 +41,7 @@ int build_memory_group_module(
int add_physical_memory_module(ModuleManager& module_manager,
DecoderLibrary& decoder_lib,
const ModuleId& curr_module,
const std::string& suggested_module_name_prefix,
const CircuitLibrary& circuit_lib,
const e_config_protocol_type& sram_orgz_type,
const CircuitModelId& sram_model,

View File

@ -384,7 +384,7 @@ static void build_switch_block_module(
const VprDeviceAnnotation& device_annotation, const DeviceGrid& grids,
const RRGraphView& rr_graph, const CircuitLibrary& circuit_lib,
const e_config_protocol_type& sram_orgz_type,
const CircuitModelId& sram_model, const RRGSB& rr_gsb,
const CircuitModelId& sram_model, const DeviceRRGSB& device_rr_gsb, const RRGSB& rr_gsb,
const bool& group_config_block, const bool& verbose) {
/* Create a Module of Switch Block and add to module manager */
vtr::Point<size_t> gsb_coordinate(rr_gsb.get_sb_x(), rr_gsb.get_sb_y());
@ -494,7 +494,9 @@ static void build_switch_block_module(
/* Build a physical memory block */
if (group_config_block) {
add_physical_memory_module(module_manager, decoder_lib, sb_module,
std::string mem_module_name_prefix =
generate_switch_block_module_name_using_index(device_rr_gsb.get_sb_unique_module_index(gsb_coordinate));
add_physical_memory_module(module_manager, decoder_lib, sb_module, mem_module_name_prefix,
circuit_lib, sram_orgz_type, sram_model,
verbose);
}
@ -891,7 +893,7 @@ static void build_connection_block_module(
const VprDeviceAnnotation& device_annotation, const DeviceGrid& grids,
const RRGraphView& rr_graph, const CircuitLibrary& circuit_lib,
const e_config_protocol_type& sram_orgz_type,
const CircuitModelId& sram_model, const RRGSB& rr_gsb,
const CircuitModelId& sram_model, const DeviceRRGSB& device_rr_gsb, const RRGSB& rr_gsb,
const t_rr_type& cb_type, const bool& group_config_block,
const bool& verbose) {
/* Create the netlist */
@ -1022,7 +1024,9 @@ static void build_connection_block_module(
/* Build a physical memory block */
if (group_config_block) {
add_physical_memory_module(module_manager, decoder_lib, cb_module,
std::string mem_module_name_prefix =
generate_connection_block_module_name_using_index(cb_type, device_rr_gsb.get_cb_unique_module_index(cb_type, gsb_coordinate));
add_physical_memory_module(module_manager, decoder_lib, cb_module, mem_module_name_prefix,
circuit_lib, sram_orgz_type, sram_model,
verbose);
}
@ -1105,7 +1109,7 @@ static void build_flatten_connection_block_modules(
}
build_connection_block_module(
module_manager, decoder_lib, device_annotation, device_ctx.grid,
device_ctx.rr_graph, circuit_lib, sram_orgz_type, sram_model, rr_gsb,
device_ctx.rr_graph, circuit_lib, sram_orgz_type, sram_model, device_rr_gsb, rr_gsb,
cb_type, group_config_block, verbose);
}
}
@ -1140,7 +1144,7 @@ void build_flatten_routing_modules(
}
build_switch_block_module(module_manager, decoder_lib, device_annotation,
device_ctx.grid, device_ctx.rr_graph,
circuit_lib, sram_orgz_type, sram_model, rr_gsb,
circuit_lib, sram_orgz_type, sram_model, device_rr_gsb, rr_gsb,
group_config_block, verbose);
}
}
@ -1181,7 +1185,7 @@ void build_unique_routing_modules(
const RRGSB& unique_mirror = device_rr_gsb.get_sb_unique_module(isb);
build_switch_block_module(module_manager, decoder_lib, device_annotation,
device_ctx.grid, device_ctx.rr_graph, circuit_lib,
sram_orgz_type, sram_model, unique_mirror,
sram_orgz_type, sram_model, device_rr_gsb, unique_mirror,
group_config_block, verbose);
}
@ -1193,7 +1197,7 @@ void build_unique_routing_modules(
build_connection_block_module(
module_manager, decoder_lib, device_annotation, device_ctx.grid,
device_ctx.rr_graph, circuit_lib, sram_orgz_type, sram_model,
unique_mirror, CHANX, group_config_block, verbose);
device_rr_gsb, unique_mirror, CHANX, group_config_block, verbose);
}
/* Build unique X-direction connection block modules */
@ -1204,7 +1208,7 @@ void build_unique_routing_modules(
build_connection_block_module(
module_manager, decoder_lib, device_annotation, device_ctx.grid,
device_ctx.rr_graph, circuit_lib, sram_orgz_type, sram_model,
unique_mirror, CHANY, group_config_block, verbose);
device_rr_gsb, unique_mirror, CHANY, group_config_block, verbose);
}
}