Commit 06425a7a authored by Andrey Filippov's avatar Andrey Filippov

Just next snapshot

parent 4a32831e
......@@ -33,6 +33,7 @@ import org.eclipse.debug.core.model.IProcess;
import org.eclipse.debug.core.model.IStreamMonitor;
import org.eclipse.debug.core.model.IStreamsProxy2;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsoleManager;
......@@ -264,20 +265,30 @@ public class VDTConsoleRunner{
outputListener);
consoleOutStreamMonitor.addListener(outputListener );
// }
//Problems occurred when invoking code from plug-in: "org.eclipse.ui.console".
//Exception occurred during console property change notification.
outStream.setColor(new Color(null, 128, 128, 255)); // org.eclipse.swt.SWTException: Invalid thread access
try {
for (int i=0;i<arguments.length;i++){
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.LOCAL_ECHO)) {
outStream.write(arguments[i]+"\n"); // writes to console itself
System.out.println("--->"+arguments[i]+"\n");
}
consoleInStreamProxy.write(arguments[i]+"\n");
}
} catch (IOException e) {
System.out.println("Can not write to outStream of console "+iCons.getName());
}
// Problems occurred when invoking code from plug-in: "org.eclipse.ui.console".
// Exception occurred during console property change notification.
// Trying to fix Illegal THread Access
final String [] fArguments=arguments;
final IOConsoleOutputStream fOutStream= outStream;
final IOConsole fICons=iCons;
Display.getDefault().syncExec(new Runnable() {
public void run() {
fOutStream.setColor(new Color(null, 128, 128, 255)); // org.eclipse.swt.SWTException: Invalid thread access
try {
for (int i=0;i<fArguments.length;i++){
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.LOCAL_ECHO)) {
fOutStream.write(fArguments[i]+"\n"); // writes to console itself
System.out.println("--->"+fArguments[i]+"\n");
}
consoleInStreamProxy.write(fArguments[i]+"\n");
}
} catch (IOException e) {
System.out.println("Can not write to outStream of console "+fICons.getName());
}
}
});
int timeout=buildParamsItem.getTimeout();
if ((timeout==0) && (buildParamsItem.getPrompt()==null)) timeout=1;// should specify at least one of timeout or prompt
timer=null;
......
......@@ -103,6 +103,7 @@ public class XMLConfig extends Config {
static final String CONTEXT_TOOL_SHELL_ATTR = "shell";
static final String CONTEXT_TOOL_EXTENSIONS_LIST_TAG = "extensions-list";
static final String CONTEXT_TOOL_EXTENSION_TAG = "extension";
static final String CONTEXT_TOOL_EXTENSION_MASK_ATTR = "mask";
static final String CONTEXT_TOOL_ACTION_LIST_TAG = "action-menu";
static final String CONTEXT_TOOL_ACTION_TAG = "action";
static final String CONTEXT_TOOL_ACTION_LABEL = "label";
......@@ -110,9 +111,9 @@ public class XMLConfig extends Config {
static final String CONTEXT_TOOL_ACTION_CHECK_EXTENSION = "check-extension";
static final String CONTEXT_TOOL_ACTION_CHECK_EXISTENCE = "check-existence";
static final String CONTEXT_TOOL_ACTION_ICON = "icon";
static final String CONTEXT_TOOL_DEPENDS_LIST_TAG = "depends-list";
static final String CONTEXT_TOOL_DEPENDS_TAG = "depends";
static final String CONTEXT_TOOL_DEPENDS_TOOL_TAG = "tool";
static final String CONTEXT_TOOL_DEPENDS_LIST_TAG = "depends-list";
static final String CONTEXT_TOOL_DEPENDS_TAG = "depends";
static final String CONTEXT_TOOL_DEPENDS_STATE_TAG = "state";
// TODO: May add other types of dependencies
static final String CONTEXT_TOOL_DFLT_ACTION_LABEL = "Run for";
......@@ -120,7 +121,6 @@ public class XMLConfig extends Config {
static final String CONTEXT_TOOL_DFLT_ACTION_CHECK_EXTENSION = "true";
static final String CONTEXT_TOOL_DFLT_ACTION_CHECK_EXISTENCE = "false";
static final String CONTEXT_TOOL_EXTENSION_MASK_ATTR = "mask";
static final String CONTEXT_TOOL_SYNTAX_ERRORS = "errors";
static final String CONTEXT_TOOL_SYNTAX_WARNINGS= "warnings";
static final String CONTEXT_TOOL_SYNTAX_INFO = "info";
......@@ -1066,9 +1066,9 @@ public class XMLConfig extends Config {
// TODO: allow here other types of dependencies (conditionals(source files)
for(Iterator<Node> n = depNodes.iterator(); n.hasNext();) {
Node node = (Node)n.next();
String dep = getAttributeValue(node, CONTEXT_TOOL_DEPENDS_TOOL_TAG);
String dep = getAttributeValue(node, CONTEXT_TOOL_DEPENDS_STATE_TAG);
if(dep == null)
throw new ConfigException(toolInfo + ": Attribute '" + CONTEXT_TOOL_DEPENDS_TOOL_TAG + "' is absent");
throw new ConfigException(toolInfo + ": Attribute '" + CONTEXT_TOOL_DEPENDS_STATE_TAG + "' is absent");
depList.add(dep);
}
return depList;
......
......@@ -21,7 +21,6 @@ import java.util.*;
import java.io.*;
import org.eclipse.core.resources.IProject;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IMemento;
import com.elphel.vdt.VDT;
......@@ -123,6 +122,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
private TOOL_MODE runMode;
private TOOL_MODE lastRunMode; // last running (not STOP) mode
private int lastRunHash; // hash code of the last run
private ToolWaitingArguments toolWaitingArguments; // save here launch parameters wjhen tool need to wait for other tools to run/get restored
public Tool(String name,
String controlInterfaceName,
......@@ -217,22 +217,51 @@ public class Tool extends Context implements Cloneable, Inheritable {
}
public enum TOOL_MODE {
STOP,
WAIT,
RUN,
RESTORE,
SAVE,
PLAYBACK
}
public class ToolWaitingArguments{
private TOOL_MODE mode;
private int choice;
private String fullPath;
private String ignoreFilter;
public ToolWaitingArguments(
TOOL_MODE mode,
int choice,
String fullPath,
String ignoreFilter){
this.mode=mode;
this.choice=choice;
this.fullPath=fullPath;
this.ignoreFilter=ignoreFilter;
}
public TOOL_MODE getMode() { return mode;}
public int getChoice() { return choice;}
public String getFullPath(){ return fullPath;}
public String getIgnoreFilter(){ return ignoreFilter;}
}
// public void setRunStamp(long runStamp) { this.runStamp=runStamp; }
public List<String> getDepends() { return depends; }
public boolean isDirty() { return dirty; }
// public boolean isRunning() { return running; }
public boolean isRunning() { return runMode!=TOOL_MODE.STOP; }
public boolean isRunning() { return (runMode!=TOOL_MODE.STOP) && ((runMode!=TOOL_MODE.WAIT)); }
public boolean isWaiting() { return runMode==TOOL_MODE.WAIT; }
public boolean isAlmostDone(){
if (runMode!=TOOL_MODE.STOP) return false;
if ((getRestore()!=null) && (getRestore().isRunning())) return true;
if ((getSave()!=null) && (getSave().isRunning())) return true;
return false;
}
public TOOL_MODE getMode() { return runMode; }
public TOOL_MODE getLastMode() { return lastRunMode; }
// public long getRunStamp() { return runStamp; }
public TOOL_STATE getState() { return state; }
public boolean isPinned() { return pinned; }
public String getOpenState() { return openState; }
......@@ -255,8 +284,14 @@ public class Tool extends Context implements Cloneable, Inheritable {
}
}
public void setModeWait(ToolWaitingArguments toolWaitingArguments) {
this.toolWaitingArguments = toolWaitingArguments;
setMode(TOOL_MODE.WAIT);
}
public void setMode(TOOL_MODE mode) {
if ((runMode!=TOOL_MODE.STOP) && (mode==TOOL_MODE.STOP)){ // jsut stopped
if (mode !=TOOL_MODE.WAIT) this.toolWaitingArguments = null;
if ((runMode!=TOOL_MODE.STOP) && (mode==TOOL_MODE.STOP)){ // just stopped
lastRunHash=getCurrentHash();
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_TOOL_SEQUENCE)) {
System.out.println(":::: Tool "+name+": lastRunHash="+lastRunHash);
......@@ -294,7 +329,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
System.out.println("SetState("+state+")");
}
}
public void setDesignFlowView (DesignFlowView designFlowView){
this.designFlowView = designFlowView; // to be able to update actions and so the state icons
}
......
......@@ -89,7 +89,10 @@ public class VDTPluginImages {
public static final String ICON_TOOLSTATE_WTF = "obj16"+File.separator+"question.png";
public static final String ICON_TOOLSTATE_WTF_OLD = "obj16"+File.separator+"question_dim.png";
public static final String ICON_TOOLSTATE_RUNNING = "obj16"+File.separator+"spinning.gif";
// public static final String ICON_TOOLSTATE_KEPT_OPEN= "obj16"+File.separator+"heart.gif";
public static final String ICON_TOOLSTATE_WAITING = "obj16"+File.separator+"hourglass.gif";
public static final String ICON_TOOLSTATE_ALMOST_GOOD = "obj16"+File.separator+"check_almost.gif";
public static final String ICON_TOOLSTATE_ALMOST_WTF = "obj16"+File.separator+"question_almost.gif";
public static final String ICON_TOOLSTATE_KEPT_OPEN= "obj16"+File.separator+"beat.gif";
public static final String ICON_TOOLSTATE_PINNED = "obj16"+File.separator+"pinned_good.png";
......@@ -101,6 +104,11 @@ public class VDTPluginImages {
public static final String KEY_TOOLSTATE_WTF = "TOOLSTATE_WTF";
public static final String KEY_TOOLSTATE_WTF_OLD = "TOOLSTATE_WTF_OLD";
public static final String KEY_TOOLSTATE_RUNNING = "TOOLSTATE_RUNNING";
public static final String KEY_TOOLSTATE_WAITING = "TOOLSTATE_WAITING";
public static final String KEY_TOOLSTATE_ALMOST_GOOD = "TOOLSTATE_ALMOST_GOOD";
public static final String KEY_TOOLSTATE_ALMOST_WTF = "TOOLSTATE_ALMOST_WTF";
public static final String KEY_TOOLSTATE_KEPT_OPEN ="TOOLSTATE_KEPT_OPEN";
public static final String KEY_TOOLSTATE_PINNED = "TOOLSTATE_PINNED";
......
......@@ -798,7 +798,6 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
public void run() {
try {
playLogs(
fDesignFlowView, // to be able to launch update when build state of the tool changes
false,
fFullPath,
fIgnoreFilter);
......@@ -813,7 +812,6 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
public void run() {
try {
playLogs(
fDesignFlowView, // to be able to launch update when build state of the tool changes
true,
fFullPath,
fIgnoreFilter);
......@@ -881,20 +879,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
String fullPath,
String ignoreFilter) throws CoreException {
if (tool != null) {
// tool.setDesignFlowView(designFlowView);
tool.setDesignFlowView(this); // maybe will not be needed with ToolSequencing class
if (!toolSequence.okToRun()) return;
tool.setMode(mode) ; //TOOL_MODE.RUN);
tool.toolFinished();
tool.setChoice(0);
SelectedResourceManager.getDefault().updateActionChoice(fullPath, choice, ignoreFilter); // Andrey
SelectedResourceManager.getDefault().setBuildStamp(); // Andrey
// apply designFlowView to the tool itself
LaunchCore.launch( tool,
selectedResource.getProject(),
fullPath,
null); // run, not playback
toolSequence.launchToolSequence(tool,mode, choice, fullPath, ignoreFilter);
} else if (selectedItem.hasChildren()) {
if (viewer.getExpandedState(selectedItem))
viewer.collapseToLevel(selectedItem, AbstractTreeViewer.ALL_LEVELS);
......@@ -903,10 +888,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
}
} // launchTool()
private void playLogs(
final DesignFlowView designFlowView,
boolean select, // select log file
String fullPath,
String ignoreFilter) throws CoreException {
......@@ -917,21 +899,10 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("logBuildStamp="+logBuildStamp);
}
tool.setDesignFlowView(designFlowView);
if (!toolSequence.okToRun()) return;
// tool.setRunning(true);
tool.setMode(TOOL_MODE.PLAYBACK);
tool.toolFinished();
tool.setChoice(0);
SelectedResourceManager.getDefault().updateActionChoice(fullPath, 0, ignoreFilter); // Andrey
SelectedResourceManager.getDefault().setBuildStamp(); // OK - even for log? Or use old/selected one?
// apply designFlowView to the tool itself
LaunchCore.launch(tool,
selectedResource.getProject(),
fullPath,
logBuildStamp);
// probably should not get here if not a tool
toolSequence.playLogs(
tool,
fullPath,
logBuildStamp);
} else if (selectedItem.hasChildren()) {
if (viewer.getExpandedState(selectedItem))
viewer.collapseToLevel(selectedItem, AbstractTreeViewer.ALL_LEVELS);
......
......@@ -48,6 +48,7 @@ import com.elphel.vdt.core.tools.menu.DesignMenu;
import com.elphel.vdt.core.tools.menu.DesignMenuItem;
import com.elphel.vdt.core.tools.menu.DesignMenuToolItem;
import com.elphel.vdt.core.tools.params.Tool;
import com.elphel.vdt.core.tools.params.Tool.TOOL_STATE;
import com.elphel.vdt.ui.VDTPluginImages;
import com.elphel.vdt.ui.variables.SelectedResourceManager;
......@@ -308,7 +309,15 @@ public class DesignMenuModel {
if (tool.isRunning()){
iconName=VDTPluginImages.ICON_TOOLSTATE_RUNNING;
key= VDTPluginImages.KEY_TOOLSTATE_RUNNING;
} else if (tool.isWaiting()){
iconName=VDTPluginImages.ICON_TOOLSTATE_WAITING;
key= VDTPluginImages.KEY_TOOLSTATE_WAITING;
} else if (tool.isAlmostDone()&& (tool.getState()==TOOL_STATE.SUCCESS )){
iconName=VDTPluginImages.ICON_TOOLSTATE_ALMOST_GOOD;
key= VDTPluginImages.KEY_TOOLSTATE_ALMOST_GOOD;
} else if (tool.isAlmostDone()&& (tool.getState()==TOOL_STATE.UNKNOWN )){
iconName=VDTPluginImages.ICON_TOOLSTATE_ALMOST_WTF;
key= VDTPluginImages.KEY_TOOLSTATE_ALMOST_WTF;
} else {
switch (tool.getState()){
case NEW:
......
......@@ -44,40 +44,65 @@
label="Start remote Vivado session"
icon="door_in.png"
call="Vivado"/>
<menuitem name="VivadoSynthesis"
label="Synthesize design"
icon="Retort.png"
call="VivadoSynthesis"/>
<menu name="VivadoSynthesisTools"
label="Synthesis Tools"
icon="Retort.png">
<menuitem name="VivadoSynthesis"
label="Synthesize design"
icon="Retort.png"
call="VivadoSynthesis"/>
<menuitem name="VivadoTimingReportSynthesis"
label="Timing report"
icon="clock.png"
call="VivadoTimingReportSynthesis"/>
<menuitem name="VivadoTimimgSummaryReportSynthesis"
label="Timing summary"
icon="clock_sum.png"
call="VivadoTimimgSummaryReportSynthesis"/>
</menu>
<!-- <menuitem name="VivadoOptPlace"
label="Optimize and place design"
icon="mondrian2x2.png"
call="VivadoOptPlace"/> -->
<menu name="VivadoImplementationTools"
label="Implementation tools"
icon="process.gif">
<menuitem name="VivadoOpt"
label="Optimize design"
icon="opt_blue.png"
call="VivadoOpt"/>
<menuitem name="VivadoOpt"
label="Optimize design"
icon="opt_blue.png"
call="VivadoOpt"/>
<menuitem name="VivadoOptPower"
label="Reduce power"
icon="fire.png"
call="VivadoOptPower"/>
<menuitem name="VivadoOptPower"
label="Reduce power"
icon="fire.png"
call="VivadoOptPower"/>
<menuitem name="VivadoPlace"
label="Place design"
icon="mondrian2x2.png"
call="VivadoPlace"/>
<menuitem name="VivadoOptPhys"
label="Post-placement optimize"
icon="opt_yellow.png"
call="VivadoOptPhys"/>
<menuitem name="VivadoPlace"
label="Place design"
icon="mondrian2x2.png"
call="VivadoPlace"/>
<menuitem name="VivadoRoute"
label="Route design"
icon="route66.png"
call="VivadoRoute"/>
<menuitem name="VivadoOptPhys"
label="Post-placement optimize"
icon="opt_yellow.png"
call="VivadoOptPhys"/>
<menuitem name="VivadoRoute"
label="Route design"
icon="route66.png"
call="VivadoRoute"/>
<menuitem name="VivadoTimingReportImplemented"
label="Timing report"
icon="clock.png"
call="VivadoTimingReportImplemented"/>
<menuitem name="VivadoTimimgSummaryReportImplemented"
label="Timing summary"
icon="clock_sum.png"
call="VivadoTimimgSummaryReportImplemented"/>
</menu>
<menuitem name="VivadoBitstream"
label="Generate bitstream"
icon="bitstream.png"
......
......@@ -107,12 +107,15 @@
<parameter id="VivadoProjectRoot" label="Workspace directory" tooltip="Relative (to user home directory) path of the workspace on Vivado server"
type="String" default="vdt" format="RemoteRootSyntax" readonly="false" />
<parameter id="VivadoLocalDir" label="Local Xilinx directory" tooltip="Local project subdirectroy for Xilinx Vivado generated files"
type="Pathname" default="vivado" format="CopyValue" readonly="false" />
<parameter id="VivadoRemoteDir" label="Remote Vivado directory" tooltip="Remote Vivado output subdirectroy for snapshot and result files"
type="Pathname" default="vivado_build" format="CopyValue" readonly="false" />
<parameter id="VivadoLocalResultDir" label="Local Xilinx results directory"
<parameter id="VivadoLocalDir" label="Local Vivado directory" tooltip="Local project subdirectroy for Xilinx Vivado snapshot files"
type="Pathname" default="vivado_state" format="CopyValue" readonly="false" />
<parameter id="VivadoLocalResultDir" label="Local Vivado results directory"
tooltip="Local project subdirectroy for Xilinx Vivado generated result files"
type="Pathname" default="vivado" format="CopyValue" readonly="false" />
type="Pathname" default="vivado_results" format="CopyValue" readonly="false" />
<parameter id="VivadoLogDir" label="Local Vivado tool logsx directory" tooltip="Local project subdirectroy for Xilinx Vivado tools log files"
type="Pathname" default="vivado_logs" format="CopyValue" readonly="false" />
......@@ -217,6 +220,7 @@
<group name="Vivado" label="Vivado general properties">
"part"
"VivadoProjectRoot"
"VivadoRemoteDir"
"VivadoLocalDir"
"VivadoLocalResultDir"
"VivadoLogDir"
......
......@@ -17,6 +17,9 @@
<action-menu>
<action label="Generate bitstream" resource="" icon="bitstream.png" />
</action-menu>
<depends-list>
<depends state="SnapshotRoute"/>
</depends-list>
<parameter id="SkipPreBitstream" label="Skip pre-bitstream" tooltip="Do not run pre bitstream TCL commands"
default="false" type= "Boolean" format="None"/>
<!-- left from synthesis, may need update-->
......@@ -43,7 +46,7 @@
<!-- write_bitstream arguments -->
<parameter id="filename" label="Bitstream filename" tooltip= "Bitstream file name (will add *.bit extension)."
<parameter id="rawfile" label="Bitstream filename" tooltip= "Bitstream file name (will add *.bit extension)."
default="%%ProjectName" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="force" label="Force (overwrite)" tooltip= "Overwrite existent files."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
......@@ -60,7 +63,7 @@
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="reference_bitfile" label="Read reference bitfile" tooltip= "Read reference bitstream file."
default="" visible="true" omit="" type="Filename" format="Dash"/>
default="" visible="true" omit="" type="Filename" format="CopyValue"/>
<parameter id="quiet_bit" outid="quiet" label="Quiet" tooltip= "Ignore errors, return TCL_OK in any case"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="verbose_bit" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
......@@ -106,9 +109,11 @@
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter id="VivadoBitstreamActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
<input>
<group name="General">
......@@ -121,7 +126,7 @@
"PreBitstreamTCL"
</group>
<group name="Bitstream">
"filename"
"rawfile"
"force"
"raw_bitfile"
"no_binary_bitfile"
......@@ -161,9 +166,9 @@
"-c"
"rsync -avrR -e ssh"
<!-- from: (trying full name) -->
"%reference_bitfile"
"%VivadoLocalResultDir/%reference_bitfile"
<!-- to: -->
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/build"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%VivadoRemoteDir"
";"
</line>
</if-not>
......@@ -171,13 +176,13 @@
<line name="vivado_run_bitstream"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="write_bitstream completed successfully"
log=""
stdout="parser_VivadoBitstream">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-bitstream TCL commands (if specified) -->
<if SkipPreBitstream="false">
......@@ -190,16 +195,18 @@
</if>
<!-- Run routing -->
"write_bitstream "
"%filename"
"%force"
"%raw_bitfile"
"%no_binary_bitfile"
"%readback_file"
"%logic_location_file"
"%bin_file"
"%reference_bitfile"
<if-not reference_bitfile="">
"-reference_bitfile %VivadoRemoteDir/%reference_bitfile"
</if-not>
"%quiet_bit"
"%verbose_bit"
"%VivadoRemoteDir/%rawfile"
"\n"
"puts \"@@FINISH@@\"\n"
</line>
......@@ -207,7 +214,7 @@
"-c"
"mkdir -p %VivadoLocalResultDir ;"
"rsync -avr -e ssh"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/build/%filename.*"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%VivadoRemoteDir/%rawfile.*"
"%VivadoLocalResultDir/"
</line>
<line name="parser_VivadoBitstream"
......
......@@ -46,14 +46,14 @@
<line name="vivado_restore"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
failure="ERROR"
prompt="@@FINISH@@"
log="">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
"open_checkpoint %%StateFile\n"
"open_checkpoint %VivadoRemoteDir/%%StateFile\n"
"puts \"@@FINISH@@\"\n"
</line>
</output>
......@@ -71,21 +71,21 @@
<line name="vivado_save"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
failure="ERROR"
log="">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
"write_checkpoint -force %%StateFile\n"
"write_checkpoint -force %VivadoRemoteDir/%%StateFile\n"
"puts \"@@FINISH@@\"\n"
</line>
<line name="vivado_copy_after_save">
"-c"
"mkdir -p %VivadoLocalDir ;"
"rsync -avr -e ssh"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%%StateFile"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%VivadoRemoteDir/%%StateFile"
"%%StateDir/"
</line>
</output>
......
......@@ -61,8 +61,6 @@
sep=""
success="Finished parsing RTL primitives"
prompt="@@FINISH@@">
<!-- "cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"-->
"puts \"@@FINISH@@\"\n"
</line>
......
......@@ -32,6 +32,11 @@
<action-menu>
<action label="Optimize" resource="" icon="opt_blue.png" />
</action-menu>
<depends-list>
<depends state="SnapshotSynth"/>
</depends-list>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipOptimization" label="Skip optimize" tooltip="Do not run opt_design"
......@@ -172,13 +177,13 @@
<line name="vivado_run_opt"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="opt_design completed successfully"
log=""
stdout="parser_VivadoOpt">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
......
......@@ -29,11 +29,13 @@
disable="DisableVivadoOptPhys"
autosave="AutosaveVivadoOptPhys"
save="SaveVivadoOptPhys"
>
<action-menu>
<action label="Post placement optimize" resource="" icon="opt_yellow.png" />
</action-menu>
<depends-list>
<depends state="SnapshotPlace"/>
</depends-list>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipPhysOpt" label="Skip physical optimize" tooltip="Do not run phys_opt_design"
......@@ -192,13 +194,13 @@
<line name="vivado_run_opt_phys"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="phys_opt_design completed successfully"
log=""
stdout="parser_VivadoOptPhys">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
......
......@@ -66,6 +66,9 @@
<action-menu>
<action label="Optimize and Place" resource="" icon="mondrian2x2.png" />
</action-menu>
<depends-list>
<depends state="SnapshotSynth"/>
</depends-list>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipOptimization" label="Skip optimize" tooltip="Do not run opt_design"
......@@ -309,13 +312,13 @@
<line name="vivado_run_opt"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="phys_opt_design completed successfully"
log=""
stdout="parser_VivadoOpt">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
......
......@@ -21,6 +21,9 @@
<action-menu>
<action label="Power optimize" resource="" icon="fire.png" />
</action-menu>
<depends-list>
<depends state="SnapshotOpt"/>
</depends-list>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipPowerOptimization" label="skip power optimize" tooltip="Do not run power_opt_design"
......@@ -127,13 +130,13 @@
<line name="vivado_run_opt_pwr"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="power_opt_design completed successfully"
log=""
stdout="parser_VivadoOptPwr">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
......
......@@ -43,6 +43,9 @@
<action-menu>
<action label="Place" resource="" icon="mondrian2x2.png" />
</action-menu>
<depends-list>
<depends state="SnapshotOptPower"/>
</depends-list>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipPlacement" label="Skip place" tooltip="Do not run place_design"
......@@ -173,13 +176,13 @@
<line name="vivado_run_place"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="place_design completed successfully"
log=""
stdout="parser_VivadoPlace">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
......
......@@ -33,6 +33,9 @@
<action-menu>
<action label="Route" resource="" icon="route66.png" />
</action-menu>
<depends-list>
<depends state="SnapshotOptPhys"/>
</depends-list>
<parameter id="SkipPreRoute" label="Skip pre-route" tooltip="Do not run pre route TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipSnapshotRoute" label="Skip snapshot save" tooltip="Do not create snapshot after route"
......@@ -197,13 +200,13 @@
<line name="vivado_run_route"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="route_design completed successfully"
log=""
stdout="parser_VivadoRoute">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-route TCL commands (if specified) -->
<if SkipPreRoute="false">
......
......@@ -267,14 +267,14 @@
<line name="vivado_run_synth"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="synth_design completed successfully"
log=""
stdout="parser_VivadoSynth">
<!-- synth_design completed successfully -->
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
<if ResetProject="true">
"reset_project -quiet\n"
</if>
......
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<tool name="VivadoTimingReportImplemented"
label="Report post-implementation timimg"
project="FPGA_project"
interface="VivadoReportTimingInterface"
package="FPGA_package"
inherits="VivadoReportTiming"
shell="/bin/bash"
description="Report post-implementation timimg"
disable="DisableVivadoTiming"
>
<depends-list>
<depends state="SnapshotOptPhys"/>
</depends-list>
<action-menu>
<action label="Report post-implementation timing" resource="" icon="clock.png" />
</action-menu>
<parameter id="DisableVivadoTiming" label="Disable" tooltip="Disable post-implementation timing report"
default="false" type= "Boolean" format="None"/>
<!-- TODO Add (copy from proto) parameters that should be different for post and pre routing.
Or add more derivative reports. -->
<parameter id="rawfile" label="Result filename" tooltip= "Write report to the specified file."
default="%%ProjectName.timing_impl" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="append" label="Append to file" tooltip= "Append to the output file."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="return_string" label="Return string" tooltip= "Write result to TCL to be captured into variable."
default="" visible="true" omit="" type="String" format="Dash"/>
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
<parameter id="file" default="%VivadoRemoteDir/%rawfile" visible="false" omit="" type="String" format="Dash"/>
</tool>
</vdt-project>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<tool name="VivadoTimimgSummaryReportImplemented"
label="Report post-implementation timimg summary"
project="FPGA_project"
interface="VivadoReportTimingSummaryInterface"
package="FPGA_package"
inherits="VivadoReportTimingSummary"
shell="/bin/bash"
description="Report post-implementation timimg summary"
disable="DisableVivadoTimingSummary"
>
<depends-list>
<depends state="SnapshotSynth"/>
</depends-list>
<action-menu>
<action label="Report post-implementation timing summary" resource="" icon="clock_sum.png" />
</action-menu>
<parameter id="DisableVivadoTimingSummary" label="Disable" tooltip="Disable post-implementation timing summary report"
default="false" type= "Boolean" format="None"/>
<!-- TODO Add (copy from proto) parameters that should be different for post and pre routing.
Or add more derivative reports. -->
<parameter id="rawfile" label="Result filename" tooltip= "Write report to the specified file."
default="%%ProjectName.timing_summary_impl" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="append" label="Append to file" tooltip= "Append to the output file."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="return_string" label="Return string" tooltip= "Write result to TCL to be captured into variable."
default="" visible="true" omit="" type="String" format="Dash"/>
<parameter id="datasheet" label="Datasheet info" tooltip= "Generate datasheet information for the report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
<parameter id="file" default="%VivadoRemoteDir/%rawfile" visible="false" omit="" type="String" format="Dash"/>
</tool>
</vdt-project>
......@@ -37,9 +37,13 @@
abstract="true"
>
<action-menu>
<action label="Report timing summary" resource="" icon="clock.png" />
<action label="Report timing summary" resource="" icon="clock_sum.png" />
</action-menu>
<parameter id="SkipTCL" label="Skip TCL commands" tooltip="Do not run pre-timing summary TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipTCL" label="Skip TCL commands" tooltip="Do not run pre-timing summary TCL commands"
default="false" type= "Boolean" format="None"/>
<!-- left from synthesis, may need update-->
......@@ -96,15 +100,15 @@
tooltip= "Report timing on unconstrained paths in the design."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="significant_digits" label="Number of digits" tooltip= "Number of significat digits ion the output."
default="3" visible="true" omit="1" type="Cardinal_0_3" format="Dash"/>
default="3" visible="true" omit="3" type="Cardinal_0_3" format="Dash"/>
<parameter id="no_header" label="No header" tooltip= "Do not add header information to the report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="file" label="Result filename" tooltip= "Write report to the specified file."
<parameter id="rawfile" label="Result filename" tooltip= "Write report to the specified file."
default="%%ProjectName.timing_summary" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="append" label="Append to file" tooltip= "Append to the output file."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="return_string" label="Return string" tooltip= "Write result to TCL to be captured into variable."
default="" visible="true" omit="" type="String" format="CopyValue"/>
default="" visible="true" omit="" type="String" format="Dash"/>
<parameter id="datasheet" label="Datasheet info" tooltip= "Generate datasheet information for the report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="quiet" outid="quiet" label="Quiet" tooltip= "Ignore errors, return TCL_OK in any case"
......@@ -146,10 +150,9 @@
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter id="VivadoTimingSummaryActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
<parameter id="file" default="%VivadoRemoteDir/%rawfile" visible="false" omit="" type="String" format="Dash"/>
<input>
<group name="General">
......@@ -176,7 +179,7 @@
"report_unconstrained"
"significant_digits"
"no_header"
"file"
"rawfile"
"append"
"return_string"
"datasheet"
......@@ -206,13 +209,13 @@
<line name="vivado_run_timing_summary"
dest="VivadoConsole"
mark="``"
sep=""
sep=" "
prompt="@@FINISH@@"
success="report_timing_summary completed successfully"
failure="ERROR"
log=""
stdout="parser_VivadoTimingSummary">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
<!-- Run pre-bitstream TCL commands (if specified) -->
<if SkipTCL="false">
......@@ -248,11 +251,11 @@
"\n"
"puts \"@@FINISH@@\"\n"
</line>
<line name="vivado_copy_after_bitstream">
<line name="vivado_copy_after_timing_summary">
"-c"
"mkdir -p %VivadoLocalResultDir ;"
"rsync -avr -e ssh"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/build/%file"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%VivadoRemoteDir/%rawfile"
"%VivadoLocalResultDir/"
</line>
<line name="parser_VivadoTimingSummary"
......
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<tool name="VivadoTimimgSummaryReportSynthesis"
label="Report post-synthesis timimg summary"
project="FPGA_project"
interface="VivadoReportTimingSummaryInterface"
package="FPGA_package"
inherits="VivadoReportTimingSummary"
shell="/bin/bash"
description="Report post-synthesis timimg summary"
disable="DisableVivadoTimingSummary"
>
<depends-list>
<depends state="SnapshotSynth"/>
</depends-list>
<action-menu>
<action label="Report post-synthesis timing summary" resource="" icon="clock_sum.png" />
</action-menu>
<parameter id="DisableVivadoTimingSummary" label="Disable" tooltip="Disable post-synthesis timing summary report"
default="false" type= "Boolean" format="None"/>
<!-- TODO Add (copy from proto) parameters that should be different for post and pre routing.
Or add more derivative reports. -->
<parameter id="rawfile" label="Result filename" tooltip= "Write report to the specified file."
default="%%ProjectName.timing_summary_synth" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="append" label="Append to file" tooltip= "Append to the output file."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="return_string" label="Return string" tooltip= "Write result to TCL to be captured into variable."
default="" visible="true" omit="" type="String" format="Dash"/>
<parameter id="datasheet" label="Datasheet info" tooltip= "Generate datasheet information for the report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
<parameter id="file" default="%VivadoRemoteDir/%rawfile" visible="false" omit="" type="String" format="Dash"/>
</tool>
</vdt-project>
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<tool name="VivadoTimingReportSynthesis"
label="Report post-synthesis timimg"
project="FPGA_project"
interface="VivadoReportTimingInterface"
package="FPGA_package"
inherits="VivadoReportTiming"
shell="/bin/bash"
description="Report post-synthesis timimg"
disable="DisableVivadoTiming"
>
<depends-list>
<depends state="SnapshotSynth"/>
</depends-list>
<action-menu>
<action label="Report post-synthesis timing" resource="" icon="clock.png" />
</action-menu>
<parameter id="DisableVivadoTiming" label="Disable" tooltip="Disable post-synthesis timing report"
default="false" type= "Boolean" format="None"/>
<!-- TODO Add (copy from proto) parameters that should be different for post and pre routing.
Or add more derivative reports. -->
<parameter id="rawfile" label="Result filename" tooltip= "Write report to the specified file."
default="%%ProjectName.timing_synth" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="append" label="Append to file" tooltip= "Append to the output file."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="return_string" label="Return string" tooltip= "Write result to TCL to be captured into variable."
default="" visible="true" omit="" type="String" format="Dash"/>
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
<parameter id="file" default="%VivadoRemoteDir/%rawfile" visible="false" omit="" type="String" format="Dash"/>
</tool>
</vdt-project>
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