#include <conflict_table.h>
Classes | |
struct | ConflictInformation |
Public Member Functions | |
ConflictTable (SegmentGraph &segment_graph, PathInstanceMapper *path_instance_mapper, bool debugging=false) | |
Default constructor. | |
~ConflictTable () | |
Destructor. | |
void | print_conflict_table (std::string filename) |
void | print_lookup_table (std::string filename) |
int | segment_and_instance_id_to_index (int segment_id, int instance_id) |
std::pair< int, int > | index_to_segment_and_instance_id (int index) |
bool | has_conflict (int segment_id_1, int instance_id_1, int segment_id_2, int instance_id_2) |
void | print_instance_id_to_index_lookup_table () |
This function prints the table instance_id_to_index_lookup_table in the terminal. | |
void | set_conflict (int segment_id_1, int instance_id_1, int segment_id_2, int instance_id_2) |
virtual void | determine_conflict_table () |
This function determines the conflict table. The function is overloaded for the data and event conflict table. | |
VertexDescriptor | segment_id_to_vertex_descriptor (int id) |
MappedVariableList | get_mapped_variable (SgVariableSymbol *variable, int instance_id, bool dynamic_analysis) |
MappedVariableList | get_mapped_variable_statically (SgVariableSymbol *variable, int instance_id) |
MappedVariableList | get_mapped_variable_dynamically (SgVariableSymbol *variable, int instance_id) |
int | get_max_instances (int segment_id) |
int | get_channel_id (const SymbolWithPath &swp, int instance, bool dynamic_analysis) |
int | get_channel_id_statically (const SymbolWithPath &swp, int instance) |
int | get_channel_id_dynamically (const SymbolWithPath &swp, int instance) |
void | print_conflicts_per_instance () |
prints the conflicts per instance | |
Public Attributes | |
VertexDescriptor * | vertex_lookup_ |
This lookup table translates segment ids into vertex descriptors. At position i is the segment with the id of instance_id_to_index_lookup_[0][i]. | |
int | size_of_conflict_table_ |
This variable defines the size of the conflict table. The size is quadratic. | |
int * | conflicts_per_instance_ |
Stores the conflicts per intance. | |
int | max_instances_with_thread_ |
Maximum number of module/channel instances Only instances with at least one simulation thread are considered. | |
int | max_instances_ |
This variable represents the max number of module instances in the design. Also, this is the number of rows in the instance_id_to_index_lookup_ table. | |
int | number_of_segments_ |
This variable defines how many segments exist in the segment graph. Also, this is the number of columns in the instance_id_to_index_lookup_ table. | |
int ** | instance_id_to_index_lookup_ |
This table should be used a lookup table: (segment id, instance id) -> index of conflict table. | |
bool ** | conflict_table_ |
The conflict table. | |
PathInstanceMapper * | path_instance_mapper_ |
SegmentGraph & | segment_graph_ |
ConflictInformation ** | conflict_info_ |
bool | debugging_ |
risc::sg::ConflictTable::ConflictTable | ( | SegmentGraph & | segment_graph, | |
PathInstanceMapper * | path_instance_mapper, | |||
bool | debugging = false | |||
) |
Default constructor.
risc::sg::ConflictTable::~ConflictTable | ( | ) |
Destructor.
risc::sg::ConflictTable::determine_conflict_table | ( | ) | [virtual] |
This function determines the conflict table. The function is overloaded for the data and event conflict table.
Reimplemented in risc::sg::DataConflictTable, and risc::sg::EventConflictTable.
int risc::sg::ConflictTable::get_channel_id | ( | const SymbolWithPath & | swp, | |
int | instance, | |||
bool | dynamic_analysis | |||
) |
int risc::sg::ConflictTable::get_channel_id_dynamically | ( | const SymbolWithPath & | swp, | |
int | instance | |||
) |
int risc::sg::ConflictTable::get_channel_id_statically | ( | const SymbolWithPath & | swp, | |
int | instance | |||
) |
risc::sg::MappedVariableList risc::sg::ConflictTable::get_mapped_variable | ( | SgVariableSymbol * | variable, | |
int | instance_id, | |||
bool | dynamic_analysis | |||
) |
risc::sg::MappedVariableList risc::sg::ConflictTable::get_mapped_variable_dynamically | ( | SgVariableSymbol * | variable, | |
int | instance_id | |||
) |
risc::sg::MappedVariableList risc::sg::ConflictTable::get_mapped_variable_statically | ( | SgVariableSymbol * | variable, | |
int | instance_id | |||
) |
int risc::sg::ConflictTable::get_max_instances | ( | int | segment_id | ) |
bool risc::sg::ConflictTable::has_conflict | ( | int | segment_id_1, | |
int | instance_id_1, | |||
int | segment_id_2, | |||
int | instance_id_2 | |||
) |
std::pair< int, int > risc::sg::ConflictTable::index_to_segment_and_instance_id | ( | int | index | ) |
void risc::sg::ConflictTable::print_conflict_table | ( | std::string | filename | ) |
risc::sg::ConflictTable::print_conflicts_per_instance | ( | ) |
prints the conflicts per instance
risc::sg::ConflictTable::print_instance_id_to_index_lookup_table | ( | ) |
This function prints the table instance_id_to_index_lookup_table in the terminal.
void risc::sg::ConflictTable::print_lookup_table | ( | std::string | filename | ) |
int risc::sg::ConflictTable::segment_and_instance_id_to_index | ( | int | segment_id, | |
int | instance_id | |||
) |
risc::sg::VertexDescriptor risc::sg::ConflictTable::segment_id_to_vertex_descriptor | ( | int | id | ) |
void risc::sg::ConflictTable::set_conflict | ( | int | segment_id_1, | |
int | instance_id_1, | |||
int | segment_id_2, | |||
int | instance_id_2 | |||
) |
The conflict table.
Stores the conflicts per intance.
This table should be used a lookup table: (segment id, instance id) -> index of conflict table.
This variable represents the max number of module instances in the design. Also, this is the number of rows in the instance_id_to_index_lookup_ table.
Maximum number of module/channel instances Only instances with at least one simulation thread are considered.
This variable defines how many segments exist in the segment graph. Also, this is the number of columns in the instance_id_to_index_lookup_ table.
This variable defines the size of the conflict table. The size is quadratic.
This lookup table translates segment ids into vertex descriptors. At position i is the segment with the id of instance_id_to_index_lookup_[0][i].