protected override void OnSynthesis(ISynthesisContext ctx) { if (!(ctx.Project is XilinxProject)) { throw new InvalidOperationException("This floating point block can only be synthesized within the context of a Xilinx ISE project."); } XilinxProject xproj = (XilinxProject)ctx.Project; string name = ctx.CodeGen.GetComponentID(Descriptor); ComponentName = name; CoreGenDescription cgproj, xco; xproj.AddNewCoreGenDescription(name, out cgproj, out xco); xco.FromComponent(this); xco.Store(); xproj.ExecuteCoreGen(xco.Path, cgproj.Path); }