CGRA-ME
Classes | Enumerations | Functions
MRRG.h File Reference
#include <CGRA/ConfigStore.h>
#include <CGRA/Exception.h>
#include <CGRA/OpGraph.h>
#include <CGRA/Util.h>
#include <algorithm>
#include <array>
#include <iostream>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <unordered_map>
#include <vector>

Go to the source code of this file.

Classes

class  MRRGNode
 
class  MRRG
 
struct  MRRG::VerifyMessage
 
struct  MrrgNodeSpan
 

Enumerations

enum  MRRGNode_Type { MRRG_NODE_ROUTING, MRRG_NODE_FUNCTION, MRRG_NODE_ROUTING_FUNCTION }
 
enum  NodePortType { UNSPECIFIED, MUX_OUT, MUX_IN }
 
enum  HWEntityType {
  HW_WIRE, HW_REG, HW_MUX, HW_COMB,
  HW_UNSPECIFIED
}
 

Functions

std::ostream & operator<< (std::ostream &os, const MRRG::NodeDescriptor &ndesc)
 
template<typename M >
auto makeNodeGetterForCycle (M &mrrg, int cycle)
 
bool verifyAndPrintReport (const MRRG &mrrg, std::ostream &os, bool silent_on_no_errors, bool throw_if_errors, const ConfigStore &extra_opts={})
 
char operator+ (const MRRG::VerifyMessage::Type &vm_type)
 
std::ostream & operator<< (std::ostream &os, const MRRG::VerifyMessage::Type &vm_type)
 

Enumeration Type Documentation

◆ HWEntityType

Enumerator
HW_WIRE 
HW_REG 
HW_MUX 
HW_COMB 
HW_UNSPECIFIED 

Definition at line 48 of file MRRG.h.

◆ MRRGNode_Type

This file should be limited to containing the MRRG definition and very basic closely-related functions. Most headers than require the MRRG should only have to include this file. General procedures can be placed in MRRGProcedures.h.

Enumerator
MRRG_NODE_ROUTING 
MRRG_NODE_FUNCTION 
MRRG_NODE_ROUTING_FUNCTION 

Definition at line 36 of file MRRG.h.

◆ NodePortType

Enumerator
UNSPECIFIED 
MUX_OUT 
MUX_IN 

Definition at line 42 of file MRRG.h.

Function Documentation

◆ makeNodeGetterForCycle()

template<typename M >
auto makeNodeGetterForCycle ( M &  mrrg,
int  cycle 
)

Makes a function object that takes a name and returns that node within a fixed MRRG and cycle. eg: const auto& nodes_this_cycle = makeNodeGetterForCycle(result, this_cycle); link(nodes_this_cycle("in"), nodes_this_cycle("m_in"));

Definition at line 401 of file MRRG.h.

◆ operator+()

char operator+ ( const MRRG::VerifyMessage::Type vm_type)
inline

Definition at line 422 of file MRRG.h.

◆ operator<<() [1/2]

std::ostream& operator<< ( std::ostream &  os,
const MRRG::NodeDescriptor ndesc 
)
inline

Definition at line 383 of file MRRG.h.

◆ operator<<() [2/2]

std::ostream& operator<< ( std::ostream &  os,
const MRRG::VerifyMessage::Type vm_type 
)
inline

Definition at line 424 of file MRRG.h.

◆ verifyAndPrintReport()

bool verifyAndPrintReport ( const MRRG mrrg,
std::ostream &  os,
bool  silent_on_no_errors,
bool  throw_if_errors,
const ConfigStore extra_opts = {} 
)

A routine for verifying the MRRG. Prints out a success message, unless told not to. Can throw if errors are found. Returns true if no errors found extra_opts is passed to MRRG::verify

Definition at line 473 of file MRRG.cpp.