コード例 #1
0
        protected override void DoCommandAction()
        {
            FPGA.FPGATypes.AssertBackendType(FPGA.FPGATypes.BackendType.ISE, FPGA.FPGATypes.BackendType.Vivado);

            if (FPGA.TileSelectionManager.Instance.NumberOfSelectedTiles == 0)
            {
                OutputManager.WriteOutput("Warning: No tiles selected");
            }

            NetlistContainer netlistContainer = (NetlistContainer)GetNetlistContainer();

            // store selected parts in outDesign
            NetlistContainer outContainer = netlistContainer.GetSelectedDesignElements();

            // write design to file
            StreamWriter sw = new StreamWriter(OutFile, false);

            outContainer.WriteCodeToFile(sw);
            sw.Close();

            if (FPGA.FPGA.Instance.BackendType == FPGA.FPGATypes.BackendType.ISE)
            {
                if (!string.IsNullOrEmpty(BinaryNetlist))
                {
                    SaveXDLLibraryElementAsBinaryLibraryElement saveCmd = new SaveXDLLibraryElementAsBinaryLibraryElement();
                    saveCmd.FileName    = BinaryNetlist;
                    saveCmd.XDLFileName = OutFile;
                    CommandExecuter.Instance.Execute(saveCmd);
                }
            }
            else if (FPGA.FPGA.Instance.BackendType == FPGA.FPGATypes.BackendType.Vivado)
            {
                if (!string.IsNullOrEmpty(BinaryNetlist))
                {
                    // TODO
                    //SaveXDLLibraryElementAsBinaryLibraryElement fuer SetResourceShapeInfo dann weiter relokieren
                }
            }
        }