OpenASIP  2.0
Stratix2DSPBoardIntegrator.hh
Go to the documentation of this file.
1 /*
2  Copyright (c) 2002-2010 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 Stratix2DSPBoardIntegrator.hh
26  *
27  * Declaration of Stratix2DSPBoardIntegrator class.
28  *
29  * @author Otto Esko 2010 (otto.esko-no.spam-tut.fi)
30  * @note rating: red
31  */
32 
33 #ifndef TTA_STRATIX2_DSP_BOARD_INTEGRATOR_HH
34 #define TTA_STRATIX2_DSP_BOARD_INTEGRATOR_HH
35 
36 #include <iostream>
37 #include <sstream>
38 #include <map>
39 #include <vector>
40 #include <string>
41 #include "AlteraIntegrator.hh"
43 #include "ProGeTypes.hh"
45 
46 namespace ProGe {
47  class Netlist;
48  class NetlistBlock;
49  class NetlistPort;
50 }
51 
53 public:
54 
56 
60  ProGe::HDL hdl,
61  TCEString progeOutputDir,
63  TCEString outputDir,
65  int targetClockFreq,
66  std::ostream& warningStream,
67  std::ostream& errorStream,
68  const MemInfo& imem,
69  MemType dmemType);
70 
72 
73  virtual void integrateProcessor(const ProGe::NetlistBlock* ttaCore);
74 
75  virtual TCEString deviceFamily() const;
76 
77  virtual void setDeviceFamily(TCEString devFamily);
78 
79  virtual TCEString devicePackage() const;
80 
81  virtual TCEString deviceSpeedClass() const;
82 
83  virtual int targetClockFrequency() const;
84 
85  virtual void printInfo(std::ostream& stream) const;
86 
87 protected:
88 
90  MemInfo dmem,
91  TTAMachine::FunctionUnit& lsuArch,
92  std::vector<std::string> lsuPorts);
93 
94  virtual TCEString pinTag() const;
95 
96  virtual bool chopTaggedSignals() const;
97 
99 
100 private:
101 
102  void generatePinMap();
103 
104  void mapToplevelPorts();
105 
106  void addSignalMapping(const TCEString& signal);
107 
109 
111 
113 
114  static const TCEString DEVICE_FAMILY_;
115 
116  static const TCEString DEVICE_NAME_;
117 
119 
121 
122  static const TCEString PIN_TAG_;
123 
124  static const int DEFAULT_FREQ_;
125 };
126 
127 #endif
PlatformIntegrator::coreEntityName
TCEString coreEntityName() const
Definition: PlatformIntegrator.cc:126
Stratix2DSPBoardIntegrator::dmemInstance
virtual MemoryGenerator & dmemInstance(MemInfo dmem, TTAMachine::FunctionUnit &lsuArch, std::vector< std::string > lsuPorts)
Definition: Stratix2DSPBoardIntegrator.cc:134
AlteraIntegrator.hh
ProGe::NetlistBlock
Definition: NetlistBlock.hh:61
QuartusProjectGenerator.hh
MemInfo
Definition: MemoryGenerator.hh:67
PlatformIntegratorTypes.hh
Stratix2DSPBoardIntegrator::deviceSpeedClass
virtual TCEString deviceSpeedClass() const
Definition: Stratix2DSPBoardIntegrator.cc:232
Stratix2DSPBoardIntegrator::DEVICE_PACKAGE_
static const TCEString DEVICE_PACKAGE_
Definition: Stratix2DSPBoardIntegrator.hh:118
Stratix2DSPBoardIntegrator::quartusGen_
QuartusProjectGenerator * quartusGen_
Definition: Stratix2DSPBoardIntegrator.hh:108
Stratix2DSPBoardIntegrator::deviceFamily
virtual TCEString deviceFamily() const
Definition: Stratix2DSPBoardIntegrator.cc:207
Stratix2DSPBoardIntegrator::mapToplevelPorts
void mapToplevelPorts()
Definition: Stratix2DSPBoardIntegrator.cc:161
Stratix2DSPBoardIntegrator::PIN_TAG_
static const TCEString PIN_TAG_
Definition: Stratix2DSPBoardIntegrator.hh:122
Stratix2DSPBoardIntegrator::devicePackage
virtual TCEString devicePackage() const
Definition: Stratix2DSPBoardIntegrator.cc:225
TTAMachine::FunctionUnit
Definition: FunctionUnit.hh:55
Stratix2DSPBoardIntegrator::DEVICE_FAMILY_
static const TCEString DEVICE_FAMILY_
Definition: Stratix2DSPBoardIntegrator.hh:114
ProjectFileGenerator
Definition: ProjectFileGenerator.hh:41
Stratix2DSPBoardIntegrator::integrateProcessor
virtual void integrateProcessor(const ProGe::NetlistBlock *ttaCore)
Definition: Stratix2DSPBoardIntegrator.cc:111
Stratix2DSPBoardIntegrator
Definition: Stratix2DSPBoardIntegrator.hh:52
PlatformIntegrator::idf
const IDF::MachineImplementation * idf() const
Definition: PlatformIntegrator.cc:304
Stratix2DSPBoardIntegrator::DEVICE_NAME_
static const TCEString DEVICE_NAME_
Definition: Stratix2DSPBoardIntegrator.hh:116
Stratix2DSPBoardIntegrator::addSignalMapping
void addSignalMapping(const TCEString &signal)
Definition: Stratix2DSPBoardIntegrator.cc:169
Stratix2DSPBoardIntegrator::projectFileGenerator
virtual ProjectFileGenerator * projectFileGenerator() const
Definition: Stratix2DSPBoardIntegrator.cc:199
PlatformIntegrator::machine
const TTAMachine::Machine * machine() const
Definition: PlatformIntegrator.cc:297
ProGeTypes.hh
Stratix2DSPBoardIntegrator::setDeviceFamily
virtual void setDeviceFamily(TCEString devFamily)
Definition: Stratix2DSPBoardIntegrator.cc:214
Stratix2DSPBoardIntegrator::printInfo
virtual void printInfo(std::ostream &stream) const
Definition: Stratix2DSPBoardIntegrator.cc:249
Stratix2DSPBoardIntegrator::~Stratix2DSPBoardIntegrator
virtual ~Stratix2DSPBoardIntegrator()
Definition: Stratix2DSPBoardIntegrator.cc:90
Stratix2DSPBoardIntegrator::dmemGen_
MemoryGenerator * dmemGen_
Definition: Stratix2DSPBoardIntegrator.hh:110
Stratix2DSPBoardIntegrator::Stratix2DSPBoardIntegrator
Stratix2DSPBoardIntegrator()
Definition: Stratix2DSPBoardIntegrator.cc:63
PlatformIntegrator::programName
TCEString programName() const
Definition: PlatformIntegrator.cc:133
Stratix2DSPBoardIntegrator::generatePinMap
void generatePinMap()
Definition: Stratix2DSPBoardIntegrator.cc:268
MemType
MemType
Definition: MemoryGenerator.hh:57
Stratix2DSPBoardIntegrator::stratix2Pins_
PlatInt::PinMap stratix2Pins_
Definition: Stratix2DSPBoardIntegrator.hh:112
QuartusProjectGenerator
Definition: QuartusProjectGenerator.hh:41
ProGe
Definition: FUGen.hh:54
Stratix2DSPBoardIntegrator::DEVICE_SPEED_CLASS_
static const TCEString DEVICE_SPEED_CLASS_
Definition: Stratix2DSPBoardIntegrator.hh:120
TCEString
Definition: TCEString.hh:53
PlatformIntegrator::warningStream
std::ostream & warningStream() const
Definition: PlatformIntegrator.cc:271
Stratix2DSPBoardIntegrator::targetClockFrequency
virtual int targetClockFrequency() const
Definition: Stratix2DSPBoardIntegrator.cc:238
AlteraIntegrator
Definition: AlteraIntegrator.hh:39
Stratix2DSPBoardIntegrator::chopTaggedSignals
virtual bool chopTaggedSignals() const
Definition: Stratix2DSPBoardIntegrator.cc:192
PlatInt::PinMap
std::map< TCEString, SignalMappingList * > PinMap
Definition: PlatformIntegratorTypes.hh:46
ProGe::HDL
HDL
HDLs supported by ProGe.
Definition: ProGeTypes.hh:40
PlatformIntegrator::errorStream
std::ostream & errorStream() const
Definition: PlatformIntegrator.cc:278
Stratix2DSPBoardIntegrator::pinTag
virtual TCEString pinTag() const
Definition: Stratix2DSPBoardIntegrator.cc:185
IDF::MachineImplementation
Definition: MachineImplementation.hh:54
Stratix2DSPBoardIntegrator::DEFAULT_FREQ_
static const int DEFAULT_FREQ_
Definition: Stratix2DSPBoardIntegrator.hh:124
TTAMachine::Machine
Definition: Machine.hh:73
MemoryGenerator
Definition: MemoryGenerator.hh:85