private ProcessPool.ToolBatch CreateBatch(EFlowStep steps) { var bat = ProcessPool.Instance.CreateBatch(); if (steps.HasFlag(EFlowStep.XST)) { XST.SaveToXSTScriptAndAddToBatch(Project, bat, XSTScriptPath, XSTLogPath); } if (steps.HasFlag(EFlowStep.NGDBuild)) { NGDBuild.AddToBatch(Project, bat); } if (steps.HasFlag(EFlowStep.Map)) { Map.AddToBatch(Project, bat); } if (steps.HasFlag(EFlowStep.PAR)) { PAR.AddToBatch(Project, bat); } if (steps.HasFlag(EFlowStep.TRCE)) { TRCE.AddToBatch(Project, bat); } return(bat); }
/// <summary> /// Queues the flow in the process pool. /// </summary> /// <param name="steps">flow items to execute</param> /// <returns>the created batch job</returns> public ProcessPool.ToolBatch Start(EFlowStep steps) { var bat = CreateBatch(steps); Project.AwaitRunningToolsToFinish(); bat.Start(); Project.AddRunningTool(bat); return(bat); }
public void SetFlowDelivery(bool hasCrossDocking) { if (hasCrossDocking) { this.EFlowStep = EFlowStep.CrossDocking; } else { this.EFlowStep = EFlowStep.Delivered; } }
/// <summary> /// Synthesizes the design. /// </summary> /// <param name="destPath">target path which will contain the generated files</param> /// <param name="designName">name of the design</param> /// <param name="iseVersion">ISE version to generate for</param> /// <param name="twinProject">optional twin project</param> /// <param name="step">what stages of the overall flow to execute</param> /// <returns>the generated ISE project</returns> public XilinxProject Synthesize(string destPath, string designName, EISEVersion iseVersion, IProject twinProject = null, EFlowStep step = EFlowStep.HDLGenAndIPCores) { ISEInfo info = ISEDetector.LocateISEByVersion(iseVersion); if (info == null) { info = new ISEInfo() { VersionTag = iseVersion } } ; return(Synthesize(destPath, designName, info, twinProject, step)); }
/// <summary> /// Synthesizes the design. /// </summary> /// <param name="destPath">target path which will contain the generated files</param> /// <param name="designName">name of the design</param> /// <param name="info">ISE information</param> /// <param name="twinProject">optional twin project</param> /// <param name="step">what stages of the overall flow to execute</param> /// <returns>the generated ISE project</returns> public XilinxProject Synthesize(string destPath, string designName, ISEInfo info, IProject twinProject = null, EFlowStep step = EFlowStep.HDLGenAndIPCores) { // Now convert the design to VHDL and embed it into a Xilinx ISE project XilinxProject project = new XilinxProject(destPath, designName) { TwinProject = twinProject }; project.ISEVersion = info.VersionTag; if (info.Path == null) { project.SkipIPCoreSynthesis = true; } else { project.ISEBinPath = info.Path; } project.PutProperty(EXilinxProjectProperties.DeviceFamily, Device.GetFamily()); project.PutProperty(EXilinxProjectProperties.Device, Device); project.PutProperty(EXilinxProjectProperties.Package, Package); project.PutProperty(EXilinxProjectProperties.SpeedGrade, SpeedGrade); project.SetVHDLProfile(); if (!step.HasFlag(EFlowStep.IPCores)) { project.SkipIPCoreSynthesis = true; } project.TopLevelComponent = TopLevelComponent.Descriptor; CreateUCF(project); VHDLGenerator codeGen = new VHDLGenerator(); SynthesisEngine.Create(DesignContext.Instance, project).Synthesize(GetComponentSet(), codeGen); project.Save(); if (step.HasFlag(EFlowStep.XST) || step.HasFlag(EFlowStep.NGDBuild) || step.HasFlag(EFlowStep.Map) || step.HasFlag(EFlowStep.PAR) || step.HasFlag(EFlowStep.TRCE)) { var flow = project.ConfigureFlow(TopLevelComponent); flow.Start(step); } return(project); }
/// <summary> /// Synthesizes the design. /// </summary> /// <param name="destPath">target path which will contain the generated files</param> /// <param name="designName">name of the design</param> /// <param name="twinProject">optional twin project</param> /// <param name="step">what stages of the overall flow to execute</param> /// <returns>the generated ISE project</returns> public XilinxProject Synthesize(string destPath, string designName, IProject twinProject = null, EFlowStep step = EFlowStep.IPCores) { EISEVersion iseVersion = EISEVersion._11_2; ISEInfo info = ISEDetector.DetectMostRecentISEInstallation(); if (info != null) { iseVersion = info.VersionTag; } return(Synthesize(destPath, designName, iseVersion, twinProject, step)); }
internal void SetFlowCrossDocking() { this.EFlowStep = EFlowStep.CrossDocking; }
/// <summary> /// Synthesizes the design. /// </summary> /// <param name="destPath">target path which will contain the generated files</param> /// <param name="designName">name of the design</param> /// <param name="iseVersion">ISE version to generate for</param> /// <param name="twinProject">optional twin project</param> /// <param name="step">what stages of the overall flow to execute</param> /// <returns>the generated ISE project</returns> public XilinxProject Synthesize(string destPath, string designName, EISEVersion iseVersion, IProject twinProject = null, EFlowStep step = EFlowStep.HDLGenAndIPCores) { ISEInfo info = ISEDetector.LocateISEByVersion(iseVersion); if (info == null) info = new ISEInfo() { VersionTag = iseVersion }; return Synthesize(destPath, designName, info, twinProject, step); }
public void SetInBox() { this.EFlowStep = EFlowStep.InBox; }
public void SetAvailable() { this.EFlowStep = EFlowStep.Available; }
public void SetFlowExpedition() { this.EFlowStep = EFlowStep.Expedition; }
public void SetFlowDelivered() { this.EFlowStep = EFlowStep.Delivered; }
private FlowStep() { this.EFlowStep = EFlowStep.Create; }
/// <summary> /// Synthesizes the design. /// </summary> /// <param name="destPath">target path which will contain the generated files</param> /// <param name="designName">name of the design</param> /// <param name="twinProject">optional twin project</param> /// <param name="step">what stages of the overall flow to execute</param> /// <returns>the generated ISE project</returns> public XilinxProject Synthesize(string destPath, string designName, IProject twinProject = null, EFlowStep step = EFlowStep.IPCores) { EISEVersion iseVersion = EISEVersion._11_2; ISEInfo info = ISEDetector.DetectMostRecentISEInstallation(); if (info != null) iseVersion = info.VersionTag; return Synthesize(destPath, designName, iseVersion, twinProject, step); }
private ProcessPool.ToolBatch CreateBatch(EFlowStep steps) { var bat = ProcessPool.Instance.CreateBatch(); if (steps.HasFlag(EFlowStep.XST)) XST.SaveToXSTScriptAndAddToBatch(Project, bat, XSTScriptPath, XSTLogPath); if (steps.HasFlag(EFlowStep.NGDBuild)) NGDBuild.AddToBatch(Project, bat); if (steps.HasFlag(EFlowStep.Map)) Map.AddToBatch(Project, bat); if (steps.HasFlag(EFlowStep.PAR)) PAR.AddToBatch(Project, bat); if (steps.HasFlag(EFlowStep.TRCE)) TRCE.AddToBatch(Project, bat); return bat; }
public void SetInStock() { this.EFlowStep = EFlowStep.InStock; }
/// <summary> /// Queues the flow in the process pool. /// </summary> /// <param name="steps">flow items to execute</param> /// <returns>the created batch job</returns> public ProcessPool.ToolBatch Start(EFlowStep steps) { var bat = CreateBatch(steps); Project.AwaitRunningToolsToFinish(); bat.Start(); Project.AddRunningTool(bat); return bat; }
/// <summary> /// Synthesizes the design. /// </summary> /// <param name="destPath">target path which will contain the generated files</param> /// <param name="designName">name of the design</param> /// <param name="info">ISE information</param> /// <param name="twinProject">optional twin project</param> /// <param name="step">what stages of the overall flow to execute</param> /// <returns>the generated ISE project</returns> public XilinxProject Synthesize(string destPath, string designName, ISEInfo info, IProject twinProject = null, EFlowStep step = EFlowStep.HDLGenAndIPCores) { // Now convert the design to VHDL and embed it into a Xilinx ISE project XilinxProject project = new XilinxProject(destPath, designName) { TwinProject = twinProject }; project.ISEVersion = info.VersionTag; if (info.Path == null) project.SkipIPCoreSynthesis = true; else project.ISEBinPath = info.Path; project.PutProperty(EXilinxProjectProperties.DeviceFamily, Device.GetFamily()); project.PutProperty(EXilinxProjectProperties.Device, Device); project.PutProperty(EXilinxProjectProperties.Package, Package); project.PutProperty(EXilinxProjectProperties.SpeedGrade, SpeedGrade); project.SetVHDLProfile(); if (!step.HasFlag(EFlowStep.IPCores)) project.SkipIPCoreSynthesis = true; project.TopLevelComponent = TopLevelComponent.Descriptor; CreateUCF(project); VHDLGenerator codeGen = new VHDLGenerator(); SynthesisEngine.Create(DesignContext.Instance, project).Synthesize(GetComponentSet(), codeGen); project.Save(); if (step.HasFlag(EFlowStep.XST) || step.HasFlag(EFlowStep.NGDBuild) || step.HasFlag(EFlowStep.Map) || step.HasFlag(EFlowStep.PAR) || step.HasFlag(EFlowStep.TRCE)) { var flow = project.ConfigureFlow(TopLevelComponent); flow.Start(step); } return project; }