#include <conflict_table.h>
Classes | |
struct | ConflictInformation |
Public Member Functions | |
ConflictTable (SegmentGraph &segment_graph, PathInstanceMapper &path_instance_mapper, bool debugging=false) | |
Default constructor. | |
~ConflictTable () | |
Default constructor. | |
void | print_conflict_table (std::string filename) |
Generates a html file of the conflict table. | |
void | print_lookup_table (std::string filename) |
Generates a html file of the lookup table. | |
int | segment_and_instance_id_to_index (int segment_id, int instance_id) |
This function translates a given segment id and instance id to a index of the conflict table. | |
std::pair< int, int > | index_to_segment_and_instance_id (int index) |
This function translates a given index from the conflict table into the corresponding segment id and instance id. The first value is the segment id and the second value is the instance id. | |
bool | has_conflict (int segment_id_1, int instance_id_1, int segment_id_2, int instance_id_2) |
This function looks up if there is a conflict between segment 1 with instance id 1 and segment 2 with 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) |
This function sets a conflict in the conflict table. | |
void | set_conflict_cause (int segment_id_1, int instance_id_1, int segment_id_2, int instance_id_2, SgNode *cause=NULL) |
This function sets a conflict in the conflict table. | |
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) |
This function translates the given segment id to the corresponding vertex descriptor. | |
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 | 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 | ( | ) |
Default constructor.
void risc::sg::ConflictTable::determine_conflict_table | ( | ) | [virtual] |
This function determines the conflict table. The function is overloaded for the data and event conflict table.
determine_conflict_table
Reimplemented in risc::sg::DataConflictTable, and risc::sg::EventConflictTable.
bool risc::sg::ConflictTable::has_conflict | ( | int | segment_id_1, | |
int | instance_id_1, | |||
int | segment_id_2, | |||
int | instance_id_2 | |||
) |
This function looks up if there is a conflict between segment 1 with instance id 1 and segment 2 with instance id 2.
has_conflict
std::pair< int, int > risc::sg::ConflictTable::index_to_segment_and_instance_id | ( | int | index | ) |
This function translates a given index from the conflict table into the corresponding segment id and instance id. The first value is the segment id and the second value is the instance id.
index_to_segment_and_instance_id
void risc::sg::ConflictTable::print_conflict_table | ( | std::string | filename | ) |
Generates a html file of the conflict table.
print_conflict_table
void risc::sg::ConflictTable::print_instance_id_to_index_lookup_table | ( | ) |
This function prints the table instance_id_to_index_lookup_table in the terminal.
print_instance_id_to_index_lookup_table
void risc::sg::ConflictTable::print_lookup_table | ( | std::string | filename | ) |
Generates a html file of the lookup table.
print_lookup_table
int risc::sg::ConflictTable::segment_and_instance_id_to_index | ( | int | segment_id, | |
int | instance_id | |||
) |
This function translates a given segment id and instance id to a index of the conflict table.
segment_and_instance_id_to_index
risc::sg::VertexDescriptor risc::sg::ConflictTable::segment_id_to_vertex_descriptor | ( | int | id | ) |
This function translates the given segment id to the corresponding vertex descriptor.
segment_id_to_vertex_descriptor
void risc::sg::ConflictTable::set_conflict | ( | int | segment_id_1, | |
int | instance_id_1, | |||
int | segment_id_2, | |||
int | instance_id_2 | |||
) |
This function sets a conflict in the conflict table.
set_conflict
void risc::sg::ConflictTable::set_conflict_cause | ( | int | segment_id_1, | |
int | instance_id_1, | |||
int | segment_id_2, | |||
int | instance_id_2, | |||
SgNode * | cause = NULL | |||
) |
This function sets a conflict in the conflict table.
set_conflict
The conflict table.
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.
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].