docs: def createPackage(self, repoDir, vendor: str="hwt", library: str="mylib",
                        description: Optional[str]=None):
          '''
          :param repoDir: directory where IP-Core should be stored
          :param vendor: vendor name of IP-Core
          :param library: library name of IP-Core
          :param description: description of IP-Core
  
          :summary:  synthetise hdl if needed
              copy hdl files
              create gui file
              create component.xml, component_hw.tcl
          '''
          ip_dir = os.path.join(repoDir, self.name + "/")
          if os.path.exists(ip_dir):
              shutil.rmtree(ip_dir)
  
          ip_srcPath = os.path.join(ip_dir, "src")
          tclPath = os.path.join(ip_dir, "xgui")
          guiFile = os.path.join(tclPath, "gui.tcl")
          for d in [ip_dir, ip_srcPath, tclPath]:
              os.makedirs(d)
          self.saveHdlFiles(ip_srcPath)
  
          self.guiFile = guiFile
          self.mkAutoGui()
  
          c = Component(self)
          c._files = [relpath(p, ip_dir) for p in sorted(self.hdlFiles)] + \
                     [relpath(guiFile, ip_dir)]
  
          c.vendor = vendor
          c.library = library
          if description is None:
              c.description = self.name + "_v" + c.version
          else:
              c.description = description
  
          c.asignTopUnit(self.top, self.name)
  
          xml_str = prettify(c.ip_xact())
          with open(ip_dir + "component.xml", "w") as f:
              f.write(xml_str)
  
          quartus_tcl_str = c.quartus_tcl()
          with open(ip_dir + "component_hw.tcl", "w") as f:
              f.write(quartus_tcl_str)