Go to the documentation of this file.
36 #ifndef TTA_DEFAULT_IC_GENERATOR_HH
37 #define TTA_DEFAULT_IC_GENERATOR_HH
55 class NetlistGenerator;
99 typedef std::map<const TTAMachine::Bus*, SocketSignalMap*>
110 int segmentConns,
const std::string& dstDirectory)
const;
113 std::ofstream& stream)
const;
117 std::ofstream& stream)
const;
121 std::ofstream& stream)
const;
129 std::ostream& stream);
134 std::ostream& stream);
164 const std::string& socket,
168 static std::string
simmDataPort(
const std::string& busName);
201 static std::string
indentation(
unsigned int level);
std::map< const TTAMachine::Bus *, SocketSignalMap * > BusAltSignalMap
static std::string dataWidthGeneric(int port)
std::string busAltSignal(const TTAMachine::Bus &bus, const TTAMachine::Socket &socket)
void generateSocket(TTAMachine::Socket::Direction direction, int portConns, int segmentConns, const std::string &dstDirectory) const
std::string outputSocketEntityName(int busConns, int portConns) const
static std::string busMuxEnablePort(const TTAMachine::Bus &bus)
TTAMachine::Machine * machine
the architecture definition of the estimated processor
static std::string simmSignal(const TTAMachine::Bus &bus)
void declareSocketEntities(std::ostream &stream) const
static int dataControlWidth(TTAMachine::Socket::Direction direction, int portConns)
void addICToNetlist(const ProGe::NetlistGenerator &generator, ProGe::NetlistBlock &netlistBlock)
void writeBustraceExportCode(std::ostream &stream) const
static std::string simmControlPort(const std::string &busName)
static std::string busMuxEntityName(TTAMachine::Bus &bus)
std::map< const TTAMachine::Socket *, int > SocketSignalMap
virtual const BusSocketMap getBusConnections() const
static std::string socketFileName(const ProGe::HDL language, TTAMachine::Socket::Direction direction, int portConns, int segmentConns)
BusSocketMap busConnections
static std::string outputSocketDataPort(const std::string &socket, int port)
bool socketIsGenerated(const TTAMachine::Socket &socket)
static std::string socketDataControlPort(const std::string &name)
bool generateBusTrace_
Tells whether to generate bus tracing code.
bool exportBustrace_
Tells whether to export bustraces to debugger.
std::string socketEntityName(TTAMachine::Socket &socket) const
void generateInputSocketRuleForBus(int bus, int ind, std::ofstream &stream) const
virtual int inputSocketControlValue(const TTAMachine::Socket &socket, const TTAMachine::Segment &segment) const
void createSignalsForIC(std::ostream &stream)
void writeBusDumpCode(std::ostream &stream) const
static std::string busMuxControlPort(const TTAMachine::Bus &bus)
static std::string busSignal(const TTAMachine::Bus &bus)
void generateInputMux(int segmentConns, std::ofstream &stream) const
std::map< const TTAMachine::Bus *, std::set< TTAMachine::Socket * > > BusSocketMap
void setGenerateBusTrace(bool generate)
bool isGcuPort(const TTAMachine::Port *port) const
static int inputSocketDataPortWidth(const TTAMachine::Socket &socket)
DefaultICGenerator(const TTAMachine::Machine &machine)
static std::string simmDataPort(const std::string &busName)
void generateOutputSocket(int portConns, int segmentConns, std::ofstream &stream) const
static std::string inputSocketBusPort(int bus)
static std::string simmSocket(const TTAMachine::Bus &bus)
BusAltSignalMap altSignalMap_
Signal numbers for controlling sockets.
static std::string busMuxDataPort(const TTAMachine::Bus &bus, int index)
static std::string busWidthGeneric(int bus)
std::set< std::pair< int, int > > generatedInputSockets_
static std::set< TTAMachine::Socket * > outputSockets(const TTAMachine::Bus &bus)
static void writeInputSocketComponentDeclaration(const ProGe::HDL language, int segmentConns, int ind, std::ostream &stream)
static std::string socketBusControlPort(const std::string &name)
virtual ~DefaultICGenerator()
void generateSocketsAndMuxes(const std::string &dstDirectory)
ProGe::NetlistBlock * icBlock_
The netlist block of IC.
void SetHDL(ProGe::HDL language)
void writeInterconnectionNetwork(std::ostream &stream)
static bool isBusConnected(const TTAMachine::Bus &bus)
static ProGe::Direction convertDirection(TTAMachine::Socket::Direction direction)
static void writeOutputSocketComponentDeclaration(const ProGe::HDL language, int portConns, int segmentConns, int ind, std::ostream &stream)
std::set< std::pair< int, int > > generatedOutputSockets_
void setBusTraceStartingCycle(unsigned int cycle)
const TTAMachine::Machine & machine_
The machine.
void verifyCompatibility() const
static int simmPortWidth(const TTAMachine::Bus &bus)
static std::string indentation(unsigned int level)
HDL
HDLs supported by ProGe.
virtual int outputSocketCntrlPinForSegment(const TTAMachine::Socket &socket, const TTAMachine::Segment &segment) const
static int maxOutputSocketDataPortWidth(const TTAMachine::Socket &socket)
virtual int outputSocketDataControlValue(const TTAMachine::Socket &socket, const TTAMachine::Port &port) const
void generateInterconnectionNetwork(const std::string &dstDirectory)
static std::string outputSocketBusPort(int bus)
static int busControlWidth(TTAMachine::Socket::Direction direction, int busConns)
std::string inputMuxEntityName(int conns) const
static std::set< TTAMachine::Socket * > inputSockets(const TTAMachine::Bus &bus)
Direction
Direction of the port.
void setExportBustrace(bool export_bt)
unsigned int busTraceStartingCycle_
The starting cycle for bus tracing.
static std::string inputSocketDataPort(const std::string &socket)
static int outputSocketDataPortWidth(const TTAMachine::Socket &socket, int port)
void setFPGAOptimization(bool optimized)