Handle hdl and supported files as a dictionay and test it on Vivado

parent d255ef82
......@@ -46,9 +46,19 @@ class ToolVivado(ToolXilinx, ToolSim):
STANDARD_LIBS = ['ieee', 'std']
SUPPORTED_FILES = [XDCFile, XCIFile, NGCFile, XMPFile,
XCOFile, COEFile, BDFile, TCLFile,
MIFFile, RAMFile, VHOFile, VEOFile]
SUPPORTED_FILES = {
XDCFile: ToolXilinx._XILINX_SOURCE,
XCIFile: ToolXilinx._XILINX_SOURCE,
NGCFile: ToolXilinx._XILINX_SOURCE,
XMPFile: ToolXilinx._XILINX_SOURCE,
XCOFile: ToolXilinx._XILINX_SOURCE,
COEFile: ToolXilinx._XILINX_SOURCE,
BDFile: ToolXilinx._XILINX_SOURCE,
TCLFile: ToolXilinx._XILINX_SOURCE,
MIFFile: ToolXilinx._XILINX_SOURCE,
RAMFile: ToolXilinx._XILINX_SOURCE,
VHOFile: ToolXilinx._XILINX_SOURCE,
VEOFile: ToolXilinx._XILINX_SOURCE}
CLEAN_TARGETS = {'clean': ["run.tcl", ".Xil", "*.jou", "*.log", "*.pb",
"$(PROJECT).cache", "$(PROJECT).data", "work",
......@@ -70,7 +80,7 @@ class ToolVivado(ToolXilinx, ToolSim):
def __init__(self):
super(ToolVivado, self).__init__()
self._tool_info.update(ToolVivado.TOOL_INFO)
self._supported_files.extend(ToolVivado.SUPPORTED_FILES)
self._supported_files.update(ToolVivado.SUPPORTED_FILES)
self._standard_libs.extend(ToolVivado.STANDARD_LIBS)
self._clean_targets.update(ToolVivado.CLEAN_TARGETS)
self._tcl_controls.update(ToolVivado.TCL_CONTROLS)
......
......@@ -34,7 +34,15 @@ class ToolXilinx(ToolSyn):
"""Class providing the interface for Xilinx Vivado synthesis"""
HDL_FILES = [VHDLFile, VerilogFile, SVFile]
_XILINX_SOURCE = ("add_files -norecurse $$filename\n"
"set_property IS_GLOBAL_INCLUDE 1 [get_files $$filename]")
HDL_FILES = {
VHDLFile: _XILINX_SOURCE,
VerilogFile: _XILINX_SOURCE,
SVFile: _XILINX_SOURCE}
SUPPORTED_FILES = {TCLFile: 'source $$filename'}
CLEAN_TARGETS = {'mrproper': ["*.bit", "*.bin"]}
......@@ -67,7 +75,8 @@ $(TCL_CLOSE)'''
def __init__(self):
super(ToolXilinx, self).__init__()
self._hdl_files.extend(ToolXilinx.HDL_FILES)
self._hdl_files.update(ToolXilinx.HDL_FILES)
self._supported_files.update(ToolXilinx.SUPPORTED_FILES)
self._clean_targets.update(ToolXilinx.CLEAN_TARGETS)
self._tcl_controls.update(ToolXilinx.TCL_CONTROLS)
......@@ -130,18 +139,3 @@ $(TCL_CLOSE)'''
"impl_1",
"\n".join(par_new))
super(ToolXilinx, self).makefile_syn_tcl()
def makefile_syn_files(self):
"""Write the files TCL section of the Makefile"""
self.writeln("define TCL_FILES")
tmp = "add_files -norecurse {0}"
tcl = "source {0}"
hack = "set_property IS_GLOBAL_INCLUDE 1 [get_files {0}]"
for file_aux in self.fileset:
if isinstance(file_aux, TCLFile):
self.writeln(tcl.format(file_aux.rel_path()))
else:
self.writeln(tmp.format(file_aux.rel_path()))
self.writeln(hack.format(file_aux.rel_path()))
self.writeln("endef")
self.writeln("export TCL_FILES")
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