Refactor how the tool_info is stored in their Classes

parent ef068159
...@@ -71,7 +71,7 @@ class ActionSimulation( ...@@ -71,7 +71,7 @@ class ActionSimulation(
elif tool_name is "ghdl": elif tool_name is "ghdl":
tool_object = ToolGHDL() tool_object = ToolGHDL()
tool_info = tool_object.get_keys() tool_info = tool_object.TOOL_INFO
if sys.platform == 'cygwin': if sys.platform == 'cygwin':
bin_name = tool_info['windows_bin'] bin_name = tool_info['windows_bin']
else: else:
......
...@@ -79,7 +79,7 @@ class ActionSynthesis( ...@@ -79,7 +79,7 @@ class ActionSynthesis(
self._check_synthesis_makefile() self._check_synthesis_makefile()
tool_object = self._load_synthesis_tool() tool_object = self._load_synthesis_tool()
tool_info = tool_object.get_keys() tool_info = tool_object.TOOL_INFO
path_key = tool_info['id'] + '_path' path_key = tool_info['id'] + '_path'
name = tool_info['name'] name = tool_info['name']
...@@ -202,7 +202,7 @@ end sdb_meta_pkg;""") ...@@ -202,7 +202,7 @@ end sdb_meta_pkg;""")
self._check_synthesis_project() self._check_synthesis_project()
tool_object = self._load_synthesis_tool() tool_object = self._load_synthesis_tool()
tool_info = tool_object.get_keys() tool_info = tool_object.TOOL_INFO
path_key = tool_info['id'] + '_path' path_key = tool_info['id'] + '_path'
version_key = tool_info['id'] + '_version' version_key = tool_info['id'] + '_version'
name = tool_info['name'] name = tool_info['name']
......
...@@ -123,7 +123,7 @@ class Env(dict): ...@@ -123,7 +123,7 @@ class Env(dict):
def check_tool(self, info_class): def check_tool(self, info_class):
tool_info = info_class.get_keys() tool_info = info_class.TOOL_INFO
if sys.platform == 'cygwin': if sys.platform == 'cygwin':
bin_name = tool_info['windows_bin'] bin_name = tool_info['windows_bin']
else: else:
......
...@@ -28,21 +28,19 @@ from hdlmake.action import ActionMakefile ...@@ -28,21 +28,19 @@ from hdlmake.action import ActionMakefile
class ToolActiveHDL(ActionMakefile): class ToolActiveHDL(ActionMakefile):
TOOL_INFO = {
'name': 'Aldec Active-HDL',
'id': 'aldec',
'windows_bin': 'vsimsa',
'linux_bin': None}
def __init__(self): def __init__(self):
super(ToolActiveHDL, self).__init__() super(ToolActiveHDL, self).__init__()
def detect_version(self, path): def detect_version(self, path):
pass pass
def get_keys(self):
tool_info = {
'name': 'Aldec Active-HDL',
'id': 'aldec',
'windows_bin': 'vsimsa',
'linux_bin': None
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
ALDEC_STANDARD_LIBS = ['ieee', 'std'] ALDEC_STANDARD_LIBS = ['ieee', 'std']
return ALDEC_STANDARD_LIBS return ALDEC_STANDARD_LIBS
......
...@@ -34,22 +34,19 @@ DIAMOND_STANDARD_LIBS = ['ieee', 'std'] ...@@ -34,22 +34,19 @@ DIAMOND_STANDARD_LIBS = ['ieee', 'std']
class ToolDiamond(ActionMakefile): class ToolDiamond(ActionMakefile):
TOOL_INFO = {
'name': 'Diamond',
'id': 'diamond',
'windows_bin': 'pnmainc',
'linux_bin': 'diamondc',
'project_ext': 'ldf'}
def __init__(self): def __init__(self):
super(ToolDiamond, self).__init__() super(ToolDiamond, self).__init__()
def detect_version(self, path): def detect_version(self, path):
return 'unknown' return 'unknown'
def get_keys(self):
tool_info = {
'name': 'Diamond',
'id': 'diamond',
'windows_bin': 'pnmainc',
'linux_bin': 'diamondc',
'project_ext': 'ldf'
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return DIAMOND_STANDARD_LIBS return DIAMOND_STANDARD_LIBS
......
...@@ -27,21 +27,18 @@ from hdlmake.action import ActionMakefile ...@@ -27,21 +27,18 @@ from hdlmake.action import ActionMakefile
class ToolGHDL(ActionMakefile): class ToolGHDL(ActionMakefile):
TOOL_INFO = {
'name': 'GHDL',
'id': 'ghdl',
'windows_bin': 'ghdl',
'linux_bin': 'ghdl'}
def __init__(self): def __init__(self):
super(ToolGHDL, self).__init__() super(ToolGHDL, self).__init__()
def detect_version(self, path): def detect_version(self, path):
pass pass
def get_keys(self):
tool_info = {
'name': 'GHDL',
'id': 'ghdl',
'windows_bin': 'ghdl',
'linux_bin': 'ghdl'
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
GHDL_STANDARD_LIBS = ['ieee', 'std'] GHDL_STANDARD_LIBS = ['ieee', 'std']
return GHDL_STANDARD_LIBS return GHDL_STANDARD_LIBS
...@@ -66,10 +63,11 @@ class ToolGHDL(ActionMakefile): ...@@ -66,10 +63,11 @@ class ToolGHDL(ActionMakefile):
self.writeln("""\ self.writeln("""\
#target for cleaning all intermediate stuff #target for cleaning all intermediate stuff
clean: clean:
\t\trm -rf *.cf \t\trm -rf *.cf *.o $(TOP_MODULE)
#target for cleaning final files #target for cleaning final files
mrproper: clean mrproper: clean
\t\trm -r *.vcd
""") """)
......
This diff is collapsed.
...@@ -44,18 +44,15 @@ ISIM_STANDARD_LIBS = ['std', 'ieee', 'ieee_proposed', 'vl', 'synopsys', ...@@ -44,18 +44,15 @@ ISIM_STANDARD_LIBS = ['std', 'ieee', 'ieee_proposed', 'vl', 'synopsys',
class ToolISim(ActionMakefile): class ToolISim(ActionMakefile):
TOOL_INFO = {
'name': 'ISim',
'id': 'isim',
'windows_bin': 'isimgui',
'linux_bin': 'isimgui'}
def __init__(self): def __init__(self):
super(ToolISim, self).__init__() super(ToolISim, self).__init__()
def get_keys(self):
tool_info = {
'name': 'ISim',
'id': 'isim',
'windows_bin': 'isimgui',
'linux_bin': 'isimgui'
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return ISIM_STANDARD_LIBS return ISIM_STANDARD_LIBS
......
...@@ -40,18 +40,15 @@ IVERILOG_STANDARD_LIBS = ['std', 'ieee', 'ieee_proposed', 'vl', 'synopsys', ...@@ -40,18 +40,15 @@ IVERILOG_STANDARD_LIBS = ['std', 'ieee', 'ieee_proposed', 'vl', 'synopsys',
class ToolIVerilog(ActionMakefile): class ToolIVerilog(ActionMakefile):
TOOL_INFO = {
'name': 'Icarus Verilog',
'id': 'iverilog',
'windows_bin': 'iverilog',
'linux_bin': 'iverilog'}
def __init__(self): def __init__(self):
super(ToolIVerilog, self).__init__() super(ToolIVerilog, self).__init__()
def get_keys(self):
tool_info = {
'name': 'Icarus Verilog',
'id': 'iverilog',
'windows_bin': 'iverilog',
'linux_bin': 'iverilog'
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return IVERILOG_STANDARD_LIBS return IVERILOG_STANDARD_LIBS
......
...@@ -35,22 +35,19 @@ LIBERO_STANDARD_LIBS = ['ieee', 'std'] ...@@ -35,22 +35,19 @@ LIBERO_STANDARD_LIBS = ['ieee', 'std']
class ToolLibero(ActionMakefile): class ToolLibero(ActionMakefile):
TOOL_INFO = {
'name': 'Libero',
'id': 'libero',
'windows_bin': 'libero',
'linux_bin': 'libero',
'project_ext': 'prjx'}
def __init__(self): def __init__(self):
super(ToolLibero, self).__init__() super(ToolLibero, self).__init__()
def detect_version(self, path): def detect_version(self, path):
return 'unknown' return 'unknown'
def get_keys(self):
tool_info = {
'name': 'Libero',
'id': 'libero',
'windows_bin': 'libero',
'linux_bin': 'libero',
'project_ext': 'prjx' # older projects are prj
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return LIBERO_STANDARD_LIBS return LIBERO_STANDARD_LIBS
......
...@@ -34,6 +34,13 @@ MODELSIM_STANDARD_LIBS = ['ieee', 'std', 'altera_mf'] ...@@ -34,6 +34,13 @@ MODELSIM_STANDARD_LIBS = ['ieee', 'std', 'altera_mf']
class ToolModelsim(VsimMakefileWriter): class ToolModelsim(VsimMakefileWriter):
TOOL_INFO = {
'name': 'Modelsim',
'id': 'modelsim',
'windows_bin': 'vsim',
'linux_bin': 'vsim'}
def __init__(self): def __init__(self):
super(ToolModelsim, self).__init__() super(ToolModelsim, self).__init__()
self.vcom_flags.extend(["-modelsimini", "modelsim.ini"]) self.vcom_flags.extend(["-modelsimini", "modelsim.ini"])
...@@ -49,14 +56,6 @@ class ToolModelsim(VsimMakefileWriter): ...@@ -49,14 +56,6 @@ class ToolModelsim(VsimMakefileWriter):
def detect_version(self, path): def detect_version(self, path):
pass pass
def get_keys(self):
tool_info = {
'name': 'Modelsim',
'id': 'modelsim',
}
tool_info.update(super(ToolModelsim, self).get_keys())
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return MODELSIM_STANDARD_LIBS return MODELSIM_STANDARD_LIBS
......
...@@ -36,22 +36,19 @@ PLANAHEAD_STANDARD_LIBS = ['ieee', 'std'] ...@@ -36,22 +36,19 @@ PLANAHEAD_STANDARD_LIBS = ['ieee', 'std']
class ToolPlanAhead(ActionMakefile): class ToolPlanAhead(ActionMakefile):
TOOL_INFO = {
'name': 'PlanAhead',
'id': 'planahead',
'windows_bin': 'planAhead',
'linux_bin': 'planAhead',
'project_ext': 'ppr'}
def __init__(self): def __init__(self):
super(ToolPlanAhead, self).__init__() super(ToolPlanAhead, self).__init__()
def detect_version(self, path): def detect_version(self, path):
return 'unknown' return 'unknown'
def get_keys(self):
tool_info = {
'name': 'PlanAhead',
'id': 'planahead',
'windows_bin': 'planAhead',
'linux_bin': 'planAhead',
'project_ext': 'ppr'
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return PLANAHEAD_STANDARD_LIBS return PLANAHEAD_STANDARD_LIBS
......
...@@ -37,6 +37,13 @@ QUARTUS_STANDARD_LIBS = ['altera', 'altera_mf', 'lpm', 'ieee', 'std'] ...@@ -37,6 +37,13 @@ QUARTUS_STANDARD_LIBS = ['altera', 'altera_mf', 'lpm', 'ieee', 'std']
class ToolQuartus(ActionMakefile): class ToolQuartus(ActionMakefile):
TOOL_INFO = {
'name': 'Quartus',
'id': 'quartus',
'windows_bin': 'quartus',
'linux_bin': 'quartus',
'project_ext': 'qsf'}
def __init__(self): def __init__(self):
self._preflow = None self._preflow = None
self._postmodule = None self._postmodule = None
...@@ -46,16 +53,6 @@ class ToolQuartus(ActionMakefile): ...@@ -46,16 +53,6 @@ class ToolQuartus(ActionMakefile):
def detect_version(self, path): def detect_version(self, path):
return 'unknown' return 'unknown'
def get_keys(self):
tool_info = {
'name': 'Quartus',
'id': 'quartus',
'windows_bin': 'quartus',
'linux_bin': 'quartus',
'project_ext': 'qsf'
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return QUARTUS_STANDARD_LIBS return QUARTUS_STANDARD_LIBS
......
...@@ -62,6 +62,12 @@ RIVIERA_STANDARD_LIBS.extend(RIVIERA_XILINX_VLOG_LIBRARIES) ...@@ -62,6 +62,12 @@ RIVIERA_STANDARD_LIBS.extend(RIVIERA_XILINX_VLOG_LIBRARIES)
class ToolRiviera(VsimMakefileWriter): class ToolRiviera(VsimMakefileWriter):
TOOL_INFO = {
'name': 'Riviera',
'id': 'riviera',
'windows_bin': 'vsim',
'linux_bin': 'vsim'}
def __init__(self): def __init__(self):
super(ToolRiviera, self).__init__() super(ToolRiviera, self).__init__()
self.vcom_flags.append("-2008") self.vcom_flags.append("-2008")
...@@ -70,14 +76,6 @@ class ToolRiviera(VsimMakefileWriter): ...@@ -70,14 +76,6 @@ class ToolRiviera(VsimMakefileWriter):
def detect_version(self, path): def detect_version(self, path):
pass pass
def get_keys(self):
tool_info = {
'name': 'Riviera',
'id': 'riviera',
}
tool_info.update(super(ToolRiviera, self).get_keys())
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return RIVIERA_STANDARD_LIBS return RIVIERA_STANDARD_LIBS
......
...@@ -61,14 +61,6 @@ class VsimMakefileWriter(ActionMakefile): ...@@ -61,14 +61,6 @@ class VsimMakefileWriter(ActionMakefile):
super(VsimMakefileWriter, self).__init__() super(VsimMakefileWriter, self).__init__()
def get_keys(self):
tool_info = {
'windows_bin': 'vsim',
'linux_bin': 'vsim'
}
return tool_info
def _print_sim_options(self, top_module): def _print_sim_options(self, top_module):
self.vlog_flags.append( self.vlog_flags.append(
self.__get_rid_of_vsim_incdirs(top_module.manifest_dict["vlog_opt"])) self.__get_rid_of_vsim_incdirs(top_module.manifest_dict["vlog_opt"]))
......
...@@ -35,22 +35,20 @@ VIVADO_STANDARD_LIBS = ['ieee', 'std'] ...@@ -35,22 +35,20 @@ VIVADO_STANDARD_LIBS = ['ieee', 'std']
class ToolVivado(ActionMakefile): class ToolVivado(ActionMakefile):
TOOL_INFO = {
'name': 'vivado',
'id': 'vivado',
'windows_bin': 'vivado',
'linux_bin': 'vivado',
'project_ext': 'xpr'
}
def __init__(self): def __init__(self):
super(ToolVivado, self).__init__() super(ToolVivado, self).__init__()
def detect_version(self, path): def detect_version(self, path):
return 'unknown' return 'unknown'
def get_keys(self):
tool_info = {
'name': 'vivado',
'id': 'vivado',
'windows_bin': 'vivado',
'linux_bin': 'vivado',
'project_ext': 'xpr'
}
return tool_info
def get_standard_libraries(self): def get_standard_libraries(self):
return VIVADO_STANDARD_LIBS return VIVADO_STANDARD_LIBS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment