blob: 7691025c9ef2769752a82b70bc48eb555e81311b [file] [log] [blame]
#ifndef SETUPGRID_H
#define SETUPGRID_H
/*
* Author: Jason Luu
* Date: October 8, 2008
*
* Initializes and allocates the physical logic block grid for VPR.
*
*/
#include <vector>
#include "physical_types.h"
//Find the device satisfying the specified minimum resources
DeviceGrid create_device_grid(std::string layout_name,
const std::vector<t_grid_def>& grid_layouts,
const std::map<t_logical_block_type_ptr, size_t>& minimum_instance_counts,
float target_device_utilization);
//Find the device close in size to the specified dimensions
DeviceGrid create_device_grid(std::string layout_name, const std::vector<t_grid_def>& grid_layouts, size_t min_width, size_t min_height);
//Calculate the device utilization (i.e. fraction of used grid tiles) for the specified grid and resource requirements
float calculate_device_utilization(const DeviceGrid& grid, std::map<t_logical_block_type_ptr, size_t> instance_counts);
//Returns the effective size of the device (size of the bounding box of non-empty grid tiles)
size_t count_grid_tiles(const DeviceGrid& grid);
#endif