Go to the documentation of this file.
17 , num_connections(num_connections_)
18 , num_const_addresses(num_const_addresses_)
27 s <<
"MemPort doesn't support num_connections < 2. num_connections = " <<
num_connections;
42 const auto constAddrName = [](
int index) {
return "const_addr_" +
to_string(index); };
90 addConnection(
"this.Context", constAddrName(i) +
".Context",
false);
112 , num_inputs(num_inputs_)
114 if (
num_inputs < 1) { make_and_throw<cgrame_error>([&](
auto&& s) {
115 s <<
"IOPort doesn't support num_inputs < 1. num_inputs = " <<
num_inputs;
173 is.setstate(std::ios_base::failbit);
180 , blockType(blockType_)
350 std::cout <<
"ERROR, unintended mode\n";
Zero-cycle latency multiplexer.
void addConnection(std::string src, std::string dst, bool isInMRRG=true)
virtual std::string GenericName()
void addParameter(std::string parameterName, unsigned parameterValue)
A simple latency element with an enable signal; a data flip-flop.
void addPort(std::string portname, port_type pt, unsigned size)
std::map< std::string, VisualPositionPoint > node_relative_position
IOPort(std::string name, Location, int num_inputs, int size=DEFAULT_SIZE)
const std::string & to_string(const OpGraphOpCode &opcode)
MemPort(std::string name, Location, int num_connections, int size, int num_const_addresses, bool pred=false, int II=1)
Supports the input and output ops. Will add an external port at the top-level of generated verilog.
static const std::map< std::string, CGRABlockType > block_type_map
std::string string_from_stream(F &&f)
virtual std::string GenericName()
void addConfig(ConfigCell *c, std::vector< std::string > ConnectTo)
void addSubModule(Module *m)
Single load & store memory operations.
SimpleFU(std::string name, Location, CGRABlockType blockType=STANDARD_NOBYPASS)
virtual std::string GenericName()
Functional Unit, does one of a set of arithmetic computations.
std::istream & operator>>(std::istream &is, CGRABlockType &type)