public void LoadDevices(DeviceManager manager) { foreach (ToolchainReference reference in manager.CachedToolchains) { if (reference.Match(this)) { // Already Loaded Logger.Instance.WriteDebug("DeviceManager has already cached device information for toolchain ('{0}')", this.Version); return; } } manager.CachedToolchains.Add(new ToolchainReference(this)); // Toolchain has not been loaded Logger.Instance.WriteDebug("Loading device information for toolchain ('{0}')", Version); DeviceManufacture xilinx = manager.CreateManufacture("Xilinx"); Logger.Instance.WriteVerbose("Loading Xilinx {0} Part Library (this may take several minutes)", Version); foreach (string family in XilinxPartGen.LoadFamilyList()) { Logger.Instance.WriteDebug("Loading Xilinx Part for the '{0}' family", family); xilinx.Families.Add(XilinxPartGen.LoadFamily(this, xilinx, family)); } manager.Save(); }