public override void Execute() { base.Execute(); if (!string.IsNullOrEmpty(TopModule)) { PrjFile prj = new PrjFile(Program.Repository); foreach (string core in Cores) { Logger.Instance.WriteVerbose("Selecting Core: {0}", core); prj.AddAllInLibrary(prj.Environment.GetLibrary(core)); } // Select top module string[] splitModule = TopModule.Split('.'); ILibrary library = prj.Environment.GetLibrary(splitModule[0]); if (library != null) { IModule module = library.Modules.First((m) => string.Compare(m.Name, splitModule[1], true) == 0); if (module != null) { Logger.Instance.WriteVerbose("Selected module '{0}' in library '{1}'", module.Name, library.Name); string workingDirectory = XilinxSynthesizer.GenerateWorkingDirectory(); Logger.Instance.WriteVerbose("Starting Build"); XilinxSynthesizer.BuildResult result = XilinxSynthesizer.BuildProject(workingDirectory, prj, module); Logger.Instance.WriteVerbose("Build Complete"); Logger.Instance.WriteDebug(result.BuildLog); Logger.Instance.WriteVerbose("Cleaning temporary directory"); Directory.Delete(workingDirectory, true); } else { Logger.Instance.WriteError("Top Level module does not existing in library '{0}'", library.Name); } } else { Logger.Instance.WriteError("Top Level module library does not exist in the repository"); } } else { Logger.Instance.WriteError("Top Level Module not specified, terminating..."); } }
public override void Execute() { base.Execute(); if (!string.IsNullOrEmpty(TopModule)) { PrjFile prj = new PrjFile(Program.Repository); foreach (string core in Cores) { Logger.Instance.WriteVerbose("Selecting Core: {0}", core); prj.AddAllInLibrary(prj.Environment.GetLibrary(core)); } // Select top module string[] splitModule = TopModule.Split('.'); ILibrary library = prj.Environment.GetLibrary(splitModule[0]); if (library != null) { IModule module = library.Modules.FirstOrDefault((m) => string.Compare(m.Name, splitModule[1], true) == 0); if (module != null) { Logger.Instance.WriteVerbose("Selected module '{0}' in library '{1}'", module.Name, library.Name); ISimInstance instance = new ISimInstance(prj, module); if (UseGraphicalUserInterface) { Logger.Instance.WriteVerbose("Using Graphical User Interface"); } instance.UseGraphicalUserInterface = UseGraphicalUserInterface; instance.Start(); instance.Stop(); } else { Logger.Instance.WriteError("Top Level module does not existing in library '{0}'", library.Name); } } else { Logger.Instance.WriteError("Top Level module library does not exist in the repository"); } } else { Logger.Instance.WriteError("Top Level Module not specified, terminating..."); } }
public override void Execute() { base.Execute(); ExecutionType executionType = ExecutionType.All; if (SimulationExecutionOnly && SynthesisExecutionOnly) { Logger.Instance.WriteWarning("Selected both Simulation only and Synthesis only, defaulting to All"); } else if (SimulationExecutionOnly) { Logger.Instance.WriteVerbose("Selecting only Simulation modules."); executionType = ExecutionType.SimulationOnly; } else if (SynthesisExecutionOnly) { Logger.Instance.WriteVerbose("Selecting only Synthesis modules."); executionType = ExecutionType.SynthesisOnly; } if (!string.IsNullOrEmpty(OutputPath)) { PrjFile prj = new PrjFile(Program.Repository); foreach (string core in Cores) { Logger.Instance.WriteVerbose("Selecting Core: {0}", core); prj.AddAllInLibrary(prj.Environment.GetLibrary(core)); } Logger.Instance.WriteVerbose("Generating..."); File.WriteAllText(OutputPath, prj.ToString(executionType)); Logger.Instance.WriteVerbose("Generated!"); } else { Logger.Instance.WriteError("Output Path not specified, terminating..."); } }