OpenASIP  2.0
NetlistGenerator.hh
Go to the documentation of this file.
1 /*
2  Copyright (c) 2002-2009 Tampere University.
3 
4  This file is part of TTA-Based Codesign Environment (TCE).
5 
6  Permission is hereby granted, free of charge, to any person obtaining a
7  copy of this software and associated documentation files (the "Software"),
8  to deal in the Software without restriction, including without limitation
9  the rights to use, copy, modify, merge, publish, distribute, sublicense,
10  and/or sell copies of the Software, and to permit persons to whom the
11  Software is furnished to do so, subject to the following conditions:
12 
13  The above copyright notice and this permission notice shall be included in
14  all copies or substantial portions of the Software.
15 
16  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  DEALINGS IN THE SOFTWARE.
23  */
24 /**
25  * @file NetlistGenerator.hh
26  *
27  * Declaration of NetlistGenerator class.
28  *
29  * @author Lasse Laasonen 2005 (lasse.laasonen-no.spam-tut.fi)
30  * @note rating: red
31  */
32 
33 #ifndef TTA_NETLIST_GENERATOR_HH
34 #define TTA_NETLIST_GENERATOR_HH
35 
36 #include <iostream>
37 #include <map>
38 #include <vector>
39 
40 #include "Exception.hh"
42 #include "HDBTypes.hh"
43 #include "ProGeTypes.hh"
45 #include "TCEString.hh"
46 #include "ProGeOptions.hh"
47 
48 namespace IDF {
49  class MachineImplementation;
50  class FUGenerated;
51 }
52 
53 namespace HDB {
54  class FUEntry;
55  class RFEntry;
56  class FUImplementation;
57 }
58 
59 namespace TTAMachine {
60  class Unit;
61  class FunctionUnit;
62  class ControlUnit;
63  class FUPort;
64  class Machine;
65  class BaseRegisterFile;
66  class AddressSpace;
67  class Port;
68  class ImmediateUnit;
69 }
70 
71 namespace ProGe {
72 
73  class ICDecoderGeneratorPlugin;
74  class Netlist;
75  class NetlistBlock;
76  class NetlistPort;
77  class ProGeContext;
78  class Signal;
79  class GeneratableFUNetlistBlock;
80 
81  /**
82  * Generates a netlist of processor building blocks. [DEPRECATED]
83  */
86 
87  public:
90  virtual ~NetlistGenerator();
91 
93  const ProGeOptions& options, int imemWidthInMAUs,
94  TCEString entityNameStr, std::ostream& warningStream);
95 
97  const TTAMachine::Port& port, Direction dir = IN) const;
98  NetlistBlock& netlistBlock(const TTAMachine::Unit& unit) const;
99  NetlistPort& loadPort(const NetlistPort& port) const;
100  bool hasOpcodePort(const NetlistPort& port) const;
101  NetlistPort& rfOpcodePort(const NetlistPort& port) const;
102  NetlistPort& rfGuardPort(const NetlistBlock& rfBlock) const;
103  NetlistPort& fuOpcodePort(const NetlistBlock& fuBlock) const;
104  NetlistPort& fuGuardPort(const NetlistPort& fuPort) const;
105  NetlistPort& clkPort(const NetlistBlock& block) const;
106  NetlistPort& rstPort(const NetlistBlock& block) const;
107  bool hasGlockPort(const NetlistBlock& block) const;
108  NetlistPort& glockPort(const NetlistBlock& block) const;
109  bool hasGlockReqPort(const NetlistBlock& block) const;
110  NetlistPort& glockReqPort(const NetlistBlock& block) const;
111 
113  const TTAMachine::ImmediateUnit& iu) const;
116 
117  NetlistBlock& ttaCore() const;
121 
122  HDB::FUEntry& fuEntry(const std::string& fuName) const;
123  HDB::RFEntry& rfEntry(const std::string& rfName) const;
124 
125  const ProGeContext& context() const { return context_; }
126 
127  /// Instruction word port name in instruction decoder.
128  static const std::string DECODER_INSTR_WORD_PORT;
129  /// Reset port name in instruction decoder.
130  static const std::string DECODER_RESET_PORT;
131  /// Clock port name in instruction decoder.
132  static const std::string DECODER_CLOCK_PORT;
133  /// RA load port name in instruction decoder.
134  static const std::string DECODER_RA_LOAD_PORT;
135  /// PC load port name in instruction decoder.
136  static const std::string DECODER_PC_LOAD_PORT;
137  /// PC opcode port name in instruction decoder.
138  static const std::string DECODER_PC_OPCODE_PORT;
139  /// Lock request out port name in instruction decoder.
140  static const std::string DECODER_LOCK_REQ_OUT_PORT;
141  /// Lock request in port name in instruction decoder.
142  static const std::string DECODER_LOCK_REQ_IN_PORT;
143  // Name of lock status port in instruction decoder.
144  static const std::string DECODER_LOCK_STATUS_PORT;
145  /// Lock request in port name in decompressor.
146  static const std::string DECOMP_LOCK_REQ_IN_PORT;
147  /// Global lock out port name in decompressor.
148  static const std::string DECOMP_GLOCK_PORT;
149  /// Instruction word port name in decompressor.
150  static const std::string DECOMP_INSTR_WORD_PORT;
151  // Name of address width parameter
152  static const std::string ADDR_WIDTH;
153  // Name of the fetch block port
154  static const std::string FETCHBLOCK_PORT_NAME;
155 
157  const NetlistBlock& block, NetlistPort& glockReqPort);
158 
159  private:
160  /// Multimap type to map ADF ports to NetlistPorts.
161  typedef std::multimap<const TTAMachine::Port*, NetlistPort*>
163  /// Map type to map ADF Units to NetlistBlocks
164  typedef std::map<const TTAMachine::Unit*, NetlistBlock*>
166  /// Map type for NetlistPorts.
167  typedef std::map<const NetlistPort*, NetlistPort*> PortRelationMap;
168  /// Map type for NetlistPorts.
169  typedef std::map<const NetlistBlock*, NetlistPort*> PortPurposeMap;
170  /// Map type for port of immediate units.
171  typedef std::map<const TTAMachine::ImmediateUnit*, NetlistPort*>
173  /// Map type for FUImplementation.
174  typedef std::map<std::string, HDB::FUEntry*> FUEntryMap;
175  /// Map type for RFImplementation.
176  typedef std::map<std::string, HDB::RFEntry*> RFEntryMap;
177 
178  void addGCUToNetlist(NetlistBlock& toplevelBlock, int imemWidthInMAUs);
179  void addFUToNetlist(
180  const IDF::FUImplementationLocation& location,
181  NetlistBlock& netlistBlock, std::ostream& warningStream);
185  const HDB::FUImplementation& fuImplementation,
186  NetlistBlock& coreBlock, NetlistBlock& fuBlock,
187  const TTAMachine::FunctionUnit& adfFU);
188  void addRFToNetlist(
189  const ProGeOptions& options,
190  const IDF::RFImplementationLocation& location,
192  void addIUToNetlist(
193  const ProGeOptions& options,
194  const IDF::RFImplementationLocation& location,
196  void addBaseRFToNetlist(
197  const ProGeOptions& options,
198  const TTAMachine::BaseRegisterFile& regFile,
199  const IDF::RFImplementationLocation& location,
200  NetlistBlock& netlistBlock, const std::string& blockNamePrefix);
201  void mapNetlistPort(
202  const TTAMachine::Port& adfPort, NetlistPort& netlistPort);
203  void mapNetlistBlock(
205  bool netlistPortIsMapped(const TTAMachine::Port& adfPort);
206  void mapLoadPort(const NetlistPort& port, NetlistPort& loadPort);
207  void mapRFOpcodePort(const NetlistPort& port, NetlistPort& opcodePort);
208  void mapClockPort(const NetlistBlock& block, NetlistPort& clkPort);
209  void mapResetPort(const NetlistBlock& block, NetlistPort& resetPort);
210  void
212  void mapRFGuardPort(const NetlistBlock& block, NetlistPort& guardPort);
213  void
214  mapFUGuardPort(const NetlistPort& dataPort, NetlistPort& guardPort);
215  void
216  mapFUOpcodePort(const NetlistBlock& block, NetlistPort& opcodePort);
218  const TTAMachine::ImmediateUnit& iu, NetlistPort& port);
219  bool isParameterizable(
220  const std::string& paramName, const HDB::FUEntry* fuEntry) const;
221  unsigned int
223 
224  TCEString checkInstanceName(const TCEString& baseInstanceName,
225  const TCEString& moduleName) const;
226 
227  bool isLSU(const TTAMachine::FunctionUnit& fu) const;
228  static bool isLSUDataPort(
229  const TTAMachine::FunctionUnit& adfFU, const std::string& portName);
230  static Signal inferLSUSignal(const std::string& portName);
231 
232  static int opcodePortWidth(
233  const HDB::FUEntry& fu, std::ostream& warningStream);
234  static int opcodePortWidth(const TTAMachine::ControlUnit& gcu);
236  const TTAMachine::FunctionUnit& fuToSearch,
237  const TTAMachine::FunctionUnit& origFU,
238  const std::string& portName);
244  static Direction translateDirection(HDB::Direction direction);
245 
247  /// The generator plugin.
249  /// Maps the ADF ports to the netlist ports.
251  /// Maps the ADF units to the netlist blocks.
253  /// Maps loads ports.
255  /// Maps opcode ports.
257  /// Maps clock ports.
259  /// Maps reset ports.
261  /// Maps RF guard ports.
263  /// Maps global lock ports.
265  /// Maps global lock request ports.
267  /// Maps FU guard ports.
269  /// Maps FU opcode ports.
271  /// Maps the created netlist ports to immediate units
273  /// The TTA core block
275  /// The instruction decoder block.
277  /// The instruction decompressor block
279  /// The instruction fetch block
281  /// Maps FU implementations for different FU's.
283  /// Maps RF implementations for different RF's.
285  /// Return address in port in GCU (ifetch).
287  /// Returns address out port in GCU (ifetch).
289  };
290 }
291 
292 #endif
ProGe::NetlistGenerator::instructionFetch
NetlistBlock & instructionFetch() const
Definition: NetlistGenerator.cc:617
IDF::UnitImplementationLocation
Definition: UnitImplementationLocation.hh:48
RFImplementationLocation.hh
ProGe::NetlistGenerator::isParameterizable
bool isParameterizable(const std::string &paramName, const HDB::FUEntry *fuEntry) const
Definition: NetlistGenerator.cc:1832
HDB::FUEntry
Definition: FUEntry.hh:49
ProGe::NetlistGenerator::instructionDecompressor
NetlistBlock & instructionDecompressor() const
Definition: NetlistGenerator.cc:636
ProGe::NetlistGenerator::instructionDecompressor_
NetlistBlock * instructionDecompressor_
The instruction decompressor block.
Definition: NetlistGenerator.hh:278
ProGe::NetlistGenerator::hasGlockReqPort
bool hasGlockReqPort(const NetlistBlock &block) const
Definition: NetlistGenerator.cc:497
HDBTypes.hh
ProGe::NetlistGenerator::DECODER_LOCK_STATUS_PORT
static const std::string DECODER_LOCK_STATUS_PORT
Definition: NetlistGenerator.hh:144
ProGe::NetlistGenerator::addFUToNetlist
void addFUToNetlist(const IDF::FUImplementationLocation &location, NetlistBlock &netlistBlock, std::ostream &warningStream)
Definition: NetlistGenerator.cc:974
ProGe::NetlistGenerator::mapFUOpcodePort
void mapFUOpcodePort(const NetlistBlock &block, NetlistPort &opcodePort)
Definition: NetlistGenerator.cc:1719
ProGe::NetlistGenerator::mapLoadPort
void mapLoadPort(const NetlistPort &port, NetlistPort &loadPort)
Definition: NetlistGenerator.cc:1691
ProGe::NetlistGenerator::loadPortMap_
PortRelationMap loadPortMap_
Maps loads ports.
Definition: NetlistGenerator.hh:254
ProGe::NetlistGenerator::DECOMP_INSTR_WORD_PORT
static const std::string DECOMP_INSTR_WORD_PORT
Instruction word port name in decompressor.
Definition: NetlistGenerator.hh:150
ProGe::NetlistBlock
Definition: NetlistBlock.hh:61
HDB
Definition: CostDatabase.hh:49
ProGe::NetlistGenerator::rfOpcodePortMap_
PortRelationMap rfOpcodePortMap_
Maps opcode ports.
Definition: NetlistGenerator.hh:256
machine
TTAMachine::Machine * machine
the architecture definition of the estimated processor
Definition: EstimatorCmdLineUI.cc:59
TTAMachine::AddressSpace
Definition: AddressSpace.hh:51
Exception.hh
ProGe::NetlistGenerator::clkPorts_
PortPurposeMap clkPorts_
Maps clock ports.
Definition: NetlistGenerator.hh:258
ProGe::NetlistGenerator::addGCUToNetlist
void addGCUToNetlist(NetlistBlock &toplevelBlock, int imemWidthInMAUs)
Definition: NetlistGenerator.cc:692
ProGe::NetlistGenerator::coreBlock_
NetlistBlock * coreBlock_
The TTA core block.
Definition: NetlistGenerator.hh:274
ProGe::NetlistGenerator::DECODER_PC_LOAD_PORT
static const std::string DECODER_PC_LOAD_PORT
PC load port name in instruction decoder.
Definition: NetlistGenerator.hh:136
ProGe::NetlistGenerator::rfEntry
HDB::RFEntry & rfEntry(const std::string &rfName) const
Definition: NetlistGenerator.cc:676
ProGe::NetlistGenerator::mapGlobalLockRequestPort
void mapGlobalLockRequestPort(const NetlistBlock &block, NetlistPort &glockReqPort)
Definition: NetlistGenerator.cc:1775
ProGe::NetlistGenerator::rfGuardPorts_
PortPurposeMap rfGuardPorts_
Maps RF guard ports.
Definition: NetlistGenerator.hh:262
ProGe::NetlistGenerator::generate
NetlistBlock * generate(const ProGeOptions &options, int imemWidthInMAUs, TCEString entityNameStr, std::ostream &warningStream)
Definition: NetlistGenerator.cc:188
ProGe::ICDecoderGeneratorPlugin
Definition: ICDecoderGeneratorPlugin.hh:68
HDB::RFEntry
Definition: RFEntry.hh:47
ProGe::NetlistGenerator::NetlistGenerator
NetlistGenerator(const ProGeContext &context, ICDecoderGeneratorPlugin &plugin)
Definition: NetlistGenerator.cc:159
ProGeOptions
Definition: ProGeOptions.hh:41
ProGe::NetlistGenerator::addBaseRFToNetlist
void addBaseRFToNetlist(const ProGeOptions &options, const TTAMachine::BaseRegisterFile &regFile, const IDF::RFImplementationLocation &location, NetlistBlock &netlistBlock, const std::string &blockNamePrefix)
Definition: NetlistGenerator.cc:1351
ProGe::NetlistGenerator::UnitCorrespondenceMap
std::map< const TTAMachine::Unit *, NetlistBlock * > UnitCorrespondenceMap
Map type to map ADF Units to NetlistBlocks.
Definition: NetlistGenerator.hh:165
ProGe::NetlistGenerator::mapResetPort
void mapResetPort(const NetlistBlock &block, NetlistPort &resetPort)
Definition: NetlistGenerator.cc:1747
ProGe::NetlistGenerator::addIUToNetlist
void addIUToNetlist(const ProGeOptions &options, const IDF::RFImplementationLocation &location, NetlistBlock &netlistBlock)
Definition: NetlistGenerator.cc:1318
ProGe::NetlistGenerator::FUEntryMap
std::map< std::string, HDB::FUEntry * > FUEntryMap
Map type for FUImplementation.
Definition: NetlistGenerator.hh:174
ProGe::NetlistGenerator::fuGuardPort
NetlistPort & fuGuardPort(const NetlistPort &fuPort) const
Definition: NetlistGenerator.cc:402
ProGe::NetlistGenerator::DECODER_PC_OPCODE_PORT
static const std::string DECODER_PC_OPCODE_PORT
PC opcode port name in instruction decoder.
Definition: NetlistGenerator.hh:138
ProGe::NetlistGenerator::DECODER_RA_LOAD_PORT
static const std::string DECODER_RA_LOAD_PORT
RA load port name in instruction decoder.
Definition: NetlistGenerator.hh:134
ProGe::NetlistGenerator::findCorrespondingPort
static TTAMachine::FUPort & findCorrespondingPort(const TTAMachine::FunctionUnit &fuToSearch, const TTAMachine::FunctionUnit &origFU, const std::string &portName)
Definition: NetlistGenerator.cc:1963
ProGe::NetlistGenerator::glockReqPort
NetlistPort & glockReqPort(const NetlistBlock &block) const
Definition: NetlistGenerator.cc:510
ProGe::NetlistGenerator::glockPort
NetlistPort & glockPort(const NetlistBlock &block) const
Definition: NetlistGenerator.cc:477
ProGe::NetlistGenerator::isLSU
bool isLSU(const TTAMachine::FunctionUnit &fu) const
Definition: NetlistGenerator.cc:2102
ProGe::NetlistGenerator::loadPort
NetlistPort & loadPort(const NetlistPort &port) const
Definition: NetlistGenerator.cc:304
ProGe::NetlistGenerator::DECOMP_GLOCK_PORT
static const std::string DECOMP_GLOCK_PORT
Global lock out port name in decompressor.
Definition: NetlistGenerator.hh:148
ProGe::NetlistGenerator::glockReqPorts_
PortPurposeMap glockReqPorts_
Maps global lock request ports.
Definition: NetlistGenerator.hh:266
ProGe::NetlistGenerator::netlistBlock
NetlistBlock & netlistBlock(const TTAMachine::Unit &unit) const
Definition: NetlistGenerator.cc:283
ProGe::NetlistGenerator::FETCHBLOCK_PORT_NAME
static const std::string FETCHBLOCK_PORT_NAME
Definition: NetlistGenerator.hh:154
ProGe::NetlistGenerator::isLSUDataPort
static bool isLSUDataPort(const TTAMachine::FunctionUnit &adfFU, const std::string &portName)
Definition: NetlistGenerator.cc:2132
ProGe::NetlistGenerator::opcodePortWidth
static int opcodePortWidth(const HDB::FUEntry &fu, std::ostream &warningStream)
Definition: NetlistGenerator.cc:1889
ProGe::NetlistGenerator::DECODER_LOCK_REQ_IN_PORT
static const std::string DECODER_LOCK_REQ_IN_PORT
Lock request in port name in instruction decoder.
Definition: NetlistGenerator.hh:142
TCEString.hh
ProGe::NetlistGenerator::addRFToNetlist
void addRFToNetlist(const ProGeOptions &options, const IDF::RFImplementationLocation &location, NetlistBlock &netlistBlock)
Definition: NetlistGenerator.cc:1289
TTAMachine::FunctionUnit
Definition: FunctionUnit.hh:55
ProGe::NetlistGenerator::addGeneratableFUsToNetlist
GeneratableFUNetlistBlock * addGeneratableFUsToNetlist(const IDF::FUGenerated &fug, NetlistBlock &netlistBlock)
Definition: NetlistGenerator.cc:898
ProGe::NetlistGenerator::context_
const ProGeContext & context_
Definition: NetlistGenerator.hh:246
ProGe::NetlistGenerator::gcuReturnAddressOutPort
NetlistPort & gcuReturnAddressOutPort() const
Definition: NetlistGenerator.cc:567
TTAMachine::FUPort
Definition: FUPort.hh:46
ProGe::NetlistGenerator::clkPort
NetlistPort & clkPort(const NetlistBlock &block) const
Definition: NetlistGenerator.cc:425
ProGe::NetlistGenerator::DECODER_CLOCK_PORT
static const std::string DECODER_CLOCK_PORT
Clock port name in instruction decoder.
Definition: NetlistGenerator.hh:132
TTAMachine::BaseRegisterFile
Definition: BaseRegisterFile.hh:48
ProGe::NetlistGenerator::mapRFGuardPort
void mapRFGuardPort(const NetlistBlock &block, NetlistPort &guardPort)
Definition: NetlistGenerator.cc:1789
ProGe::NetlistGenerator::~NetlistGenerator
virtual ~NetlistGenerator()
Definition: NetlistGenerator.cc:168
TTAMachine::Unit
Definition: Unit.hh:51
ProGe::NetlistGenerator::fuOpcodePorts_
PortPurposeMap fuOpcodePorts_
Maps FU opcode ports.
Definition: NetlistGenerator.hh:270
IDF::FUGenerated
Definition: FUGenerated.hh:41
ProGe::NetlistGenerator::mapNetlistBlock
void mapNetlistBlock(const TTAMachine::Unit &unit, NetlistBlock &netlistBlock)
Definition: NetlistGenerator.cc:1668
ProGe::NetlistGenerator::context
const ProGeContext & context() const
Definition: NetlistGenerator.hh:125
TTAMachine::ControlUnit
Definition: ControlUnit.hh:50
ProGe::NetlistGenerator::gcuReturnAddressInPort
NetlistPort & gcuReturnAddressInPort() const
Definition: NetlistGenerator.cc:551
ProGe::NetlistGenerator::glockPorts_
PortPurposeMap glockPorts_
Maps global lock ports.
Definition: NetlistGenerator.hh:264
TTAMachine::Port
Definition: Port.hh:54
ProGe::NetlistGenerator::rstPorts_
PortPurposeMap rstPorts_
Maps reset ports.
Definition: NetlistGenerator.hh:260
ProGe::NetlistGenerator::ttaCore
NetlistBlock & ttaCore() const
Definition: NetlistGenerator.cc:584
HDB::Direction
Direction
Direction of port.
Definition: HDBTypes.hh:40
ProGe::NetlistGenerator::unitCorrespondenceMap_
UnitCorrespondenceMap unitCorrespondenceMap_
Maps the ADF units to the netlist blocks.
Definition: NetlistGenerator.hh:252
ProGe::NetlistGenerator::raOutPort_
NetlistPort * raOutPort_
Returns address out port in GCU (ifetch).
Definition: NetlistGenerator.hh:288
ProGe::NetlistGenerator::plugin_
ICDecoderGeneratorPlugin & plugin_
The generator plugin.
Definition: NetlistGenerator.hh:248
ProGe::GeneratableFUNetlistBlock
Definition: GeneratableFUNetlistBlock.hh:40
ProGe::NetlistGenerator::DECODER_INSTR_WORD_PORT
static const std::string DECODER_INSTR_WORD_PORT
Instruction word port name in instruction decoder.
Definition: NetlistGenerator.hh:128
ProGe::NetlistGenerator::netlistPortIsMapped
bool netlistPortIsMapped(const TTAMachine::Port &adfPort)
Definition: NetlistGenerator.cc:1681
ProGe::NetlistGenerator::DECODER_RESET_PORT
static const std::string DECODER_RESET_PORT
Reset port name in instruction decoder.
Definition: NetlistGenerator.hh:130
FUImplementationLocation.hh
ProGe::NetlistGenerator::fuEntryMap_
FUEntryMap fuEntryMap_
Maps FU implementations for different FU's.
Definition: NetlistGenerator.hh:282
ProGe::NetlistGenerator::mapRFOpcodePort
void mapRFOpcodePort(const NetlistPort &port, NetlistPort &opcodePort)
Definition: NetlistGenerator.cc:1705
ProGe::NetlistGenerator::inferLSUSignal
static Signal inferLSUSignal(const std::string &portName)
Definition: NetlistGenerator.cc:2151
ProGe::NetlistGenerator::instructionMemoryAddressWidth
static int instructionMemoryAddressWidth(const TTAMachine::Machine &machine)
Definition: NetlistGenerator.cc:2009
ProGe::NetlistGenerator::PortRelationMap
std::map< const NetlistPort *, NetlistPort * > PortRelationMap
Map type for NetlistPorts.
Definition: NetlistGenerator.hh:167
ProGe::NetlistGenerator::DECOMP_LOCK_REQ_IN_PORT
static const std::string DECOMP_LOCK_REQ_IN_PORT
Lock request in port name in decompressor.
Definition: NetlistGenerator.hh:146
ProGeTypes.hh
ProGe::NetlistGenerator::PortPurposeMap
std::map< const NetlistBlock *, NetlistPort * > PortPurposeMap
Map type for NetlistPorts.
Definition: NetlistGenerator.hh:169
ProGe::NetlistGenerator::rstPort
NetlistPort & rstPort(const NetlistBlock &block) const
Definition: NetlistGenerator.cc:446
ProGe::NetlistGenerator::instructionDecoder_
NetlistBlock * instructionDecoder_
The instruction decoder block.
Definition: NetlistGenerator.hh:276
options
static MachInfoCmdLineOptions options
Definition: MachInfo.cc:46
ProGe::NetlistGenerator::instructionMemory
static TTAMachine::AddressSpace & instructionMemory(const TTAMachine::Machine &machine)
Definition: NetlistGenerator.cc:2041
ProGe::NetlistGenerator::raInPort_
NetlistPort * raInPort_
Return address in port in GCU (ifetch).
Definition: NetlistGenerator.hh:286
ProGe::NetlistGenerator::rfGuardPort
NetlistPort & rfGuardPort(const NetlistBlock &rfBlock) const
Definition: NetlistGenerator.cc:357
HDB::FUImplementation
Definition: FUImplementation.hh:53
ProGe::NetlistGenerator::rfEntryMap_
RFEntryMap rfEntryMap_
Maps RF implementations for different RF's.
Definition: NetlistGenerator.hh:284
ProGe::NetlistGenerator::PortCorrespondenceMap
std::multimap< const TTAMachine::Port *, NetlistPort * > PortCorrespondenceMap
Multimap type to map ADF ports to NetlistPorts.
Definition: NetlistGenerator.hh:162
ProGe::NetlistGenerator
Definition: NetlistGenerator.hh:84
ProGe::NetlistGenerator::portCorrespondenceMap_
PortCorrespondenceMap portCorrespondenceMap_
Maps the ADF ports to the netlist ports.
Definition: NetlistGenerator.hh:250
ProGe
Definition: FUGen.hh:54
ProGe::NetlistGenerator::iuPortMap_
IUPortMap iuPortMap_
Maps the created netlist ports to immediate units.
Definition: NetlistGenerator.hh:272
ProGe::NetlistGenerator::calculateAddressWidth
unsigned int calculateAddressWidth(TTAMachine::FunctionUnit const *fu) const
Definition: NetlistGenerator.cc:1856
ProGe::NetlistGenerator::instructionDecoder
NetlistBlock & instructionDecoder() const
Definition: NetlistGenerator.cc:600
TCEString
Definition: TCEString.hh:53
ProGe::NetlistGenerator::fuOpcodePort
NetlistPort & fuOpcodePort(const NetlistBlock &fuBlock) const
Definition: NetlistGenerator.cc:380
ProGe::NetlistGenerator::rfOpcodePort
NetlistPort & rfOpcodePort(const NetlistPort &port) const
Definition: NetlistGenerator.cc:334
ProGe::NetlistGenerator::mapClockPort
void mapClockPort(const NetlistBlock &block, NetlistPort &clkPort)
Definition: NetlistGenerator.cc:1733
ProGe::NetlistGenerator::checkInstanceName
TCEString checkInstanceName(const TCEString &baseInstanceName, const TCEString &moduleName) const
Definition: NetlistGenerator.cc:2080
ProGe::NetlistGenerator::mapGlobalLockPort
void mapGlobalLockPort(const NetlistBlock &block, NetlistPort &glockPort)
Definition: NetlistGenerator.cc:1761
ProGe::NetlistGenerator::DECODER_LOCK_REQ_OUT_PORT
static const std::string DECODER_LOCK_REQ_OUT_PORT
Lock request out port name in instruction decoder.
Definition: NetlistGenerator.hh:140
ProGe::NetlistPort
Definition: NetlistPort.hh:70
ProGe::NetlistGenerator::netlistPort
NetlistPort & netlistPort(const TTAMachine::Port &port, Direction dir=IN) const
Definition: NetlistGenerator.cc:247
ProGe::NetlistGenerator::immediateUnitWritePort
NetlistPort & immediateUnitWritePort(const TTAMachine::ImmediateUnit &iu) const
Definition: NetlistGenerator.cc:532
ProGe::NetlistGenerator::addFUExternalPortsToNetlist
void addFUExternalPortsToNetlist(const HDB::FUImplementation &fuImplementation, NetlistBlock &coreBlock, NetlistBlock &fuBlock, const TTAMachine::FunctionUnit &adfFU)
Definition: NetlistGenerator.cc:1189
ProGe::NetlistGenerator::IUPortMap
std::map< const TTAMachine::ImmediateUnit *, NetlistPort * > IUPortMap
Map type for port of immediate units.
Definition: NetlistGenerator.hh:172
ProGe::NetlistGenerator::instructionFetch_
NetlistBlock * instructionFetch_
The instruction fetch block.
Definition: NetlistGenerator.hh:280
ProGe::NetlistGenerator::hasOpcodePort
bool hasOpcodePort(const NetlistPort &port) const
Definition: NetlistGenerator.cc:322
ProGe::NetlistGenerator::fuEntry
HDB::FUEntry & fuEntry(const std::string &fuName) const
Definition: NetlistGenerator.cc:657
TTAMachine
Definition: Assembler.hh:48
ProGe::NetlistGenerator::fuGuardPortMap_
PortRelationMap fuGuardPortMap_
Maps FU guard ports.
Definition: NetlistGenerator.hh:268
ProGe::ProGeContext
Definition: ProGeContext.hh:60
ProGe::NetlistGenerator::mapImmediateUnitWritePort
void mapImmediateUnitWritePort(const TTAMachine::ImmediateUnit &iu, NetlistPort &port)
Definition: NetlistGenerator.cc:1818
ProGe::Signal
Definition: Signal.hh:46
ProGe::Direction
Direction
Direction of the port.
Definition: ProGeTypes.hh:52
ProGe::NetlistGenerator::mapFUGuardPort
void mapFUGuardPort(const NetlistPort &dataPort, NetlistPort &guardPort)
Definition: NetlistGenerator.cc:1803
ProGeOptions.hh
ProGe::NetlistGenerator::ADDR_WIDTH
static const std::string ADDR_WIDTH
Definition: NetlistGenerator.hh:152
ProGe::NetlistGenerator::instructionMemoryWidth
static int instructionMemoryWidth(const TTAMachine::Machine &machine)
Definition: NetlistGenerator.cc:2023
ProGe::NetlistGenerator::RFEntryMap
std::map< std::string, HDB::RFEntry * > RFEntryMap
Map type for RFImplementation.
Definition: NetlistGenerator.hh:176
ProGe::IN
@ IN
Input port.
Definition: ProGeTypes.hh:53
ProGe::NetlistGenerator::translateDirection
static Direction translateDirection(HDB::Direction direction)
Definition: NetlistGenerator.cc:2059
IDF
Definition: DSDBManager.hh:54
TTAMachine::Machine
Definition: Machine.hh:73
ProGe::NetlistGenerator::hasGlockPort
bool hasGlockPort(const NetlistBlock &block) const
Definition: NetlistGenerator.cc:465
ProGe::NetlistGenerator::mapNetlistPort
void mapNetlistPort(const TTAMachine::Port &adfPort, NetlistPort &netlistPort)
Definition: NetlistGenerator.cc:1650
TTAMachine::ImmediateUnit
Definition: ImmediateUnit.hh:50