Example #1
0
 def generateProject(self):
     """ copy all hdl file in synthesis project directory
     """
     for component in self.parent.getInstancesList():
         if component.getNum() == "0":
             # Make directory
             compdir = settings.projectpath+SYNTHESISPATH+"/"+\
                       component.getName()
             if sy.dirExist(compdir):
                 display.msg("Directory "+compdir+" exist, will be deleted")
                 sy.delDirectory(compdir)
             sy.makeDirectory(compdir)
             display.msg("Make directory for "+component.getName())
             # copy hdl files
             for hdlfile in component.getHdl_filesList():
                 try:
                     sy.copyFile(settings.projectpath+\
                             COMPONENTSPATH+\
                             "/"+\
                             component.getInstanceName()+\
                             "/hdl/"+\
                             hdlfile.getFileName(),
                             compdir+"/")
                 except IOError,e:
                     print display
                     raise Error(str(e),0)
Example #2
0
def generateBitStream(self,commandname,scriptname):
    """ generate the bitstream """
    pwd = sy.pwd()
    sy.deleteAll(settings.projectpath+OBJSPATH)
    sy.chdir(settings.projectpath+SYNTHESISPATH)
    for line in sy.launchAShell(commandname,scriptname):
        if settings.color()==1:
            print COLOR_SHELL+line+COLOR_END,
        else:
            print "SHELL>"+line,
    try:
        sy.copyFile(settings.projectpath+OBJSPATH+"/"+\
                    BINARY_PREFIX+settings.active_project.getName()+\
                    BINARY_SUFFIX,
                    settings.projectpath+BINARYPROJECTPATH+"/")
    except IOError:
        raise Error("Can't copy bitstream")
    sy.chdir(pwd)
Example #3
0
    def setHDLfile(self,hdlfilepath,istop=0,scope="both"):
        """ Add HDL file in library component
        """
        if not sy.fileExist(hdlfilepath):
            raise Error("File "+hdlfilepath+" doesn't exist")

        hdl_file_name = os.path.basename(hdlfilepath)
        if hdl_file_name in [hdlfile.getFileName()
                    for hdlfile in self.getHdl_filesList()]:
            raise Error("File "+hdlfilepath+" is already in component")

        if istop:
            topfile = self.getHDLTop()
            if topfile != None:
                raise Error("There is a top HDL file in component named "+\
                        topfile.getFileName())

        # copy file in component directory
        hdlpath = os.path.join(self.getComponentPath(),"hdl")
        sy.copyFile(hdlfilepath,hdlpath)
        # create hdl_file node
        hdl_file_object = Hdl_file(self,
                                   filename=hdl_file_name,
                                   istop=istop,
                                   scope=scope)
        if istop:
            if hdl_file_object.getEntityName() != self.getName():
                raise Error("Entity name must be the same of component name")
            # automaticaly add generics
            generic_list = hdl_file_object.getGenericsList()
            for generic in generic_list:
                self.addGeneric(generic)
                display.msg(str(Error("Generic "+generic.getName()+\
                                " added in component",2)))

        # add node in component
        self.addSubNode(nodename="hdl_files",subnode=hdl_file_object)
        filelist = self.hdl_fileslist.append(hdl_file_object)
        return filelist