risc::sg::EventConflictTable Class Reference

The conflicts are stored in the base class variable conflict_table_. The columns represent wait statements of the segments. The rows are representing the notifications of events. So, a true in conflict_table_[i][j] means that the associated segment/instance i notifies the event for which the associated segment/instance j is waiting. More...

#include <event_conflict_table.h>

Inheritance diagram for risc::sg::EventConflictTable:
Inheritance graph
[legend]
Collaboration diagram for risc::sg::EventConflictTable:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 EventConflictTable (SegmentGraph &graph, PathInstanceMapper &path_instance_mapper, bool debugging)
 Default constructor for the DataConflictTable.
virtual void determine_conflict_table ()
 This function determines conflicts among the segments.
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.
VertexDescriptor segment_id_to_vertex_descriptor (int id)
 This function translates the given segment id to the corresponding vertex descriptor.

Public Attributes

VertexDescriptorvertex_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.
PathInstanceMapperpath_instance_mapper_
SegmentGraphsegment_graph_
ConflictInformation ** conflict_info_
bool debugging_

Detailed Description

The conflicts are stored in the base class variable conflict_table_. The columns represent wait statements of the segments. The rows are representing the notifications of events. So, a true in conflict_table_[i][j] means that the associated segment/instance i notifies the event for which the associated segment/instance j is waiting.

TODO Handling for pointers


Constructor & Destructor Documentation

risc::sg::EventConflictTable::EventConflictTable ( SegmentGraph graph,
PathInstanceMapper path_instance_mapper,
bool  debugging 
)

Default constructor for the DataConflictTable.


Member Function Documentation

void risc::sg::EventConflictTable::determine_conflict_table (  )  [virtual]

This function determines conflicts among the segments.

determine_conflict_table

Reimplemented from risc::sg::ConflictTable.

bool risc::sg::ConflictTable::has_conflict ( int  segment_id_1,
int  instance_id_1,
int  segment_id_2,
int  instance_id_2 
) [inherited]

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  )  [inherited]

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  )  [inherited]

Generates a html file of the conflict table.

print_conflict_table

void risc::sg::ConflictTable::print_instance_id_to_index_lookup_table (  )  [inherited]

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  )  [inherited]

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 
) [inherited]

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  )  [inherited]

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 
) [inherited]

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 
) [inherited]

This function sets a conflict in the conflict table.

set_conflict


Member Data Documentation

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].


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 30 Sep 2015 by  doxygen 1.6.1