[core] developming default mode overwrite through bitstream setting file
This commit is contained in:
parent
5c8a59f447
commit
4533d160c5
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include "bitstream_setting_fwd.h"
|
#include "bitstream_setting_fwd.h"
|
||||||
#include "vtr_vector.h"
|
#include "vtr_vector.h"
|
||||||
|
#include "vtr_geometry.h"
|
||||||
|
|
||||||
/* namespace openfpga begins */
|
/* namespace openfpga begins */
|
||||||
namespace openfpga {
|
namespace openfpga {
|
||||||
|
@ -58,6 +59,9 @@ class BitstreamSetting {
|
||||||
typedef vtr::vector<BitstreamPbTypeSettingId,
|
typedef vtr::vector<BitstreamPbTypeSettingId,
|
||||||
BitstreamPbTypeSettingId>::const_iterator
|
BitstreamPbTypeSettingId>::const_iterator
|
||||||
bitstream_pb_type_setting_iterator;
|
bitstream_pb_type_setting_iterator;
|
||||||
|
typedef vtr::vector<BitstreamDefaultModeSettingId,
|
||||||
|
BitstreamDefaultModeSettingId>::const_iterator
|
||||||
|
bitstream_default_mode_setting_iterator;
|
||||||
typedef vtr::vector<BitstreamInterconnectSettingId,
|
typedef vtr::vector<BitstreamInterconnectSettingId,
|
||||||
BitstreamInterconnectSettingId>::const_iterator
|
BitstreamInterconnectSettingId>::const_iterator
|
||||||
bitstream_interconnect_setting_iterator;
|
bitstream_interconnect_setting_iterator;
|
||||||
|
@ -67,6 +71,8 @@ class BitstreamSetting {
|
||||||
/* Create range */
|
/* Create range */
|
||||||
typedef vtr::Range<bitstream_pb_type_setting_iterator>
|
typedef vtr::Range<bitstream_pb_type_setting_iterator>
|
||||||
bitstream_pb_type_setting_range;
|
bitstream_pb_type_setting_range;
|
||||||
|
typedef vtr::Range<bitstream_default_mode_setting_iterator>
|
||||||
|
bitstream_default_mode_setting_range;
|
||||||
typedef vtr::Range<bitstream_interconnect_setting_iterator>
|
typedef vtr::Range<bitstream_interconnect_setting_iterator>
|
||||||
bitstream_interconnect_setting_range;
|
bitstream_interconnect_setting_range;
|
||||||
typedef vtr::Range<overwrite_bitstream_iterator> overwrite_bitstream_range;
|
typedef vtr::Range<overwrite_bitstream_iterator> overwrite_bitstream_range;
|
||||||
|
@ -76,6 +82,7 @@ class BitstreamSetting {
|
||||||
|
|
||||||
public: /* Accessors: aggregates */
|
public: /* Accessors: aggregates */
|
||||||
bitstream_pb_type_setting_range pb_type_settings() const;
|
bitstream_pb_type_setting_range pb_type_settings() const;
|
||||||
|
bitstream_default_mode_setting_range default_mode_settings() const;
|
||||||
bitstream_interconnect_setting_range interconnect_settings() const;
|
bitstream_interconnect_setting_range interconnect_settings() const;
|
||||||
overwrite_bitstream_range overwrite_bitstreams() const;
|
overwrite_bitstream_range overwrite_bitstreams() const;
|
||||||
|
|
||||||
|
@ -94,6 +101,19 @@ class BitstreamSetting {
|
||||||
const BitstreamPbTypeSettingId& pb_type_setting_id) const;
|
const BitstreamPbTypeSettingId& pb_type_setting_id) const;
|
||||||
size_t bitstream_offset(
|
size_t bitstream_offset(
|
||||||
const BitstreamPbTypeSettingId& pb_type_setting_id) const;
|
const BitstreamPbTypeSettingId& pb_type_setting_id) const;
|
||||||
|
|
||||||
|
/* Default Mode Bit settings */
|
||||||
|
std::string default_mode_pb_type_name(
|
||||||
|
const BitstreamDefaultModeSettingId& default_mode_setting_id) const;
|
||||||
|
std::vector<std::string> default_mode_parent_pb_type_names(
|
||||||
|
const BitstreamDefaultModeSettingId& default_mode_setting_id) const;
|
||||||
|
std::vector<std::string> default_mode_parent_mode_names(
|
||||||
|
const BitstreamDefaultModeSettingId& default_mode_setting_id) const;
|
||||||
|
vtr::Rect<size_t> default_mode_coord(
|
||||||
|
const BitstreamDefaultModeSettingId& default_mode_setting_id) const;
|
||||||
|
vtr::Point<size_t> default_mode_subtile(
|
||||||
|
const BitstreamDefaultModeSettingId& default_mode_setting_id) const;
|
||||||
|
|
||||||
std::string interconnect_name(
|
std::string interconnect_name(
|
||||||
const BitstreamInterconnectSettingId& interconnect_setting_id) const;
|
const BitstreamInterconnectSettingId& interconnect_setting_id) const;
|
||||||
std::vector<std::string> parent_pb_type_names(
|
std::vector<std::string> parent_pb_type_names(
|
||||||
|
@ -118,6 +138,13 @@ class BitstreamSetting {
|
||||||
void set_bitstream_offset(const BitstreamPbTypeSettingId& pb_type_setting_id,
|
void set_bitstream_offset(const BitstreamPbTypeSettingId& pb_type_setting_id,
|
||||||
const size_t& offset);
|
const size_t& offset);
|
||||||
|
|
||||||
|
BitstreamDefaultModeSettingId add_bitstream_default_mode_setting(
|
||||||
|
const std::string& pb_type_name,
|
||||||
|
const std::vector<std::string>& parent_pb_type_names,
|
||||||
|
const std::vector<std::string>& parent_mode_names,
|
||||||
|
const std::string& mode_bits, const vtr::Rect<size_t>& coord, const vtr::Point<size_t>& subtile_range);
|
||||||
|
|
||||||
|
|
||||||
BitstreamInterconnectSettingId add_bitstream_interconnect_setting(
|
BitstreamInterconnectSettingId add_bitstream_interconnect_setting(
|
||||||
const std::string& interconnect_name,
|
const std::string& interconnect_name,
|
||||||
const std::vector<std::string>& parent_pb_type_names,
|
const std::vector<std::string>& parent_pb_type_names,
|
||||||
|
@ -158,6 +185,18 @@ class BitstreamSetting {
|
||||||
* pb_type */
|
* pb_type */
|
||||||
vtr::vector<BitstreamPbTypeSettingId, size_t> bitstream_offsets_;
|
vtr::vector<BitstreamPbTypeSettingId, size_t> bitstream_offsets_;
|
||||||
|
|
||||||
|
/* Pb type - default mode bits overwrite */
|
||||||
|
vtr::vector<BitstreamDefaultModeSettingId, BitstreamDefaultModeSettingId>
|
||||||
|
default_mode_setting_ids_;
|
||||||
|
vtr::vector<BitstreamDefaultModeSettingId, std::string> default_mode_pb_type_names_;
|
||||||
|
vtr::vector<BitstreamDefaultModeSettingId, std::vector<std::string>>
|
||||||
|
default_mode_parent_pb_type_names_;
|
||||||
|
vtr::vector<BitstreamDefaultModeSettingId, std::vector<std::string>>
|
||||||
|
default_mode_parent_mode_names_;
|
||||||
|
vtr::vector<BitstreamDefaultModeSettingId, std::string> pb_type_default_mode_bits_;
|
||||||
|
vtr::vector<BitstreamDefaultModeSettingId, vtr::Rect<size_t>> pb_type_coords_;
|
||||||
|
vtr::vector<BitstreamDefaultModeSettingId, vtr::Point<size_t>> pb_type_subtile_ranges_;
|
||||||
|
|
||||||
/* Interconnect-related settings:
|
/* Interconnect-related settings:
|
||||||
* - Name of interconnect under a given pb_type
|
* - Name of interconnect under a given pb_type
|
||||||
* - The default path to be considered for a given interconnect during
|
* - The default path to be considered for a given interconnect during
|
||||||
|
|
|
@ -19,6 +19,8 @@ struct overwrite_bitstream_id_tag;
|
||||||
|
|
||||||
typedef vtr::StrongId<bitstream_pb_type_setting_id_tag>
|
typedef vtr::StrongId<bitstream_pb_type_setting_id_tag>
|
||||||
BitstreamPbTypeSettingId;
|
BitstreamPbTypeSettingId;
|
||||||
|
typedef vtr::StrongId<bitstream_default_mode_setting_id_tag>
|
||||||
|
BitstreamDefaultModeSettingId;
|
||||||
typedef vtr::StrongId<bitstream_interconnect_setting_id_tag>
|
typedef vtr::StrongId<bitstream_interconnect_setting_id_tag>
|
||||||
BitstreamInterconnectSettingId;
|
BitstreamInterconnectSettingId;
|
||||||
typedef vtr::StrongId<overwrite_bitstream_id_tag> OverwriteBitstreamId;
|
typedef vtr::StrongId<overwrite_bitstream_id_tag> OverwriteBitstreamId;
|
||||||
|
|
Loading…
Reference in New Issue