diff --git a/tools/oneclick/base/entity.py b/tools/oneclick/base/entity.py deleted file mode 100644 index bde9046b829e409971512d6239a8c43d42dc042d..0000000000000000000000000000000000000000 --- a/tools/oneclick/base/entity.py +++ /dev/null @@ -1,307 +0,0 @@ -############################################################################### -# -# Copyright (C) 2014 -# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/> -# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################### - -""" - - -""" - - -import common as cm -import common_dict_file -import sys -import os -import os.path -import shutil - - -dirList = ["IN", "in", "OUT", "out", "INOUT", "inout"] - -class Port: - def __init__(self, name, dir, type, default=""): - - self.name = name - if dir in dirList: - self.dir = dir - else: - print """Not a valid dir type. Should be "IN", "OUT" or "INOUT" """ - - self.type = type - self.default = default - - def setPortDir(self, newDir): - self.dir = newDir - -class Generic: - def __init__(self, name, type, default=""): - - self.name = name - self.type = type - self.default = default - -class Constant: - def __init__(self, name, type, value=""): - - self.name = name - self.type = type - self.value = value - -class Signl: - def __init__(self, name, type, default=""): - - self.name = name - self.type = type - self.default = default - -class Entity: - - s_port_start = " PORT (\n" - s_port_map_start = " PORT MAP(\n" - s_generic_start = " GENERIC (\n" - s_generic_map_start = " GENERIC MAP(\n" - - def __init__(self, name = ""): - """ - """ - self.name = name - self.generics = [] - self.ports = [] - self.portNames = [] - self.longestPortName = 15 - self.longestPortDir = 3 - self.genericNames = [] - self.genericTypes = [] - self.longestGenericName = 15 - self.longestGenericType = 8 - self.architecture = [] - - def read_entity_from_file(self, path, name): - fname = path + name + ".vhd" - if not(os.path.isfile(fname)): sys.exit('Error : Specified VHD file does not exist: ' + fname) - f = file(fname, "r") - s = "" - s = f.readline() - # Read the entity name - while not(('ENTITY ' in s) or ('entity ' in s)): - s = f.readline() - self.name = s.split(" ")[1] - s = f.readline() - # Find the start of the generic definitions - if('generic' in s) or ('GENERIC' in s): - while not(');') in s: - s = f.readline() - if not(self.comment_or_empty(s)): - if ');' in s: - s = f.readline() - break - s = self.remove_added_comment(s) - s_comp = s.split(": ") - newGenericName = s_comp[0].strip() - # Check if a default value is assigned - if(":=" in s_comp[1]): - s_comp1 = s_comp[1].split(":=") - newGenericDefault = (s_comp1[1].strip(";")).strip() - s_type = s_comp1[0] - else: - newGenericDefault = "" - s_type = s_comp[1] - newGenericType = (s_type.strip(";")).strip() - newGeneric = Generic(newGenericName, newGenericType, newGenericDefault) - self.generics.append(newGeneric) - - if('port' in s) or ('PORT' in s): - while not('end entity ') in s: - s = f.readline() - if not(self.comment_or_empty(s)): - if s.strip() == ');': - break - s = self.remove_added_comment(s) - - s_comp = s.split(": ") - newPortName = s_comp[0].strip() - # Check if a default value is assigned - if(":=" in s_comp[1]): - s_comp1 = s_comp[1].split(":=") - newPortDefault = (s_comp1[1].strip(";")).strip() - s_dir_type = s_comp1[0] - else: - newPortDefault = "" - s_dir_type = s_comp[1] - newPortDir = s_dir_type.split(" ", 1)[0] - newPortType = ((s_dir_type.split(" ", 1)[1]).strip(";")).strip() - - self.add_port(newPortName, newPortDir, newPortType, newPortDefault) - f.close() - - def comment_or_empty(self, s): - s_strip = s.strip() - return (s_strip.startswith("--") or not(s.strip())) - - def remove_added_comment(self, s): - i = s.find('--') - if i != -1: - s = s[0:i] + "\n" - return s.strip() - - def make_instantiation(self, connect=True): - - if self.generics: - self.set_longest_generic_name() - self.set_longest_generic_type() - if self.ports: - self.set_longest_port_name() - self.set_longest_port_dir() - - # Create start - s_return = "u_inst_" + self.name + " : ENTITY work." + self.name + "\n" - - for i in range(len(self.generics)): - if(i == 0): - s_return = s_return + self.s_generic_map_start - s_generic = " " + self.generics[i].name.ljust(self.longestGenericName) + " => " - if(connect): - s_generic = s_generic + self.generics[i].name - if(i != len(self.generics)-1): - s_generic = s_generic + ",\n" - else: - s_generic = s_generic + "\n )\n" - s_return = s_return + s_generic - - for i in range(len(self.ports)): - if(i == 0): - s_return = s_return + self.s_port_map_start - s_port = " " + self.ports[i].name.ljust(self.longestPortName) + " => " - if(connect): - s_port = s_port + self.ports[i].name - if(i != len(self.ports)-1): - s_port = s_port + ",\n" - else: - s_port = s_port + "\n );\n" - s_return = s_return + s_port - - return s_return - - def make_definition(self, inst_type="ENTITY"): - - if self.generics: - self.set_longest_generic_name() - self.set_longest_generic_type() - if self.ports: - self.set_longest_port_name() - self.set_longest_port_dir() - - # Create start - s_return = inst_type + " " + self.name +" IS\n" - - for i in range(len(self.generics)): - if(i == 0): - s_return = s_return + self.s_generic_start - s_generic = " " + self.generics[i].name.ljust(self.longestGenericName) + " : " + self.generics[i].type.ljust(self.longestGenericType) - if(self.generics[i].default != ""): - s_generic = s_generic + " := " + self.generics[i].default - if(i != len(self.generics)-1): - s_generic = s_generic + ";\n" - else: - s_generic = s_generic + "\n );\n" - s_return = s_return + s_generic - - for i in range(len(self.ports)): - if(i == 0): - s_return = s_return + self.s_port_start - s_port = " " + self.ports[i].name.ljust(self.longestPortName) + " : " + self.ports[i].dir.ljust(self.longestPortDir) + " " + self.ports[i].type - if(self.ports[i].default != ""): - s_port = s_port + " := " + self.ports[i].default - if(i != len(self.ports)-1): - s_port = s_port + ";\n" - else: - s_port = s_port + "\n );\n" - s_return = s_return + s_port - s_return = s_return + "END " + inst_type + " " + self.name + ";\n\n" - - return s_return - - def make_entity_definition(self, indend = 0): - return self.apply_indend(self.make_definition("ENTITY"), indend) - - def make_component_definition(self, indend = 0): - return self.apply_indend(self.make_definition("COMPONENT"), indend) - - def apply_indend(self, s, indend): - s_indend = "" - for i in range(indend): - s_indend = s_indend + " " - s_return =s_indend + s.replace('\n', '\n' + s_indend) - return (s_return) - - def comment(self, s): - s_return ="-- " + s.replace('\n', '\n' + "-- ") + '\n' - return (s_return) - - def set_longest_port_name(self): - self.portNames = [] - for i in range(len(self.ports)): - self.portNames.append(self.ports[i].name) - self.longestPortName = len(max(self.portNames, key=len)) - - def set_longest_port_dir(self): - self.longestPortDir = 0 - for i in range(len(self.ports)): - if(len(self.ports[i].dir) > self.longestPortDir): - self.longestPortDir = len(self.ports[i].dir) - - def set_longest_generic_name(self): - self.genericNames = [] - for i in range(len(self.generics)): - self.genericNames.append(self.generics[i].name) - self.longestGenericName = len(max(self.genericNames, key=len)) - - def set_longest_generic_type(self): - self.genericTypes = [] - for i in range(len(self.generics)): - self.genericTypes.append(self.generics[i].type) - self.longestGenericType = len(max(self.genericTypes, key=len)) - - def add_port(self, name, dir, type, default = ""): - newPort = Port(name, dir, type, default) - self.ports.append(newPort) - - def add_generic(self, name, type, default = ""): - newGeneric = Generic(name, type, default) - self.generics.append(newGeneric) - - def replace_std_logic_vector_with_std_logic(self): - for i in self.ports: - if i.type == "std_logic_vector(0 downto 0)": - i.type = "std_logic" - elif i.type == "STD_LOGIC_VECTOR(0 DOWNTO 0)": - i.type = "STD_LOGIC" - - -class Architecture: - - def __init__(self, name = ""): - """ - """ - self.name = name - self.constants = [] - self.signals = [] - self.components = [] - \ No newline at end of file