CGRA-ME
Classes | Macros | Typedefs | Enumerations | Functions | Variables
Module.h File Reference
#include <CGRA/BitSetting.h>
#include <CGRA/Exception.h>
#include <CGRA/MRRG.h>
#include <CGRA/Mapping.h>
#include <CGRA/OpGraph.h>
#include <coreir/ir/fwd_declare.h>
#include <unordered_map>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include <string>
#include <iosfwd>

Go to the source code of this file.

Classes

struct  Port
 
struct  Connection
 
class  PrintList
 
struct  ResolvedVeroligModuleParameter
 
struct  Location
 
class  Module
 
struct  Module::VisualPositionRect
 
struct  Module::VisualPositionPoint
 
struct  PipelineMode
 
struct  LLVMMode
 
class  FuncUnit
 Functional Unit, does one of a set of arithmetic computations. More...
 
class  FracUnit
 
class  FracMulUnit
 
class  FracAddUnit
 
class  MemoryUnit
 Single load & store memory operations. More...
 
class  ConstUnit
 
class  Register
 A simple latency element with an enable signal; a data flip-flop. More...
 
class  Multiplexer
 Zero-cycle latency multiplexer. More...
 
class  TruncateInput
 Zero-cycle latency split input. More...
 
class  SelMultiplexer
 2 Zero-cycle latency multiplexers for predication support. More...
 
class  DeMux
 Zero-cycle latency DeMultiplexer. More...
 
class  RegisterFile
 Multiplexed registers. More...
 
class  Crossbar
 
class  TriState
 
class  IO
 Supports the input and output ops. Will add an external port at the top-level of generated verilog. More...
 
class  DisconnectedSource
 For when an input is unused, but a connection is required anyway. More...
 
class  DisconnectedSink
 For when an output is unused, but a connection is required anyway. More...
 
class  CustomModule
 
class  CustomModuleSingleInput
 
class  UserModule
 
class  ConfigCell
 
class  EventTransitionTable
 
class  ContextCell
 
class  ContextCounter
 
class  CaseStatement
 
class  Compare
 

Macros

#define MOD_II(x)   ((x) % II)
 

Typedefs

using StringMatrix = std::vector< std::vector< std::string > >
 
using MRRGNodesFromOpNode = std::map< OpGraphOp *, std::set< MRRG::NodeDescriptor > >
 
using MRRGNodesFromValNode = std::map< OpGraphVal *, std::set< MRRG::NodeDescriptor > >
 

Enumerations

enum  port_type {
  PORT_INPUT, PORT_OUTPUT, PORT_OUTPUT_REG, PORT_BIDIR,
  PORT_CONFIG, PORT_UNSPECIFIED
}
 
enum  CGRABlockType { STANDARD_NOBYPASS, STANDARD_BYPASS, STANDARD_DIAGONAL }
 
enum  VerilogType { VerilogType::CGRAME = 0, VerilogType::CoreIR = 1 }
 

Functions

std::istream & operator>> (std::istream &is, port_type &porttype)
 
std::istream & operator>> (std::istream &is, CGRABlockType &blocktype)
 
std::ostream & operator<< (std::ostream &os, VerilogType vt)
 

Variables

const char *const SET_INDENT = " "
 
const char *const SET_DOUBLE_INDENT = " "
 
const char *const SET_TRIPLE_INDENT = " "
 
const char *const SET_QUAD_INDENT = " "
 
const char *const SET_PENTA_INDENT = " "
 
const char *const SET_HEXA_INDENT = " "
 
const char *const PORT_DEFAULT_CONNECTION = "/* A PORT IS UNCONNECTED */"
 
const bool MODULE_DEBUG_PRINTING = false
 
const int DEFAULT_SIZE = 32
 
const int PARAMETERIZED = 0
 

Macro Definition Documentation

◆ MOD_II

#define MOD_II (   x)    ((x) % II)

Definition at line 32 of file Module.h.

Typedef Documentation

◆ MRRGNodesFromOpNode

Definition at line 146 of file Module.h.

◆ MRRGNodesFromValNode

Definition at line 147 of file Module.h.

◆ StringMatrix

using StringMatrix = std::vector<std::vector<std::string> >

Definition at line 35 of file Module.h.

Enumeration Type Documentation

◆ CGRABlockType

Enumerator
STANDARD_NOBYPASS 
STANDARD_BYPASS 
STANDARD_DIAGONAL 

Definition at line 74 of file Module.h.

◆ port_type

enum port_type
Enumerator
PORT_INPUT 
PORT_OUTPUT 
PORT_OUTPUT_REG 
PORT_BIDIR 
PORT_CONFIG 
PORT_UNSPECIFIED 

Definition at line 61 of file Module.h.

◆ VerilogType

enum VerilogType
strong
Enumerator
CGRAME 
CoreIR 

Definition at line 150 of file Module.h.

Function Documentation

◆ operator<<()

std::ostream& operator<< ( std::ostream &  os,
VerilogType  vt 
)

Definition at line 98 of file Module.cpp.

◆ operator>>() [1/2]

std::istream& operator>> ( std::istream &  is,
CGRABlockType blocktype 
)

Definition at line 166 of file ModuleComposites.cpp.

◆ operator>>() [2/2]

std::istream& operator>> ( std::istream &  is,
port_type porttype 
)

Definition at line 2381 of file Module.cpp.

Variable Documentation

◆ DEFAULT_SIZE

const int DEFAULT_SIZE = 32

Definition at line 48 of file Module.h.

◆ MODULE_DEBUG_PRINTING

const bool MODULE_DEBUG_PRINTING = false

Definition at line 46 of file Module.h.

◆ PARAMETERIZED

const int PARAMETERIZED = 0

Definition at line 50 of file Module.h.

◆ PORT_DEFAULT_CONNECTION

const char* const PORT_DEFAULT_CONNECTION = "/* A PORT IS UNCONNECTED */"

Definition at line 44 of file Module.h.

◆ SET_DOUBLE_INDENT

const char* const SET_DOUBLE_INDENT = " "

Definition at line 38 of file Module.h.

◆ SET_HEXA_INDENT

const char* const SET_HEXA_INDENT = " "

Definition at line 42 of file Module.h.

◆ SET_INDENT

const char* const SET_INDENT = " "

Definition at line 37 of file Module.h.

◆ SET_PENTA_INDENT

const char* const SET_PENTA_INDENT = " "

Definition at line 41 of file Module.h.

◆ SET_QUAD_INDENT

const char* const SET_QUAD_INDENT = " "

Definition at line 40 of file Module.h.

◆ SET_TRIPLE_INDENT

const char* const SET_TRIPLE_INDENT = " "

Definition at line 39 of file Module.h.