OpenASIP  2.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ProGeScriptGenerator Class Reference

#include <ProGeScriptGenerator.hh>

Collaboration diagram for ProGeScriptGenerator:
Collaboration graph

Public Member Functions

 ProGeScriptGenerator (const ProGe::HDL language, const IDF::MachineImplementation &idf, const std::string &dstDir, const std::string &progeOutDir, const std::string &sharedOutDir, const std::string &testBenchDir, const std::string &toplevelEntity, const std::string &simulationRuntime="52390")
 
virtual ~ProGeScriptGenerator ()
 
void generateAll ()
 
void generateModsimCompile ()
 
void generateGhdlCompile ()
 
void generateIverilogCompile ()
 
void generateModsimSimulate ()
 
void generateGhdlSimulate ()
 
void generateIverilogSimulate ()
 

Private Member Functions

void generateCompileStart (std::ostream &stream)
 
void generateSimulationStart (std::ostream &stream)
 
void createExecutableFile (const std::string &fileName)
 
void outputScriptCommands (std::ostream &stream, const std::list< std::string > &files, const std::string &cmdPrefix, const std::string &cmdPostfix)
 
void outputScriptCommand (std::ostream &stream, const std::string &file, const std::string &cmdPrefix, const std::string &cmdPostfix)
 
template<typename T >
void findFiles (const std::string &perlre, T files, std::list< std::string > &found)
 
template<typename T >
void findFiles (const std::string &perlre, T &files)
 
void findText (const std::string &perlre, const unsigned int &matchRegion, const std::string &fileName, std::list< std::string > &found)
 
void getBlockOrder (std::list< std::string > &order)
 
void sortFilesFirst (std::list< std::string > &toSort, std::list< std::string > &acSort)
 
void sortFilesLast (std::list< std::string > &toSort, std::list< std::string > &acSort)
 
template<typename CONT >
void uniqueFileNames (CONT &files, const std::string &rootDirectory)
 
void prefixStrings (std::list< std::string > &tlist, const std::string &prefix, int start=0, int end=-1)
 
void fetchFiles ()
 
void packageFilesFirst ()
 
void prepareFiles ()
 

Private Attributes

std::string dstDir_
 
std::string progeOutDir_
 
std::string sharedOutDir_
 
std::string testBenchDir_
 
std::list< std::string > vhdlFiles_
 
std::list< std::string > gcuicFiles_
 
std::list< std::string > testBenchFiles_
 
const std::string workDir_
 
const std::string vhdlDir_
 
const std::string verDir_
 
const std::string gcuicDir_
 
const std::string tbDir_
 
const std::string modsimCompileScriptName_
 
const std::string ghdlCompileScriptName_
 
const std::string iverilogCompileScriptName_
 
const std::string modsimSimulateScriptName_
 
const std::string ghdlSimulateScriptName_
 
const std::string iverilogSimulateScriptName_
 
const std::string testbenchName_
 
const std::string toplevelEntity_
 
const IDF::MachineImplementationidf_
 
const ProGe::HDL language_
 
const std::string simulationRuntime_
 

Detailed Description

Class for script generating objects.

Base class for script generating. simulationRuntime defaults to 52390ns, can be changed in generateprocessor with a command line parameter, but not in ProDe yet. TODO.

Definition at line 52 of file ProGeScriptGenerator.hh.

Constructor & Destructor Documentation

◆ ProGeScriptGenerator()

ProGeScriptGenerator::ProGeScriptGenerator ( const ProGe::HDL  language,
const IDF::MachineImplementation idf,
const std::string &  dstDir,
const std::string &  progeOutDir,
const std::string &  sharedOutDir,
const std::string &  testBenchDir,
const std::string &  toplevelEntity = "tta0",
const std::string &  simulationRuntime = "52390" 
)

The constructor.

Script generating needs a IDF file and hdb files mentioned there. Working directory is assumed to be the destination directory for script files.

Parameters
dstDirDirectory where to generate scripts.
progeOutDirDirectory where ProGes output vhdl files lie.
testBenchDirDirectory where a test bench files are located.
projectRootDirectory that is project root, needed if relative dirs wanted to generated scripts. Useful if other dirs given are under this directory.

Definition at line 86 of file ProGeScriptGenerator.cc.

94  :
95  dstDir_(dstDir),
96  progeOutDir_(progeOutDir),
97  sharedOutDir_(sharedOutDir),
98  testBenchDir_(testBenchDir),
99  workDir_("work"),
100  vhdlDir_("vhdl"),
101  verDir_("verilog"),
102  gcuicDir_("gcu_ic"),
103  tbDir_("tb"),
104  modsimCompileScriptName_("modsim_compile.sh"),
105  ghdlCompileScriptName_("ghdl_compile.sh"),
106  iverilogCompileScriptName_("iverilog_compile.sh"),
107  modsimSimulateScriptName_("modsim_simulate.sh"),
108  ghdlSimulateScriptName_("ghdl_simulate.sh"),
109  iverilogSimulateScriptName_("iverilog_simulate.sh"),
110  testbenchName_("testbench"),
111  toplevelEntity_(toplevelEntity),
112  idf_(idf),
113  language_(language),
114  simulationRuntime_(simulationRuntime){
115 
116  fetchFiles();
118  prepareFiles();
119 }

References fetchFiles(), packageFilesFirst(), and prepareFiles().

Here is the call graph for this function:

◆ ~ProGeScriptGenerator()

ProGeScriptGenerator::~ProGeScriptGenerator ( )
virtual

The destructor.

Definition at line 125 of file ProGeScriptGenerator.cc.

125  {
126 
127 }

Member Function Documentation

◆ createExecutableFile()

void ProGeScriptGenerator::createExecutableFile ( const std::string &  fileName)
private

Creates a script file given as parameter and sets permissions.

Parameters
Nameof the script file to be created
Exceptions
IOException

Definition at line 403 of file ProGeScriptGenerator.cc.

403  {
405  bool isCreated = FileSystem::createFile(fileName);
406  if (!isCreated) {
407  string errorMsg = "Unable to create file " + fileName;
408  throw IOException(__FILE__, __LINE__, __func__, errorMsg);
409  }
411 }

References __func__, FileSystem::createFile(), FileSystem::removeFileOrDirectory(), and FileSystem::setFileExecutable().

Referenced by generateGhdlCompile(), generateGhdlSimulate(), generateIverilogCompile(), generateIverilogSimulate(), generateModsimCompile(), and generateModsimSimulate().

Here is the call graph for this function:

◆ fetchFiles()

void ProGeScriptGenerator::fetchFiles ( )
private

Gets file names from project directory.

Definition at line 716 of file ProGeScriptGenerator.cc.

716  {
717 
718  // files that match are accepted
719  string vhdlRegex =
720  ((language_==VHDL)?".*\\.(vhd|vhdl|pkg)$":".*\\.(v)$");
721 
722  // generate relative paths
723  bool absolutePaths = false;
724 
725  // getting files from project dir
728  if (FileSystem::fileIsDirectory(dirName)) {
729  findFiles(vhdlRegex,
730  FileSystem::directoryContents(dirName, absolutePaths),
731  vhdlFiles_);
732  // add the toplevelEntity + _imem_mau_pkg.vhdl to vhdlFiles_.
733  // It is generated by PIG so it is not yet present.
734  if(language_==VHDL){
735  string imemMauPkg = dirName + FileSystem::DIRECTORY_SEPARATOR
736  + toplevelEntity_ + "_imem_mau_pkg.vhdl";
737  vhdlFiles_.push_back(imemMauPkg);
738  }
739  }
740  std::string sharedDir =
743 
744  if (sharedDir != FileSystem::absolutePathOf(dirName)
745  && FileSystem::fileIsDirectory(sharedDir)) {
746  findFiles(
747  vhdlRegex,
748  FileSystem::directoryContents(sharedDir, absolutePaths),
749  vhdlFiles_);
750  }
751 
753  if (FileSystem::fileIsDirectory(dirName)) {
754  findFiles(vhdlRegex,
755  FileSystem::directoryContents(dirName, absolutePaths),
756  gcuicFiles_);
757  }
758 
762  } else {
763  findFiles(vhdlRegex,
764  FileSystem::directoryContents(dstDir_, absolutePaths),
766  }
767 }

References FileSystem::absolutePathOf(), FileSystem::DIRECTORY_SEPARATOR, FileSystem::directoryContents(), dstDir_, FileSystem::fileIsDirectory(), findFiles(), FileSystem::findFromDirectoryRecursive(), gcuicDir_, gcuicFiles_, language_, progeOutDir_, sharedOutDir_, testBenchDir_, testBenchFiles_, toplevelEntity_, verDir_, ProGe::VHDL, vhdlDir_, and vhdlFiles_.

Referenced by ProGeScriptGenerator().

Here is the call graph for this function:

◆ findFiles() [1/2]

template<typename T >
void ProGeScriptGenerator::findFiles ( const std::string &  perlre,
T &  files 
)
private

◆ findFiles() [2/2]

template<typename T >
void ProGeScriptGenerator::findFiles ( const std::string &  perlre,
files,
std::list< std::string > &  found 
)
private

Referenced by fetchFiles().

◆ findText()

void ProGeScriptGenerator::findText ( const std::string &  perlre,
const unsigned int &  matchRegion,
const std::string &  fileName,
std::list< std::string > &  found 
)
private

Regex find from a file.

Finds text matching the given regex from file by line at a time. Case is ignored when interpreting the regex.

Parameters
perlrePerl syntax regular expression.
matchRegionRegion from the match appended to output list.
fileNameName and path of file name to be opened and read.
foundList where matches are appended.

Definition at line 515 of file ProGeScriptGenerator.cc.

519  {
520 
521  const int LINESIZE = 1000;
522 
523  const boost::regex re(perlre,
524  boost::regex::perl|boost::regex::icase);
525 
526  char line[LINESIZE];
527  string::const_iterator begin;
528  string::const_iterator end;
529  string stemp;
530  std::ifstream ifs( fileName.c_str() , std::ifstream::in );
531  boost::match_results<string::const_iterator> matches;
532  while (ifs.good()) {
533 
534  ifs.getline(line, LINESIZE-1);
535  stemp = string(line);
536 
537  begin = stemp.begin();
538  end = stemp.end();
539 
540  if (boost::regex_search(begin, end, matches, re)) {
541  found.push_back(string(matches[matchRegion].first,
542  matches[matchRegion].second));
543  }
544  }
545  ifs.close();
546 }

◆ generateAll()

void ProGeScriptGenerator::generateAll ( )

Generates all scripts to destination dir (dstDir_).

Exceptions
IOException

Definition at line 136 of file ProGeScriptGenerator.cc.

136  {
138 
139  if(language_==VHDL)
141  else
143 
145 
146  if(language_==VHDL)
148  else
150 }

References generateGhdlCompile(), generateGhdlSimulate(), generateIverilogCompile(), generateIverilogSimulate(), generateModsimCompile(), generateModsimSimulate(), language_, and ProGe::VHDL.

Referenced by ProGe::ProGeUI::generateScripts().

Here is the call graph for this function:

◆ generateCompileStart()

void ProGeScriptGenerator::generateCompileStart ( std::ostream &  stream)
private

Generates the start of the shell script for compilation script.

Parameters
streamStream where output is put.

Definition at line 419 of file ProGeScriptGenerator.cc.

419  {
420  stream << "#!/bin/bash" << endl;
421  stream << "# This script was automatically generated." << endl << endl;
422 
423  // Copy common compile start from template
424  static const string separator(FileSystem::DIRECTORY_SEPARATOR);
425  const string scriptTmpl = Environment::dataDirPath("ProGe") +
426  separator + "tb" + separator + "compile.sh.tmpl";
427 
428  std::ifstream scriptTmplIn(scriptTmpl.c_str());
429  stream << scriptTmplIn.rdbuf();
430 }

References Environment::dataDirPath(), and FileSystem::DIRECTORY_SEPARATOR.

Referenced by generateGhdlCompile(), generateIverilogCompile(), and generateModsimCompile().

Here is the call graph for this function:

◆ generateGhdlCompile()

void ProGeScriptGenerator::generateGhdlCompile ( )

Generates a script for compilation using ghdl.

Exceptions
IOException

Definition at line 226 of file ProGeScriptGenerator.cc.

226  {
227  string dstFile = dstDir_ + FileSystem::DIRECTORY_SEPARATOR +
229 
230  createExecutableFile(dstFile);
231 
232  std::ofstream stream(dstFile.c_str(), std::ofstream::out);
233  generateCompileStart(stream);
234 
235  stream << "rm -rf " << workDir_ << endl;
236  stream << "mkdir -p work" << endl;
237  stream << "rm -rf bus.dump" << endl;
238  stream << "rm -rf " << testbenchName_ << endl;
239 
240  stream << "if [ \"$enable_coverage\" = \"yes\" ]; then" << endl;
241  stream << " echo \"-c option is not available for ghdl.\"; exit 2;"
242  << endl;
243  stream << "fi" << endl;
244 
245  stream << endl;
246  string program = "ghdl -i --workdir=" + workDir_;
247  string exitOnFailure = " || exit 1";
248  outputScriptCommands(stream, vhdlFiles_, program, exitOnFailure);
249 
250  stream << endl;
251  outputScriptCommands(stream, gcuicFiles_, program, exitOnFailure);
252 
253  stream << endl;
254  outputScriptCommands(stream, testBenchFiles_, program, exitOnFailure);
255 
256  stream << endl;
257  // compile command for ghdl
258  stream << "ghdl -m --workdir=" << workDir_
259  << " --ieee=synopsys -fexplicit " << testbenchName_ << endl;
260 
261  stream << "exit 0" << endl;
262  stream.close();
263 }

References createExecutableFile(), FileSystem::DIRECTORY_SEPARATOR, dstDir_, gcuicFiles_, generateCompileStart(), ghdlCompileScriptName_, outputScriptCommands(), program, testBenchFiles_, testbenchName_, vhdlFiles_, and workDir_.

Referenced by generateAll().

Here is the call graph for this function:

◆ generateGhdlSimulate()

void ProGeScriptGenerator::generateGhdlSimulate ( )

Generates a script for simulating using ghdl.

Exceptions
IOException

Definition at line 344 of file ProGeScriptGenerator.cc.

344  {
345  string dstFile = dstDir_ + FileSystem::DIRECTORY_SEPARATOR +
347  createExecutableFile(dstFile);
348 
349  std::ofstream stream(dstFile.c_str(), std::ofstream::out);
350  generateSimulationStart(stream);
351 
352  stream << "if [ \"$enable_coverage\" = \"yes\" ]; then" << endl;
353  stream << " echo \"-c option is not available for ghdl.\"; exit 2;"
354  << endl;
355  stream << "fi" << endl;
356  stream << "if [ -e " << testbenchName_ << " ]; then" << endl
357  << " ./" << testbenchName_
358  << " --stop-time=${runtime}ns" << endl
359  << "else" << endl
360  << " # Newer GHDL versions does not produce binary." << endl
361  << " ghdl -r --workdir=work --ieee=synopsys " << testbenchName_
362  << " --stop-time=${runtime}ns --ieee-asserts=disable-at-0" << endl
363  << "fi" << endl;
364 
365  stream.close();
366 }

References createExecutableFile(), FileSystem::DIRECTORY_SEPARATOR, dstDir_, generateSimulationStart(), ghdlSimulateScriptName_, and testbenchName_.

Referenced by generateAll().

Here is the call graph for this function:

◆ generateIverilogCompile()

void ProGeScriptGenerator::generateIverilogCompile ( )

Generates a script for compilation using iVerilog.

Exceptions
IOException

Definition at line 271 of file ProGeScriptGenerator.cc.

271  {
272  string dstFile = dstDir_ + FileSystem::DIRECTORY_SEPARATOR +
274 
275  createExecutableFile(dstFile);
276 
277  std::ofstream stream(dstFile.c_str(), std::ofstream::out);
278  generateCompileStart(stream);
279 
280  stream << "if [ \"$enable_coverage\" = \"yes\" ]; then" << endl;
281  stream << " echo \"-c option is not available for iverilog.\"; exit 2;"
282  << endl;
283  stream << "fi" << endl;
284 
285  stream << "rm -rf " << testbenchName_ << endl
286  << endl
287  << "iverilog -g2001 -D _IVERILOG_ "
288  << "-D SIMTIME=" << simulationRuntime_ << " "
289  << "-Itb -Iverilog -Igcu_ic ";
290  outputScriptCommands(stream, vhdlFiles_, ""," \\");
291  outputScriptCommands(stream, gcuicFiles_, ""," \\");
292  outputScriptCommands(stream, testBenchFiles_, ""," \\");
293 
294  stream << "-s " << testbenchName_ << " \\" << endl;
295  stream << "-o " << testbenchName_ << endl;
296  stream.close();
297 }

References createExecutableFile(), FileSystem::DIRECTORY_SEPARATOR, dstDir_, gcuicFiles_, generateCompileStart(), iverilogCompileScriptName_, outputScriptCommands(), simulationRuntime_, testBenchFiles_, testbenchName_, and vhdlFiles_.

Referenced by generateAll().

Here is the call graph for this function:

◆ generateIverilogSimulate()

void ProGeScriptGenerator::generateIverilogSimulate ( )

Generates a script for simulating using iVerilog.

Exceptions
IOException

Definition at line 374 of file ProGeScriptGenerator.cc.

374  {
375  string dstFile = dstDir_ + FileSystem::DIRECTORY_SEPARATOR +
377 
378  createExecutableFile(dstFile);
379 
380  std::ofstream stream(dstFile.c_str(), std::ofstream::out);
381  generateSimulationStart(stream);
382 
383  stream << "if [ \"$enable_coverage\" = \"yes\" ]; then" << endl;
384  stream << " echo \"-c option is not available for iverilog.\"; exit 2;"
385  << endl;
386  stream << "fi" << endl;
387 
388  stream << "./" << testbenchName_
389  << " --assert-level=none --stop-time="
390  << "${runtime}" << "ns"
391  << endl;
392 
393  stream.close();
394 }

References createExecutableFile(), FileSystem::DIRECTORY_SEPARATOR, dstDir_, generateSimulationStart(), iverilogSimulateScriptName_, and testbenchName_.

Referenced by generateAll().

Here is the call graph for this function:

◆ generateModsimCompile()

void ProGeScriptGenerator::generateModsimCompile ( )

Generates a script for compilation using modelsim.

Exceptions
IOException

Definition at line 158 of file ProGeScriptGenerator.cc.

158  {
159  string dstFile = dstDir_ + FileSystem::DIRECTORY_SEPARATOR +
161  const string coverageOpt = "+cover=sbcet";
162 
163  createExecutableFile(dstFile);
164 
165  std::ofstream stream(dstFile.c_str(), std::ofstream::out);
166  generateCompileStart(stream);
167 
168  stream << "rm -rf " << workDir_ << endl;
169  stream << "vlib " << workDir_ << endl;
170  stream << "vmap" << endl;
171 
172  stream << "if [ \"$enable_coverage\" = \"yes\" ]; then" << endl;
173  stream << " coverage_opt=\"" << coverageOpt << "\"" << endl;
174  stream << "fi" << endl;
175 
176  stream << endl;
177  string coverageOptAssign = " $coverage_opt";
178  string program =
179  ((language_==VHDL)?
180  "vcom": "vlog +define+SIMTIME=" + simulationRuntime_ +
181  " +incdir+verilog +incdir+gcu_ic +incdir+tb");
182  string exitOnFailure = "|| exit 1";
183  string checkSynthesisFLag = (language_==VHDL)?" -check_synthesis":"";
184 
185  for (const std::string& file : vhdlFiles_) {
186  if (file.find("_pkg.") != std::string::npos) {
187  // Do not add coverage option for package files since unused
188  // functions in the packages are not excluded and thus spoils
189  // code coverage.
190  outputScriptCommand(stream, file, program, exitOnFailure);
191  } else {
193  stream, file, program + coverageOptAssign + checkSynthesisFLag,
194  exitOnFailure);
195  }
196  }
197 
198  stream << endl;
199  for (const std::string& file : gcuicFiles_) {
200  if (file.find("_pkg.") != std::string::npos) {
201  // Do not add coverage option for package files since unused
202  // functions in the packages are not excluded and thus spoils
203  // code coverage.
204  outputScriptCommand(stream, file,
205  program + checkSynthesisFLag, exitOnFailure);
206  } else {
208  stream, file, program + coverageOptAssign + checkSynthesisFLag,
209  exitOnFailure);
210  }
211  }
212 
213  stream << endl;
214  outputScriptCommands(stream, testBenchFiles_, program, exitOnFailure);
215 
216  stream << "exit 0" << endl;
217  stream.close();
218 }

References createExecutableFile(), FileSystem::DIRECTORY_SEPARATOR, dstDir_, gcuicFiles_, generateCompileStart(), language_, modsimCompileScriptName_, outputScriptCommand(), outputScriptCommands(), program, simulationRuntime_, testBenchFiles_, ProGe::VHDL, vhdlFiles_, and workDir_.

Referenced by generateAll().

Here is the call graph for this function:

◆ generateModsimSimulate()

void ProGeScriptGenerator::generateModsimSimulate ( )

Generates a script for simulating using modelsims vsim.

Definition at line 303 of file ProGeScriptGenerator.cc.

303  {
304  string dstFile = dstDir_ + FileSystem::DIRECTORY_SEPARATOR +
306 
307  createExecutableFile(dstFile);
308 
309  std::ofstream stream(dstFile.c_str(), std::ofstream::out);
310  generateSimulationStart(stream);
311 
312  stream << "master_coverage_db=accumulated_coverage.ucdb" << endl;
313  stream << "coverage_db=cov000.ucdb" << endl;
314  stream << "res_opt=\"-t $sim_res\"";
315  stream << endl;
316  stream << "coverage_opt=\"\"" << endl;
317  stream << "if [ \"$enable_coverage\" = \"yes\" ]; then" << endl;
318  stream << " coverage_opt=\"-coverage\"" << endl;
319  stream << " do_script=\"" << "coverage save -onexit ${coverage_db}; "
320  << "run ${runtime} ns; exit" << "\"" << endl;
321  stream << "else" << endl;
322  stream << " do_script=\"" << "run ${runtime} ns; exit" << "\"" << endl;
323  stream << "fi" << endl;
324  stream << endl;
325  stream << "vsim " << testbenchName_ << " $res_opt -c $coverage_opt"
326  << " -do \"$do_script\"" << endl;
327  stream << endl;
328  stream << "# merge produced code coverage data into master database."
329  << endl;
330  stream << "if [ \"$enable_coverage\" = \"yes\" ]; then" << endl;
331  stream << " vcover merge $master_coverage_db "
332  << "$master_coverage_db $coverage_db > /dev/null 2>&1" << endl;
333  stream << "fi" << endl;
334 
335  stream.close();
336 }

References createExecutableFile(), FileSystem::DIRECTORY_SEPARATOR, dstDir_, generateSimulationStart(), modsimSimulateScriptName_, and testbenchName_.

Referenced by generateAll().

Here is the call graph for this function:

◆ generateSimulationStart()

void ProGeScriptGenerator::generateSimulationStart ( std::ostream &  stream)
private

Generates the start of the shell script for simulation script.

The script includes option parsing for simulation controls. Shell variable "runtime" holds default simulation time set by this class or user defined time by option.

Parameters
streamStream where output is put.

Definition at line 442 of file ProGeScriptGenerator.cc.

442  {
443  stream << "#!/bin/bash" << endl;
444  stream << "# This script was automatically generated." << endl << endl;
445  stream << "DEFAULT_RUN_TIME=" << simulationRuntime_ << endl << endl;
446 
447  // Copy rest of the shell script start from template
448  static const string separator(FileSystem::DIRECTORY_SEPARATOR);
449  const string scriptTmpl = Environment::dataDirPath("ProGe") +
450  separator + "tb" + separator + "simulate.sh.tmpl";
451 
452  std::ifstream scriptTmplIn(scriptTmpl.c_str());
453  stream << scriptTmplIn.rdbuf();
454 }

References Environment::dataDirPath(), FileSystem::DIRECTORY_SEPARATOR, and simulationRuntime_.

Referenced by generateGhdlSimulate(), generateIverilogSimulate(), and generateModsimSimulate().

Here is the call graph for this function:

◆ getBlockOrder()

void ProGeScriptGenerator::getBlockOrder ( std::list< std::string > &  order)
private

Gets compilation order for vhdl files from IDF/HDB files.

Parameters
orderList of file names is relative compilation order.

Definition at line 644 of file ProGeScriptGenerator.cc.

644  {
645 
646  std::set<string> uniqueFiles;
647 
648  // FU implementation HDL files
649  for (int i = 0; i < idf_.fuImplementationCount(); i++) {
651  string hdbFile = fuLoc.hdbFile();
652  HDB::CachedHDBManager& hdb =
653  HDB::HDBRegistry::instance().hdb(hdbFile);
654  HDB::FUEntry* fu = hdb.fuByEntryID(fuLoc.id());
655  const HDB::FUImplementation& fuImpl = fu->implementation();
656  for (int j = 0; j < fuImpl.implementationFileCount(); j++) {
657  string file = FileSystem::fileOfPath(fuImpl.file(j).pathToFile());
658  if (uniqueFiles.find(file) == uniqueFiles.end()) {
659  order.push_back(file);
660  uniqueFiles.insert(file);
661  }
662  }
663  }
664 
665  // RF implementation HDL files
666  for (int i = 0; i < idf_.rfImplementationCount(); i++) {
668  string hdbFile = rfLoc.hdbFile();
669  HDB::CachedHDBManager& hdb =
670  HDB::HDBRegistry::instance().hdb(hdbFile);
671  HDB::RFEntry* rf = hdb.rfByEntryID(rfLoc.id());
672  const HDB::RFImplementation& rfImpl = rf->implementation();
673  for (int j = 0; j < rfImpl.implementationFileCount(); j++) {
674  string file = FileSystem::fileOfPath(rfImpl.file(j).pathToFile());
675  if (uniqueFiles.find(file) == uniqueFiles.end()) {
676  order.push_back(file);
677  uniqueFiles.insert(file);
678  }
679  }
680  }
681 }

References HDB::HWBlockImplementation::file(), FileSystem::fileOfPath(), HDB::HDBManager::fuByEntryID(), IDF::MachineImplementation::fuImplementation(), IDF::MachineImplementation::fuImplementationCount(), HDB::HDBRegistry::hdb(), IDF::UnitImplementationLocation::hdbFile(), idf_, HDB::RFEntry::implementation(), HDB::FUEntry::implementation(), HDB::HWBlockImplementation::implementationFileCount(), HDB::HDBRegistry::instance(), HDB::BlockImplementationFile::pathToFile(), HDB::HDBManager::rfByEntryID(), IDF::MachineImplementation::rfImplementation(), and IDF::MachineImplementation::rfImplementationCount().

Referenced by prepareFiles().

Here is the call graph for this function:

◆ outputScriptCommand()

void ProGeScriptGenerator::outputScriptCommand ( std::ostream &  stream,
const std::string &  file,
const std::string &  cmdPrefix,
const std::string &  cmdPostfix 
)
private

Outputs shell command to stream.

Creates script commands using a file and command prefix and outputs them to the given stream.

Parameters
streamOutput stream.
filesList of filenames to use.
cmdPrefixPrefix command.
cmdPostfixPostfix command.

Definition at line 493 of file ProGeScriptGenerator.cc.

497  {
498 
499  stream << cmdPrefix << " " << file << " " << cmdPostfix << endl;
500 }

Referenced by generateModsimCompile(), and outputScriptCommands().

◆ outputScriptCommands()

void ProGeScriptGenerator::outputScriptCommands ( std::ostream &  stream,
const std::list< std::string > &  files,
const std::string &  cmdPrefix,
const std::string &  cmdPostfix 
)
private

Outputs shell commands to stream.

Creates script commands using list of files and command prefix and outputs them to the given stream.

Parameters
streamOutput stream.
filesList of filenames to use.
cmdPrefixPrefix command.
cmdPostfixPrefix command.

Definition at line 469 of file ProGeScriptGenerator.cc.

473  {
474 
475  list<string>::const_iterator iter = files.begin();
476  while (iter != files.end()) {
477  outputScriptCommand(stream, *iter++, cmdPrefix, cmdPostfix);
478  }
479 }

References outputScriptCommand().

Referenced by generateGhdlCompile(), generateIverilogCompile(), and generateModsimCompile().

Here is the call graph for this function:

◆ packageFilesFirst()

void ProGeScriptGenerator::packageFilesFirst ( )
private

Reorders filename lists by arranging packages (*_pkg*) to the beginning of the lists.

Definition at line 774 of file ProGeScriptGenerator.cc.

774  {
775  auto packageComp = [](const string& str1, const string& str2) -> bool {
776  bool str1IsPkg = (str1.find("_pkg") != string::npos);
777  bool str2IsPkg = (str2.find("_pkg") != string::npos);
778  if (str1IsPkg && !str2IsPkg) {
779  return true;
780  } else if (!str1IsPkg && str2IsPkg) {
781  return false;
782  } else {
783  return str1 < str2;
784  }
785  };
786 
787  vhdlFiles_.sort(packageComp);
788  gcuicFiles_.sort(packageComp);
789  testBenchFiles_.sort(packageComp);
790 }

References gcuicFiles_, testBenchFiles_, and vhdlFiles_.

Referenced by ProGeScriptGenerator().

◆ prefixStrings()

void ProGeScriptGenerator::prefixStrings ( std::list< std::string > &  tlist,
const std::string &  prefix,
int  start = 0,
int  end = -1 
)
private

Prefixes strings in a container with a string within a range.

Parameters
tlistContainer of strings.
prefixPrefix to be added to strings in container.
startStarting location in a container, 0 is the first.
endEnding location in a container, size-1 is the last.

Definition at line 693 of file ProGeScriptGenerator.cc.

697  {
698 
699  if (end == -1 || end >= static_cast<int>(tlist.size())) {
700  end = tlist.size() - 1;
701  }
702 
703  list<string>::iterator itl = tlist.begin();
704  for (int c = 0; c <= end; ++c, ++itl) {
705  if (c >= start) {
706  *itl = prefix + *itl;
707  }
708  }
709 }

Referenced by prepareFiles().

◆ prepareFiles()

void ProGeScriptGenerator::prepareFiles ( )
private

Prepares filename lists, generally sorts them.

Definition at line 796 of file ProGeScriptGenerator.cc.

796  {
797 
798  const string DS = FileSystem::DIRECTORY_SEPARATOR;
799  if(language_==VHDL){
800  string gcuIcDirName = progeOutDir_ + DS + gcuicDir_ + DS;
801  list<string> gcuicFirstOrder;
802  gcuicFirstOrder.push_back("gcu_opcodes_pkg.vhdl");
803  prefixStrings(gcuicFirstOrder, gcuIcDirName);
804  sortFilesFirst(gcuicFiles_, gcuicFirstOrder);
805 
806  list<string> gcuicLastOrder;
807  gcuicLastOrder.push_back("ic.vhdl");
808  prefixStrings(gcuicLastOrder, gcuIcDirName);
809  sortFilesLast(gcuicFiles_, gcuicLastOrder);
810 
811  string vhdlDirName = progeOutDir_ + DS + vhdlDir_ + DS;
812  list<string> vhdlFirstOrder;
813  vhdlFirstOrder.push_back("tce_util_pkg.vhdl");
814  vhdlFirstOrder.push_back(toplevelEntity_ + "_imem_mau_pkg.vhdl");
815  vhdlFirstOrder.push_back(toplevelEntity_ + "_globals_pkg.vhdl");
816  vhdlFirstOrder.push_back(toplevelEntity_ + "_params_pkg.vhdl");
817  // add FU and RF files in correct order
818  getBlockOrder(vhdlFirstOrder);
819  prefixStrings(vhdlFirstOrder, vhdlDirName);
820  sortFilesFirst(vhdlFiles_, vhdlFirstOrder);
821 
822  list<string> vhdlLastOrder;
823  string toplevelFile = toplevelEntity_ + ".vhdl";
824  vhdlLastOrder.push_back(toplevelFile);
825  prefixStrings(vhdlLastOrder, vhdlDirName);
826  sortFilesLast(vhdlFiles_, vhdlLastOrder);
827 
828  string tbDirName = progeOutDir_ + DS + tbDir_ + DS;
829  list<string> testBenchLastOrder;
830  testBenchLastOrder.push_back("testbench_cfg.vhdl");
831  testBenchLastOrder.push_back("testbench.vhdl");
832  testBenchLastOrder.push_back("proc_arch.vhdl");
833  testBenchLastOrder.push_back("proc_ent.vhdl");
834  prefixStrings(testBenchLastOrder, tbDirName);
835  sortFilesLast(testBenchFiles_, testBenchLastOrder);
836  } else {
837  //nothing to do here
838  }
839  // make dirs relative to dstDir_
840  list<string>::iterator itl;
841  itl = vhdlFiles_.begin();
842  while (itl != vhdlFiles_.end()) {
844  }
845  itl = gcuicFiles_.begin();
846  while (itl != gcuicFiles_.end()) {
848  }
849  itl = testBenchFiles_.begin();
850  while (itl != testBenchFiles_.end()) {
852  }
853 }

References FileSystem::DIRECTORY_SEPARATOR, DS, dstDir_, gcuicDir_, gcuicFiles_, getBlockOrder(), language_, prefixStrings(), progeOutDir_, FileSystem::relativeDir(), sortFilesFirst(), sortFilesLast(), tbDir_, testBenchFiles_, toplevelEntity_, ProGe::VHDL, vhdlDir_, and vhdlFiles_.

Referenced by ProGeScriptGenerator().

Here is the call graph for this function:

◆ sortFilesFirst()

void ProGeScriptGenerator::sortFilesFirst ( std::list< std::string > &  toSort,
std::list< std::string > &  acSort 
)
private

Relative file name/path sort using a reference.

Sorts file in one list according to other list,placing in beginning of list, only relative order matters (which entry comes first). Algorithm used does relative sort between two lists, the other is sorted according to the other.

Parameters
toSortList to be sorted.
acSortList where reference order is taken from.

Definition at line 561 of file ProGeScriptGenerator.cc.

563  {
564 
565  typedef std::list<std::string>::iterator listStrIt;
566 
567  listStrIt itAc1 = acSort.begin();
568  listStrIt itTo = toSort.begin();
569  listStrIt itTo2;
570 
571  while (itAc1 != acSort.end()) {
572  // now check list to be sorted
573  bool swapped = false;
574  itTo2 = itTo;
575  while (itTo2 != toSort.end()) {
576  if (FileSystem::compareFileNames(*itTo2, *itAc1, dstDir_)) {
577  // now change itTo2 and itTo places
578  string temp = *itTo;
579  *itTo = *itTo2;
580  *itTo2 = temp;
581  swapped = true;
582  break;
583  }
584  ++itTo2;
585  }
586  if (swapped) {
587  ++itTo;
588  }
589  ++itAc1;
590  }
591 }

References FileSystem::compareFileNames(), and dstDir_.

Referenced by prepareFiles().

Here is the call graph for this function:

◆ sortFilesLast()

void ProGeScriptGenerator::sortFilesLast ( std::list< std::string > &  toSort,
std::list< std::string > &  acSort 
)
private

Relative file name/path sort using a reference.

Sorts file in one list according to other list, placing in end of list, only relative order matters (which entry comes first). Algorithm used does relative sort between two lists, the other is sorted according to the other.

Parameters
toSortList to be sorted.
acSortList where reference order is taken from.

Definition at line 606 of file ProGeScriptGenerator.cc.

608  {
609  typedef std::list<std::string>::iterator listStrIt;
610  typedef std::list<std::string>::reverse_iterator rlistStrIt;
611 
612  listStrIt itAc1 = acSort.begin();
613  rlistStrIt itTo = toSort.rbegin();
614  rlistStrIt itTo2;
615 
616  while (itAc1 != acSort.end()) {
617  // now check list to be sorted
618  bool swapped = false;
619  itTo2 = itTo;
620  while (itTo2 != toSort.rend()) {
621  if (FileSystem::compareFileNames(*itTo2, *itAc1,dstDir_)) {
622  // now change itTo2 and itTo places
623  string temp = *itTo;
624  *itTo = *itTo2;
625  *itTo2 = temp;
626  swapped = true;
627  break;
628  }
629  ++itTo2;
630  }
631  if (swapped) {
632  ++itTo;
633  }
634  ++itAc1;
635  }
636 }

References FileSystem::compareFileNames(), and dstDir_.

Referenced by prepareFiles().

Here is the call graph for this function:

◆ uniqueFileNames()

template<typename CONT >
void ProGeScriptGenerator::uniqueFileNames ( CONT &  files,
const std::string &  rootDirectory 
)
private

Member Data Documentation

◆ dstDir_

std::string ProGeScriptGenerator::dstDir_
private

◆ gcuicDir_

const std::string ProGeScriptGenerator::gcuicDir_
private

Definition at line 145 of file ProGeScriptGenerator.hh.

Referenced by fetchFiles(), and prepareFiles().

◆ gcuicFiles_

std::list<std::string> ProGeScriptGenerator::gcuicFiles_
private

◆ ghdlCompileScriptName_

const std::string ProGeScriptGenerator::ghdlCompileScriptName_
private

Definition at line 150 of file ProGeScriptGenerator.hh.

Referenced by generateGhdlCompile().

◆ ghdlSimulateScriptName_

const std::string ProGeScriptGenerator::ghdlSimulateScriptName_
private

Definition at line 153 of file ProGeScriptGenerator.hh.

Referenced by generateGhdlSimulate().

◆ idf_

const IDF::MachineImplementation& ProGeScriptGenerator::idf_
private

Definition at line 159 of file ProGeScriptGenerator.hh.

Referenced by getBlockOrder().

◆ iverilogCompileScriptName_

const std::string ProGeScriptGenerator::iverilogCompileScriptName_
private

Definition at line 151 of file ProGeScriptGenerator.hh.

Referenced by generateIverilogCompile().

◆ iverilogSimulateScriptName_

const std::string ProGeScriptGenerator::iverilogSimulateScriptName_
private

Definition at line 154 of file ProGeScriptGenerator.hh.

Referenced by generateIverilogSimulate().

◆ language_

const ProGe::HDL ProGeScriptGenerator::language_
private

◆ modsimCompileScriptName_

const std::string ProGeScriptGenerator::modsimCompileScriptName_
private

Definition at line 149 of file ProGeScriptGenerator.hh.

Referenced by generateModsimCompile().

◆ modsimSimulateScriptName_

const std::string ProGeScriptGenerator::modsimSimulateScriptName_
private

Definition at line 152 of file ProGeScriptGenerator.hh.

Referenced by generateModsimSimulate().

◆ progeOutDir_

std::string ProGeScriptGenerator::progeOutDir_
private

Definition at line 130 of file ProGeScriptGenerator.hh.

Referenced by fetchFiles(), and prepareFiles().

◆ sharedOutDir_

std::string ProGeScriptGenerator::sharedOutDir_
private

Definition at line 132 of file ProGeScriptGenerator.hh.

Referenced by fetchFiles().

◆ simulationRuntime_

const std::string ProGeScriptGenerator::simulationRuntime_
private

◆ tbDir_

const std::string ProGeScriptGenerator::tbDir_
private

Definition at line 146 of file ProGeScriptGenerator.hh.

Referenced by prepareFiles().

◆ testBenchDir_

std::string ProGeScriptGenerator::testBenchDir_
private

Definition at line 134 of file ProGeScriptGenerator.hh.

Referenced by fetchFiles().

◆ testBenchFiles_

std::list<std::string> ProGeScriptGenerator::testBenchFiles_
private

◆ testbenchName_

const std::string ProGeScriptGenerator::testbenchName_
private

◆ toplevelEntity_

const std::string ProGeScriptGenerator::toplevelEntity_
private

Definition at line 158 of file ProGeScriptGenerator.hh.

Referenced by fetchFiles(), and prepareFiles().

◆ verDir_

const std::string ProGeScriptGenerator::verDir_
private

Definition at line 144 of file ProGeScriptGenerator.hh.

Referenced by fetchFiles().

◆ vhdlDir_

const std::string ProGeScriptGenerator::vhdlDir_
private

Definition at line 143 of file ProGeScriptGenerator.hh.

Referenced by fetchFiles(), and prepareFiles().

◆ vhdlFiles_

std::list<std::string> ProGeScriptGenerator::vhdlFiles_
private

◆ workDir_

const std::string ProGeScriptGenerator::workDir_
private

Definition at line 142 of file ProGeScriptGenerator.hh.

Referenced by generateGhdlCompile(), and generateModsimCompile().


The documentation for this class was generated from the following files:
HDB::FUEntry
Definition: FUEntry.hh:49
ProGeScriptGenerator::toplevelEntity_
const std::string toplevelEntity_
Definition: ProGeScriptGenerator.hh:158
HDB::HWBlockImplementation::file
BlockImplementationFile & file(int index) const
Definition: HWBlockImplementation.cc:267
IDF::RFImplementationLocation
UnitImplementationLocation RFImplementationLocation
Definition: ComponentImplementationSelector.hh:57
ProGeScriptGenerator::idf_
const IDF::MachineImplementation & idf_
Definition: ProGeScriptGenerator.hh:159
ProGeScriptGenerator::generateModsimCompile
void generateModsimCompile()
Definition: ProGeScriptGenerator.cc:158
FileSystem::removeFileOrDirectory
static bool removeFileOrDirectory(const std::string &path)
Definition: FileSystem.cc:493
ProGeScriptGenerator::fetchFiles
void fetchFiles()
Definition: ProGeScriptGenerator.cc:716
ProGeScriptGenerator::gcuicFiles_
std::list< std::string > gcuicFiles_
Definition: ProGeScriptGenerator.hh:138
FileSystem::setFileExecutable
static bool setFileExecutable(const std::string fileName)
Definition: FileSystem.cc:322
ProGeScriptGenerator::outputScriptCommands
void outputScriptCommands(std::ostream &stream, const std::list< std::string > &files, const std::string &cmdPrefix, const std::string &cmdPostfix)
Definition: ProGeScriptGenerator.cc:469
ProGeScriptGenerator::generateIverilogSimulate
void generateIverilogSimulate()
Definition: ProGeScriptGenerator.cc:374
ProGeScriptGenerator::generateGhdlCompile
void generateGhdlCompile()
Definition: ProGeScriptGenerator.cc:226
ProGeScriptGenerator::testbenchName_
const std::string testbenchName_
Definition: ProGeScriptGenerator.hh:157
HDB::RFEntry
Definition: RFEntry.hh:47
HDB::HWBlockImplementation::implementationFileCount
int implementationFileCount() const
Definition: HWBlockImplementation.cc:254
ProGeScriptGenerator::findFiles
void findFiles(const std::string &perlre, T files, std::list< std::string > &found)
ProGeScriptGenerator::generateIverilogCompile
void generateIverilogCompile()
Definition: ProGeScriptGenerator.cc:271
ProGeScriptGenerator::generateSimulationStart
void generateSimulationStart(std::ostream &stream)
Definition: ProGeScriptGenerator.cc:442
HDB::HDBRegistry::hdb
CachedHDBManager & hdb(const std::string fileName)
Definition: HDBRegistry.cc:80
ProGeScriptGenerator::gcuicDir_
const std::string gcuicDir_
Definition: ProGeScriptGenerator.hh:145
ProGeScriptGenerator::getBlockOrder
void getBlockOrder(std::list< std::string > &order)
Definition: ProGeScriptGenerator.cc:644
ProGeScriptGenerator::vhdlDir_
const std::string vhdlDir_
Definition: ProGeScriptGenerator.hh:143
FileSystem::absolutePathOf
static std::string absolutePathOf(const std::string &pathName)
Definition: FileSystem.cc:303
ProGeScriptGenerator::generateCompileStart
void generateCompileStart(std::ostream &stream)
Definition: ProGeScriptGenerator.cc:419
FileSystem::relativeDir
static bool relativeDir(const std::string &baseDir, std::string &toRelDir)
Definition: FileSystem.cc:762
FileSystem::fileOfPath
static std::string fileOfPath(const std::string pathName)
Definition: FileSystem.cc:101
ProGeScriptGenerator::sortFilesLast
void sortFilesLast(std::list< std::string > &toSort, std::list< std::string > &acSort)
Definition: ProGeScriptGenerator.cc:606
ProGeScriptGenerator::ghdlSimulateScriptName_
const std::string ghdlSimulateScriptName_
Definition: ProGeScriptGenerator.hh:153
HDB::CachedHDBManager
Definition: CachedHDBManager.hh:63
IDF::MachineImplementation::rfImplementation
RFImplementationLocation & rfImplementation(const std::string &rf) const
Definition: MachineImplementation.cc:377
ProGeScriptGenerator::modsimCompileScriptName_
const std::string modsimCompileScriptName_
Definition: ProGeScriptGenerator.hh:149
FileSystem::fileIsDirectory
static bool fileIsDirectory(const std::string fileName)
ProGeScriptGenerator::sharedOutDir_
std::string sharedOutDir_
Definition: ProGeScriptGenerator.hh:132
ProGeScriptGenerator::ghdlCompileScriptName_
const std::string ghdlCompileScriptName_
Definition: ProGeScriptGenerator.hh:150
ProGeScriptGenerator::language_
const ProGe::HDL language_
Definition: ProGeScriptGenerator.hh:160
HDB::RFImplementation
Definition: RFImplementation.hh:50
ProGe::VHDL
@ VHDL
VHDL.
Definition: ProGeTypes.hh:41
ProGeScriptGenerator::iverilogCompileScriptName_
const std::string iverilogCompileScriptName_
Definition: ProGeScriptGenerator.hh:151
ProGeScriptGenerator::dstDir_
std::string dstDir_
Definition: ProGeScriptGenerator.hh:128
ProGeScriptGenerator::packageFilesFirst
void packageFilesFirst()
Definition: ProGeScriptGenerator.cc:774
FileSystem::findFromDirectoryRecursive
static bool findFromDirectoryRecursive(const std::string &regex, const std::string &directory, STLCONT &found)
ProGeScriptGenerator::iverilogSimulateScriptName_
const std::string iverilogSimulateScriptName_
Definition: ProGeScriptGenerator.hh:154
__func__
#define __func__
Definition: Application.hh:67
IDF::FUImplementationLocation
UnitImplementationLocation FUImplementationLocation
Definition: ComponentImplementationSelector.hh:55
ProGeScriptGenerator::progeOutDir_
std::string progeOutDir_
Definition: ProGeScriptGenerator.hh:130
IDF::MachineImplementation::rfImplementationCount
int rfImplementationCount() const
Definition: MachineImplementation.cc:310
ProGeScriptGenerator::verDir_
const std::string verDir_
Definition: ProGeScriptGenerator.hh:144
HDB::RFEntry::implementation
RFImplementation & implementation() const
Definition: RFEntry.cc:102
HDB::BlockImplementationFile::pathToFile
std::string pathToFile() const
Definition: BlockImplementationFile.cc:61
FileSystem::createFile
static bool createFile(const std::string &file)
Definition: FileSystem.cc:468
ProGeScriptGenerator::tbDir_
const std::string tbDir_
Definition: ProGeScriptGenerator.hh:146
ProGeScriptGenerator::prepareFiles
void prepareFiles()
Definition: ProGeScriptGenerator.cc:796
FileSystem::DIRECTORY_SEPARATOR
static const std::string DIRECTORY_SEPARATOR
Definition: FileSystem.hh:189
ProGeScriptGenerator::createExecutableFile
void createExecutableFile(const std::string &fileName)
Definition: ProGeScriptGenerator.cc:403
ProGeScriptGenerator::simulationRuntime_
const std::string simulationRuntime_
Definition: ProGeScriptGenerator.hh:163
HDB::FUImplementation
Definition: FUImplementation.hh:53
ProGeScriptGenerator::generateModsimSimulate
void generateModsimSimulate()
Definition: ProGeScriptGenerator.cc:303
ProGeScriptGenerator::prefixStrings
void prefixStrings(std::list< std::string > &tlist, const std::string &prefix, int start=0, int end=-1)
Definition: ProGeScriptGenerator.cc:693
IDF::MachineImplementation::fuImplementationCount
int fuImplementationCount() const
Definition: MachineImplementation.cc:299
ProGeScriptGenerator::outputScriptCommand
void outputScriptCommand(std::ostream &stream, const std::string &file, const std::string &cmdPrefix, const std::string &cmdPostfix)
Definition: ProGeScriptGenerator.cc:493
ProGeScriptGenerator::sortFilesFirst
void sortFilesFirst(std::list< std::string > &toSort, std::list< std::string > &acSort)
Definition: ProGeScriptGenerator.cc:561
program
find Finds info of the inner loops in the program
Definition: InnerLoopFinder.cc:80
IDF::UnitImplementationLocation::hdbFile
virtual std::string hdbFile() const
Definition: UnitImplementationLocation.cc:99
IOException
Definition: Exception.hh:130
ProGeScriptGenerator::testBenchFiles_
std::list< std::string > testBenchFiles_
Definition: ProGeScriptGenerator.hh:139
ProGeScriptGenerator::workDir_
const std::string workDir_
Definition: ProGeScriptGenerator.hh:142
IDF::MachineImplementation::fuImplementation
FUImplementationLocation & fuImplementation(const std::string &fu) const
Definition: MachineImplementation.cc:355
HDB::FUEntry::implementation
FUImplementation & implementation() const
Definition: FUEntry.cc:86
DS
#define DS
Definition: LLVMBackend.cc:124
ProGeScriptGenerator::testBenchDir_
std::string testBenchDir_
Definition: ProGeScriptGenerator.hh:134
FileSystem::compareFileNames
static bool compareFileNames(const std::string &first, const std::string &second, const std::string &rootDirectory)
Definition: FileSystem.cc:724
HDB::HDBManager::fuByEntryID
FUEntry * fuByEntryID(RowID id) const
Definition: HDBManager.cc:2828
ProGeScriptGenerator::vhdlFiles_
std::list< std::string > vhdlFiles_
Definition: ProGeScriptGenerator.hh:137
ProGeScriptGenerator::generateGhdlSimulate
void generateGhdlSimulate()
Definition: ProGeScriptGenerator.cc:344
Environment::dataDirPath
static std::string dataDirPath(const std::string &prog)
Definition: Environment.cc:176
FileSystem::directoryContents
static std::vector< std::string > directoryContents(const std::string &directory, const bool absolutePaths=true)
Definition: FileSystem.cc:600
HDB::HDBManager::rfByEntryID
RFEntry * rfByEntryID(RowID id) const
Definition: HDBManager.cc:2885
HDB::HDBRegistry::instance
static HDBRegistry & instance()
Definition: HDBRegistry.cc:62
ProGeScriptGenerator::modsimSimulateScriptName_
const std::string modsimSimulateScriptName_
Definition: ProGeScriptGenerator.hh:152