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;
 }
        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;
        }
示例#3
0
        /// <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));
        }
示例#4
0
        /// <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));
        }
示例#5
0
        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);
        }
示例#6
0
 /// <summary>
 /// Translates an ISE version to its textual identifier.
 /// </summary>
 public static string GetVersionText(this EISEVersion ver)
 {
     return(PropEnum.ToString(ver, EPropAssoc.ISE));
 }
示例#7
0
 /// <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);
 }
示例#8
0
 /// <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;
 }
示例#10
0
 /// <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));
 }
示例#11
0
 /// <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);
 }