public FPUWrapper(EISEVersion iseVer) { var a = new SLVSignal(32); var b = new SLVSignal(32); var r = new SLVSignal(32); var clk = new SLSignal(); _fpu = new FloatingPointCore() { A = a, B = b, Clk = clk, Result = r, DSP48EUsage = FloatingPointCore.EDSP48EUsage.FullUsage, Function = FloatingPointCore.EFunction.AddSubtract, TargetDeviceFamily = SystemSharp.Interop.Xilinx.EDeviceFamily.Virtex6, UseMaximumLatency = true, Precision = FloatingPointCore.EPrecision.Single, ResultPrecision = FloatingPointCore.EPrecision.Single, AddSubSel = FloatingPointCore.EAddSub.Add, TargetISEVersion = iseVer }; Clk = clk; A = a; B = b; R = r; }
/// <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)); }
/// <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 static PerformanceRecord QueryIPCorePerformance(Component core, EDevice device, ESpeedGrade speedGrade, EISEVersion iseVersion) { string className = GetClassName(core); var coreData = LoadIPCoreData(className); if (coreData == null) { return(null); } var paramSet = ExtractPerformanceParameters(core); var coreVar = LookupVariant(coreData, device.ToString(), speedGrade.ToString(), iseVersion.ToString(), paramSet); if (coreVar == null) { return(null); } var result = new PerformanceRecord() { Device = device, SpeedGrade = speedGrade, ISEVersion = iseVersion, MinPeriod = new Time(coreVar.minPeriod, ETimeUnit.ns) }; foreach (var resrec in coreVar.consumedResources) { EDeviceResource res; if (DeviceResources.ResolveResourceType(resrec.name, out res)) { result.AssignResource(res, resrec.amount); } } return(result); }
/// <summary> /// Translates an ISE version to its textual identifier. /// </summary> public static string GetVersionText(this EISEVersion ver) { return(PropEnum.ToString(ver, EPropAssoc.ISE)); }
/// <summary> /// Tries to convert an ISE version text to the version enum value. /// </summary> /// <param name="text">version text</param> /// <param name="version">out parameter to receive the parsed version</param> /// <returns><c>true</c> if the version text was recognized</returns> public static bool GetISEVersionFromText(string text, out EISEVersion version) { return _versionMap.TryGetValue(text, out version); }
/// <summary> /// Tries to locate an ISE installation by the specified version. /// </summary> /// <returns>information on located ISE installation, or <c>null</c> if no such was found</returns> public static ISEInfo LocateISEByVersion(EISEVersion version) { return DetectISEInstallations() .Where(i => i.VersionTag == version) .FirstOrDefault(); }
public static PerformanceRecord QueryIPCorePerformance(Component core, EDevice device, ESpeedGrade speedGrade, EISEVersion iseVersion) { string className = GetClassName(core); var coreData = LoadIPCoreData(className); if (coreData == null) return null; var paramSet = ExtractPerformanceParameters(core); var coreVar = LookupVariant(coreData, device.ToString(), speedGrade.ToString(), iseVersion.ToString(), paramSet); if (coreVar == null) return null; var result = new PerformanceRecord() { Device = device, SpeedGrade = speedGrade, ISEVersion = iseVersion, MinPeriod = new Time(coreVar.minPeriod, ETimeUnit.ns) }; foreach (var resrec in coreVar.consumedResources) { EDeviceResource res; if (DeviceResources.ResolveResourceType(resrec.name, out res)) { result.AssignResource(res, resrec.amount); } } return result; }
/// <summary> /// Tries to convert an ISE version text to the version enum value. /// </summary> /// <param name="text">version text</param> /// <param name="version">out parameter to receive the parsed version</param> /// <returns><c>true</c> if the version text was recognized</returns> public static bool GetISEVersionFromText(string text, out EISEVersion version) { return(_versionMap.TryGetValue(text, out version)); }
/// <summary> /// Tries to locate an ISE installation by the specified version. /// </summary> /// <returns>information on located ISE installation, or <c>null</c> if no such was found</returns> public static ISEInfo LocateISEByVersion(EISEVersion version) { return(DetectISEInstallations() .Where(i => i.VersionTag == version) .FirstOrDefault()); }
/// <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); }