now reserve blocks in bitstream manager can accurately capture the size

This commit is contained in:
tangxifan 2020-07-03 20:06:12 -06:00
parent 8067a13346
commit f040fc78a9
2 changed files with 12 additions and 2 deletions

View File

@ -180,8 +180,8 @@ BitstreamManager build_device_bitstream(const VprContext& vpr_ctx,
bitstream_manager.num_bits(), bitstream_manager.num_bits(),
bitstream_manager.num_blocks()); bitstream_manager.num_blocks());
//VTR_ASSERT(num_blocks_to_reserve == bitstream_manager.num_blocks()); VTR_ASSERT(num_blocks_to_reserve == bitstream_manager.num_blocks());
//VTR_ASSERT(num_bits_to_reserve == bitstream_manager.num_bits()); VTR_ASSERT(num_bits_to_reserve == bitstream_manager.num_bits());
return bitstream_manager; return bitstream_manager;
} }

View File

@ -492,6 +492,16 @@ void rec_build_physical_block_bitstream(BitstreamManager& bitstream_manager,
/* Find the mode that define_idle_mode*/ /* Find the mode that define_idle_mode*/
t_mode* physical_mode = device_annotation.physical_mode(physical_pb_type); t_mode* physical_mode = device_annotation.physical_mode(physical_pb_type);
/* Early exit if this parent module has no configurable child modules */
std::string pb_module_name = generate_physical_block_module_name(physical_pb_type);
ModuleId pb_module = module_manager.find_module(pb_module_name);
VTR_ASSERT(true == module_manager.valid_module_id(pb_module));
/* Skip module with no configurable children */
if (0 == module_manager.configurable_children(pb_module).size()) {
return;
}
/* Create a block for the physical block under the grid block in bitstream manager */ /* Create a block for the physical block under the grid block in bitstream manager */
std::string pb_block_name = generate_physical_block_instance_name(physical_pb_type, pb_graph_node_index); std::string pb_block_name = generate_physical_block_instance_name(physical_pb_type, pb_graph_node_index);
ConfigBlockId pb_configurable_block = bitstream_manager.add_block(pb_block_name); ConfigBlockId pb_configurable_block = bitstream_manager.add_block(pb_block_name);