Loading src/com/elphel/vdt/core/tools/params/Tool.java +46 −41 Original line number Diff line number Diff line Loading @@ -985,6 +985,7 @@ public class Tool extends Context implements Cloneable, Inheritable { return; } DEBUG_PRINT("restoring "+getName()+" state for project "+project); if (getState()!=TOOL_STATE.KEPT_OPEN) { // do not QualifiedName qn= new QualifiedName(VDT.ID_VDT, PROJECT_TOOL_NAME+name+PROJECT_TOOL_PINNED); String str= pp.get(qn); if (str!=null) try { Loading @@ -1002,6 +1003,7 @@ public class Tool extends Context implements Cloneable, Inheritable { } if (getState()==TOOL_STATE.KEPT_OPEN) setStateJustThis(TOOL_STATE.NEW); // See if console with this name is open } qn= new QualifiedName(VDT.ID_VDT, PROJECT_TOOL_NAME+name+PROJECT_TOOL_TIMESTAMP); str= pp.get(qn); Loading Loading @@ -1031,6 +1033,9 @@ public class Tool extends Context implements Cloneable, Inheritable { setFileTimeStamp(qName.getLocalName().substring(filePrefix.length()), value); } } } else { DEBUG_PRINT("Do not update state of the open session "+getName()+" for project "+project); } } Loading tools/FPGA_project.xml +65 −9 Original line number Diff line number Diff line Loading @@ -308,6 +308,52 @@ label="sed command line" tooltip="Remote file prefix to be removed for the local error parser when running ISE tools" default="sed -u 's@/home/%RemoteUser/%ISEProjectRoot/%%ProjectName/@@'"/> <parameter id="ISEWorkspace" label="Workspace directory" tooltip="Relative (to user home directory) path of the workspace on ISE server" type="String" default="%ISEProjectRoot" format="CopyValue" readonly="true" /> <parameter id="ISESnapshotSynth" label="Synthesis snapshot" tooltip="Name of ISE snapshot archive after synthesis" default="%%ProjectName-synth.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotOptPlace" label="Placement snapshot" tooltip="Name of ISE snapshot archive after optimization/placement" default="%%ProjectName-opt-place.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotOpt" label="Optimization snapshot" tooltip="Name of ISE snapshot archive after optimization" default="%%ProjectName-opt.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotOptPower" label="Power optimization snapshot" tooltip="Name of ISE snapshot archive after power optimization" default="%%ProjectName-opt-power.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotPlace" label="Placement snapshot" tooltip="Name of ISE snapshot archive after placement" default="%%ProjectName-place.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotOptPhys" label="Physical optimization snapshot" tooltip="Name of ISE snapshot archive after physical optimization" default="%%ProjectName-opt-phys.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotRoute" label="Routing snapshot" tooltip="Name of ISE snapshot archive after routing" default="%%ProjectName-route.tgz" type="String" format="CopyValue" /> <parameter id="ISECleanRestore" label="ISE Clean restore" tooltip= "Remove remote ISE project files before unpacking snapshot archives" default="true" visible="true" type="Boolean" format="None"/> <input> <group name="Genaral" label="General parameters"> "part" Loading @@ -328,15 +374,6 @@ "VivadoIgnoreSource" "VivadoSedPaths" </group> <group name="ISE" label="ISE general properties"> "ISEProjectRoot" "ISERemoteDir" "ISELocalDir" "ISELocalResultDir" "ISELogDir" "ISEIgnoreSource" "ISESedPaths" </group> <group name="VivadoDisable" label="Selectively disable Vivado tools"> "DisableVivadoSynth" <!-- "DisableVivadoOptPlace" --> Loading @@ -357,6 +394,25 @@ "SnapshotOptPhys" "SnapshotRoute" </group> <group name="ISE" label="ISE general properties"> "ISEProjectRoot" "ISERemoteDir" "ISELocalDir" "ISELocalResultDir" "ISELogDir" "ISEIgnoreSource" "ISESedPaths" </group> <group name="ISESnapshots" label="ISE snapshot archives"> "ISECleanRestore" "ISESnapshotSynth" <!-- "ISESnapshotOptPlace" --> "ISESnapshotOpt" "ISESnapshotOptPower" "ISESnapshotPlace" "ISESnapshotOptPhys" "ISESnapshotRoute" </group> </input> <output> </output> Loading tools/Xilinx_ISE/ise_interface.xml +41 −17 Original line number Diff line number Diff line Loading @@ -44,20 +44,21 @@ <output> <line name="ise_pre_restore"> "-c" <!-- Create project directory on remote server if it did not exist --> <!-- Create workspace directory on remote server if it did not exist --> "ssh" "-oBatchMode=yes" "-l %RemoteUser %RemoteHost" "'" "mkdir -p" "%ISEProjectRoot" "%ISEWorkspace" "' ;" <!-- Copy snapshot generated after synthesis from local to remote --> "rsync -avrR -e ssh" <!-- Copy snapshot generated earlier from local to remote --> <!-- "rsync -avrR -e ssh" --> "rsync -avr -e ssh" <!-- from: --> "%ISELocalDir/%%StateFile" <!-- to: --> "%RemoteUser@%RemoteHost:%ISEProjectRoot" "%RemoteUser@%RemoteHost:%ISEWorkspace/" ";" </line> Loading @@ -68,11 +69,19 @@ failure="ERROR" prompt="@@FINISH@@" log=""> "cd ~/%ISEProjectRoot\n" "set outputDir ~/%ISEProjectRoot/%ISERemoteDir\n" "file mkdir $outputDir\n" "open_checkpoint %ISERemoteDir/%%StateFile\n" "puts \"@@FINISH@@\"\n" "cd ~/%ISEWorkspace\n" <!-- optionally remove project directory on remote before unpacking snapshot --> <if ISECleanRestore="true"> "rm -f -r" "%ISEProjectRoot;" </if> <!-- Unpack snapshot on remote --> "tar -xzf" "%%StateFile\n" <!-- Delete snapshot archive on remote --> "rm -f" "%%StateFile\n" "echo \"@@FINISH@@\"\n" </line> </output> </tool> Loading @@ -93,18 +102,33 @@ prompt="@@FINISH@@" failure="ERROR" log=""> "cd ~/%ISEProjectRoot\n" "set outputDir ~/%ISEProjectRoot/%ISERemoteDir\n" "file mkdir $outputDir\n" "write_checkpoint -force %ISERemoteDir/%%StateFile\n" "puts \"@@FINISH@@\"\n" "cd ~/%ISEWorkspace\n" <!-- Remove old snapshot if it exists (unlikely as it includes timestamp?) --> "rm -f" "%%StateFile" "\n" <!-- Create snapshot at remote (workspace, below project) --> "tar -czf" "%%StateFile" "%%ProjectName" "\n" "echo \"@@FINISH@@\"\n" </line> <line name="ise_copy_after_save"> "-c" <!-- Copy snapshot from remote to local --> "mkdir -p %ISELocalDir ;" "rsync -avr -e ssh" "%RemoteUser@%RemoteHost:%ISEProjectRoot/%ISERemoteDir/%%StateFile" "%%StateDir/" "%RemoteUser@%RemoteHost:%ISEWorkspace/%%StateFile" "%%StateDir/ ;" <!-- Remove snapshot at remote --> "ssh" "-oBatchMode=yes" "-l %RemoteUser %RemoteHost" "'" "rm -f" "%ISEWorkspace/%%StateFile" "' ;" </line> </output> </tool> Loading tools/Xilinx_ISE/ise_xst.xml +39 −8 Original line number Diff line number Diff line Loading @@ -183,8 +183,6 @@ </paramtype> </typedef> <syntax name="XSTPrjFile" format="%(verilog work %%ParamValue%|\n%)" /> </interface> <tool name="ISExst" label="run XST" Loading @@ -194,8 +192,12 @@ shell="/bin/bash" ignore="%ISEIgnoreSource" description="Run XST" result="ISESnapshotSynth" log-dir="ISELogDir" state-dir="ISELocalDir" restore="RestoreISESynthesis" autosave="AutosaveISESynthesis" save="SaveISESynthesis" inherits="ISEToolPrototype" > <!-- disable="TRUE" --> Loading @@ -214,6 +216,11 @@ <depends files="FilteredSourceListPar"/> <depends files="constraints"/> </depends-list> <parameter id="clean_start" label="Clean start" tooltip= "Delete all files on remote before running XST" default="false" visible="true" omit="false" type="BoolYesNo" format="Dash"/> <parameter id="SkipSnapshotSynth" label="Skip snapshot" tooltip="Do not create snapshot after synthesis" default="false" type= "Boolean" format="None"/> <!-- Constraints parameters --> <parameter id="arch" label="VHDL architecture" tooltip= "VHDL Top Level Architecture" default="" visible="true" omit="" type="String" format="Dash"/> Loading Loading @@ -463,13 +470,16 @@ readonly="true" visible="true" /> <parameter id="xst_prj_content" default="%%FilteredSourceList" type="Stringlist" format="XSTPrjFile" visible="false" /> <!-- hidden (calculated) parameters --> <parameter id="AutosaveISESynthesis" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotSynth=false : true, false" visible="false" type="Boolean" format="None"/> <parameter id= "useRedirect" label="debug condition" default="?(%info = true | %arch # ) ^ %redirect # : true , false" visible="true" omit="false" type="Boolean" format="None"/> <input> <group name="General options"> "clean_start" "SkipSnapshotSynth" "top" "ConstraintsFiles" "ifmt" Loading @@ -477,10 +487,13 @@ "output_format" <!-- outid="ofmt" --> "output_file" <!-- outid="ofn" --> "target_device" <!-- outid="p" --> "---" "FilteredSourceListPar" "RawOutFile" "xst_prj" "---" "ISEProjectRoot" "ISERemoteDir" </group> <group name ="Synthesis Options"> "constraints" <!-- outid="uc" --> Loading Loading @@ -588,14 +601,16 @@ > "%xst_prj_content" </line> //xst_prj <line name="ise_copy_pre_synth"> "-c" "ssh" "-oBatchMode=yes" "-l %RemoteUser %RemoteHost" "'" <if clean_start="true"> "rm -f -r" "%ISEProjectRoot;" </if> "mkdir -p" "%ISEProjectRoot;" <if-not tmpdir="/tmp"> Loading Loading @@ -727,6 +742,7 @@ "quit\n" </line> <!-- TODO: copy results --> <!-- <line name="ise_copy_after_partgen"> "-c" "mkdir -p %ISELocalResultDir ;" Loading @@ -738,7 +754,22 @@ </if> "%ISELocalResultDir/" </line> --> </output> </tool> <!-- Restore tool for ISESynthesis --> <tool name="RestoreISESynthesis" project="FPGA_project" interface="ISEInterface" package="FPGA_package" inherits="RestoreISE"/> <!-- Save tool for ISESynthesis --> <tool name="SaveISESynthesis" project="FPGA_project" interface="ISEInterface" package="FPGA_package" inherits="SaveISE"/> </vdt-project> tools/Xilinx_Vivado/vivado_bitstream.xml +2 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,8 @@ <if-not reference_bitfile=""> <line name="vivado_copy_pre_opt"> "-c" "rsync -avrR -e ssh" <!-- "rsync -avrR -e ssh" --> "rsync -avr -e ssh" <!-- from: (trying full name) --> "%VivadoLocalResultDir/%reference_bitfile" <!-- to: --> Loading Loading
src/com/elphel/vdt/core/tools/params/Tool.java +46 −41 Original line number Diff line number Diff line Loading @@ -985,6 +985,7 @@ public class Tool extends Context implements Cloneable, Inheritable { return; } DEBUG_PRINT("restoring "+getName()+" state for project "+project); if (getState()!=TOOL_STATE.KEPT_OPEN) { // do not QualifiedName qn= new QualifiedName(VDT.ID_VDT, PROJECT_TOOL_NAME+name+PROJECT_TOOL_PINNED); String str= pp.get(qn); if (str!=null) try { Loading @@ -1002,6 +1003,7 @@ public class Tool extends Context implements Cloneable, Inheritable { } if (getState()==TOOL_STATE.KEPT_OPEN) setStateJustThis(TOOL_STATE.NEW); // See if console with this name is open } qn= new QualifiedName(VDT.ID_VDT, PROJECT_TOOL_NAME+name+PROJECT_TOOL_TIMESTAMP); str= pp.get(qn); Loading Loading @@ -1031,6 +1033,9 @@ public class Tool extends Context implements Cloneable, Inheritable { setFileTimeStamp(qName.getLocalName().substring(filePrefix.length()), value); } } } else { DEBUG_PRINT("Do not update state of the open session "+getName()+" for project "+project); } } Loading
tools/FPGA_project.xml +65 −9 Original line number Diff line number Diff line Loading @@ -308,6 +308,52 @@ label="sed command line" tooltip="Remote file prefix to be removed for the local error parser when running ISE tools" default="sed -u 's@/home/%RemoteUser/%ISEProjectRoot/%%ProjectName/@@'"/> <parameter id="ISEWorkspace" label="Workspace directory" tooltip="Relative (to user home directory) path of the workspace on ISE server" type="String" default="%ISEProjectRoot" format="CopyValue" readonly="true" /> <parameter id="ISESnapshotSynth" label="Synthesis snapshot" tooltip="Name of ISE snapshot archive after synthesis" default="%%ProjectName-synth.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotOptPlace" label="Placement snapshot" tooltip="Name of ISE snapshot archive after optimization/placement" default="%%ProjectName-opt-place.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotOpt" label="Optimization snapshot" tooltip="Name of ISE snapshot archive after optimization" default="%%ProjectName-opt.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotOptPower" label="Power optimization snapshot" tooltip="Name of ISE snapshot archive after power optimization" default="%%ProjectName-opt-power.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotPlace" label="Placement snapshot" tooltip="Name of ISE snapshot archive after placement" default="%%ProjectName-place.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotOptPhys" label="Physical optimization snapshot" tooltip="Name of ISE snapshot archive after physical optimization" default="%%ProjectName-opt-phys.tgz" type="String" format="CopyValue" /> <parameter id="ISESnapshotRoute" label="Routing snapshot" tooltip="Name of ISE snapshot archive after routing" default="%%ProjectName-route.tgz" type="String" format="CopyValue" /> <parameter id="ISECleanRestore" label="ISE Clean restore" tooltip= "Remove remote ISE project files before unpacking snapshot archives" default="true" visible="true" type="Boolean" format="None"/> <input> <group name="Genaral" label="General parameters"> "part" Loading @@ -328,15 +374,6 @@ "VivadoIgnoreSource" "VivadoSedPaths" </group> <group name="ISE" label="ISE general properties"> "ISEProjectRoot" "ISERemoteDir" "ISELocalDir" "ISELocalResultDir" "ISELogDir" "ISEIgnoreSource" "ISESedPaths" </group> <group name="VivadoDisable" label="Selectively disable Vivado tools"> "DisableVivadoSynth" <!-- "DisableVivadoOptPlace" --> Loading @@ -357,6 +394,25 @@ "SnapshotOptPhys" "SnapshotRoute" </group> <group name="ISE" label="ISE general properties"> "ISEProjectRoot" "ISERemoteDir" "ISELocalDir" "ISELocalResultDir" "ISELogDir" "ISEIgnoreSource" "ISESedPaths" </group> <group name="ISESnapshots" label="ISE snapshot archives"> "ISECleanRestore" "ISESnapshotSynth" <!-- "ISESnapshotOptPlace" --> "ISESnapshotOpt" "ISESnapshotOptPower" "ISESnapshotPlace" "ISESnapshotOptPhys" "ISESnapshotRoute" </group> </input> <output> </output> Loading
tools/Xilinx_ISE/ise_interface.xml +41 −17 Original line number Diff line number Diff line Loading @@ -44,20 +44,21 @@ <output> <line name="ise_pre_restore"> "-c" <!-- Create project directory on remote server if it did not exist --> <!-- Create workspace directory on remote server if it did not exist --> "ssh" "-oBatchMode=yes" "-l %RemoteUser %RemoteHost" "'" "mkdir -p" "%ISEProjectRoot" "%ISEWorkspace" "' ;" <!-- Copy snapshot generated after synthesis from local to remote --> "rsync -avrR -e ssh" <!-- Copy snapshot generated earlier from local to remote --> <!-- "rsync -avrR -e ssh" --> "rsync -avr -e ssh" <!-- from: --> "%ISELocalDir/%%StateFile" <!-- to: --> "%RemoteUser@%RemoteHost:%ISEProjectRoot" "%RemoteUser@%RemoteHost:%ISEWorkspace/" ";" </line> Loading @@ -68,11 +69,19 @@ failure="ERROR" prompt="@@FINISH@@" log=""> "cd ~/%ISEProjectRoot\n" "set outputDir ~/%ISEProjectRoot/%ISERemoteDir\n" "file mkdir $outputDir\n" "open_checkpoint %ISERemoteDir/%%StateFile\n" "puts \"@@FINISH@@\"\n" "cd ~/%ISEWorkspace\n" <!-- optionally remove project directory on remote before unpacking snapshot --> <if ISECleanRestore="true"> "rm -f -r" "%ISEProjectRoot;" </if> <!-- Unpack snapshot on remote --> "tar -xzf" "%%StateFile\n" <!-- Delete snapshot archive on remote --> "rm -f" "%%StateFile\n" "echo \"@@FINISH@@\"\n" </line> </output> </tool> Loading @@ -93,18 +102,33 @@ prompt="@@FINISH@@" failure="ERROR" log=""> "cd ~/%ISEProjectRoot\n" "set outputDir ~/%ISEProjectRoot/%ISERemoteDir\n" "file mkdir $outputDir\n" "write_checkpoint -force %ISERemoteDir/%%StateFile\n" "puts \"@@FINISH@@\"\n" "cd ~/%ISEWorkspace\n" <!-- Remove old snapshot if it exists (unlikely as it includes timestamp?) --> "rm -f" "%%StateFile" "\n" <!-- Create snapshot at remote (workspace, below project) --> "tar -czf" "%%StateFile" "%%ProjectName" "\n" "echo \"@@FINISH@@\"\n" </line> <line name="ise_copy_after_save"> "-c" <!-- Copy snapshot from remote to local --> "mkdir -p %ISELocalDir ;" "rsync -avr -e ssh" "%RemoteUser@%RemoteHost:%ISEProjectRoot/%ISERemoteDir/%%StateFile" "%%StateDir/" "%RemoteUser@%RemoteHost:%ISEWorkspace/%%StateFile" "%%StateDir/ ;" <!-- Remove snapshot at remote --> "ssh" "-oBatchMode=yes" "-l %RemoteUser %RemoteHost" "'" "rm -f" "%ISEWorkspace/%%StateFile" "' ;" </line> </output> </tool> Loading
tools/Xilinx_ISE/ise_xst.xml +39 −8 Original line number Diff line number Diff line Loading @@ -183,8 +183,6 @@ </paramtype> </typedef> <syntax name="XSTPrjFile" format="%(verilog work %%ParamValue%|\n%)" /> </interface> <tool name="ISExst" label="run XST" Loading @@ -194,8 +192,12 @@ shell="/bin/bash" ignore="%ISEIgnoreSource" description="Run XST" result="ISESnapshotSynth" log-dir="ISELogDir" state-dir="ISELocalDir" restore="RestoreISESynthesis" autosave="AutosaveISESynthesis" save="SaveISESynthesis" inherits="ISEToolPrototype" > <!-- disable="TRUE" --> Loading @@ -214,6 +216,11 @@ <depends files="FilteredSourceListPar"/> <depends files="constraints"/> </depends-list> <parameter id="clean_start" label="Clean start" tooltip= "Delete all files on remote before running XST" default="false" visible="true" omit="false" type="BoolYesNo" format="Dash"/> <parameter id="SkipSnapshotSynth" label="Skip snapshot" tooltip="Do not create snapshot after synthesis" default="false" type= "Boolean" format="None"/> <!-- Constraints parameters --> <parameter id="arch" label="VHDL architecture" tooltip= "VHDL Top Level Architecture" default="" visible="true" omit="" type="String" format="Dash"/> Loading Loading @@ -463,13 +470,16 @@ readonly="true" visible="true" /> <parameter id="xst_prj_content" default="%%FilteredSourceList" type="Stringlist" format="XSTPrjFile" visible="false" /> <!-- hidden (calculated) parameters --> <parameter id="AutosaveISESynthesis" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotSynth=false : true, false" visible="false" type="Boolean" format="None"/> <parameter id= "useRedirect" label="debug condition" default="?(%info = true | %arch # ) ^ %redirect # : true , false" visible="true" omit="false" type="Boolean" format="None"/> <input> <group name="General options"> "clean_start" "SkipSnapshotSynth" "top" "ConstraintsFiles" "ifmt" Loading @@ -477,10 +487,13 @@ "output_format" <!-- outid="ofmt" --> "output_file" <!-- outid="ofn" --> "target_device" <!-- outid="p" --> "---" "FilteredSourceListPar" "RawOutFile" "xst_prj" "---" "ISEProjectRoot" "ISERemoteDir" </group> <group name ="Synthesis Options"> "constraints" <!-- outid="uc" --> Loading Loading @@ -588,14 +601,16 @@ > "%xst_prj_content" </line> //xst_prj <line name="ise_copy_pre_synth"> "-c" "ssh" "-oBatchMode=yes" "-l %RemoteUser %RemoteHost" "'" <if clean_start="true"> "rm -f -r" "%ISEProjectRoot;" </if> "mkdir -p" "%ISEProjectRoot;" <if-not tmpdir="/tmp"> Loading Loading @@ -727,6 +742,7 @@ "quit\n" </line> <!-- TODO: copy results --> <!-- <line name="ise_copy_after_partgen"> "-c" "mkdir -p %ISELocalResultDir ;" Loading @@ -738,7 +754,22 @@ </if> "%ISELocalResultDir/" </line> --> </output> </tool> <!-- Restore tool for ISESynthesis --> <tool name="RestoreISESynthesis" project="FPGA_project" interface="ISEInterface" package="FPGA_package" inherits="RestoreISE"/> <!-- Save tool for ISESynthesis --> <tool name="SaveISESynthesis" project="FPGA_project" interface="ISEInterface" package="FPGA_package" inherits="SaveISE"/> </vdt-project>
tools/Xilinx_Vivado/vivado_bitstream.xml +2 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,8 @@ <if-not reference_bitfile=""> <line name="vivado_copy_pre_opt"> "-c" "rsync -avrR -e ssh" <!-- "rsync -avrR -e ssh" --> "rsync -avr -e ssh" <!-- from: (trying full name) --> "%VivadoLocalResultDir/%reference_bitfile" <!-- to: --> Loading