Go to the documentation of this file.
57 if (hwop.
port(i) == NULL) {
58 std::cerr <<
"Warning: Operand " << i <<
" of " << hwop.
name()
59 <<
" was not bound to any port." << std::endl;
63 operandBindings +=
", ";
68 return operandBindings;
73 std::ofstream& output) {
77 output <<
"\\begin{longtable}{|l|p{7cm}|p{3.5cm}|}" << std::endl;
81 for (
int i = 0; i < nav.
count(); ++i) {
83 output <<
"\\hline" << std::endl;
87 fuDescription <<
" Accesses address space \\textbf{"
90 output << fu.
name() <<
"\t& \\multicolumn{2}{p{10cm}|}{"
91 << fuDescription <<
"} \\\\" << std::endl;
92 output <<
"\\hline" << std::endl;
104 std::cerr <<
"warning: Could not find OSAL data for operation '"
105 << hwop.
name() <<
"." << std::endl;
111 output <<
"\\footnotesize{" << opname <<
" (" << hwop.
latency() - 1
112 <<
")} & \\footnotesize{" << description
113 <<
"} & \\footnotesize{" << operandBindings <<
"}\\\\"
117 output <<
"\\hline" << std::endl;
118 output <<
"\\hline" << std::endl;
121 output << fu.
name() <<
"\t & control unit & \t \\\\" << std::endl;
123 output <<
"\\hline" << std::endl;
133 std::cerr <<
"warning: Could not find OSAL data for operation '"
134 << hwop.
name() <<
"." << std::endl;
138 output << opname <<
" (" << hwop.
latency() - 1 <<
") & \\small{"
139 << description <<
"} & \\\\" << std::endl;
142 output <<
"\\hline" << std::endl;
144 output <<
"\\end{longtable}" << std::endl;
150 std::ofstream& output) {
152 output <<
"\\begin{tabular}{|l|l|l|l|l|}" << std::endl;
154 output <<
"\\hline" << std::endl;
156 output <<
"name & start address & end address & width (b) & "
157 <<
"numerical id(s) \\\\"
160 output <<
"\\hline" << std::endl;
164 for (
int i = 0; i < nav.
count(); ++i) {
168 output << as.
name() <<
" & " << as.
start() <<
" & " << as.
end()
169 <<
" & " << as.
width() <<
" & ";
171 for (std::set<unsigned>::iterator i = ids.begin(), e = ids.end();
175 output <<
"\\\\" << std::endl;
178 output <<
"\\hline" << std::endl;
179 output <<
"\\hline" << std::endl;
183 output << as.
name() <<
" & " << as.
start() <<
" & " << as.
end() <<
" & "
184 << as.
width() <<
" & ";
186 for (std::set<unsigned>::iterator i = ids.begin(), e = ids.end(); i != e;
190 output <<
"\\\\" << std::endl;
192 output <<
"\\hline" << std::endl;
194 output <<
"\\end{tabular}" << std::endl;
210 std::cerr <<
"Single ADF file required." << std::endl;
216 std::cerr <<
"Unsupported output format." << std::endl;
227 std::ofstream fuDescOutput;
228 std::ofstream asDescOutput;
237 }
catch (std::exception& e) {
238 std::cerr << e.what() << std::endl;
245 fuDescOutput.close();
246 asDescOutput.close();
Operation & operation(const char *name)
virtual TCEString name() const
virtual bool hasAddressSpace() const
TTAMachine::Machine * machine
the architecture definition of the estimated processor
std::set< unsigned > numericalIds() const
virtual int numberOfArguments() const
void printLatexFunctionUnitDescription(const TTAMachine::Machine &machine, std::ofstream &output)
TCEString operandBindingsString(TTAMachine::HWOperation &hwop)
virtual AddressSpace * addressSpace() const
static NullOperation & instance()
static std::string toString(const T &source)
virtual FUPort * port(int operand) const
virtual ControlUnit * controlUnit() const
const std::string & name() const
TCEString outputFileNameSuffix() const
virtual FunctionUnitNavigator functionUnitNavigator() const
virtual int operationCount() const
virtual AddressSpaceNavigator addressSpaceNavigator() const
std::string errorMessage() const
virtual int operandCount() const
void parse(char *argv[], int argc)
TCEString & replaceString(const std::string &old, const std::string &newString)
TCEString outputFormat() const
static MachInfoCmdLineOptions options
virtual TCEString description() const
int main(int argc, char *argv[])
virtual int width() const
virtual std::string name() const
void printLatexAddressSpaceDescription(const TTAMachine::Machine &machine, std::ofstream &output)
ComponentType * item(int index) const
virtual HWOperation * operation(const std::string &name) const
virtual std::string argument(int index) const
virtual ULongWord start() const
virtual ULongWord end() const
static Machine * loadFromADF(const std::string &adfFileName)