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