Commit e1ec9699 authored by Andrey Filippov's avatar Andrey Filippov

Cleanup, bug fixes

parent bd3994cd
......@@ -138,6 +138,7 @@ public class VDT {
// Build in generators for tool description
//-------------------------------------------------------------------------
public static final String GENERATOR_ID_TOOL_NAME = "ToolName";
public static final String GENERATOR_ID_PROJECT_NAME = "ProjectName";
public static final String GENERATOR_ID_EXE_PATH = "ExePath";
public static final String GENERATOR_ID_PROJECT_PATH = "ProjectPath";
......
......@@ -136,6 +136,7 @@ public class XMLConfig extends Config {
static final String CONTEXT_TOOL_SAVE = "save"; // tool name that saves the state to result file (snapshot)
static final String CONTEXT_TOOL_AUTOSAVE = "autosave"; // Parameter name of boolean type that controls automatic save after success
static final String CONTEXT_TOOL_ABSTRACT = "abstract"; // true for the prototype tools used only for inheritance by others
static final String CONTEXT_TOOL_PRIORITY = "priority"; // lower the value, first to run among otherwise equivalent report tools (taht do not change state)
static final String CONTEXT_LINEBLOCK_TAG = "line";
......@@ -646,6 +647,20 @@ public class XMLConfig extends Config {
String autoSaveString = getAttributeValue(contextNode, CONTEXT_TOOL_AUTOSAVE);
String isAbstractAttr = getAttributeValue(contextNode, CONTEXT_TOOL_ABSTRACT);
String priorityString = getAttributeValue(contextNode, CONTEXT_TOOL_PRIORITY);
double priority=Double.NaN;;
if (priorityString!=null){
try {
priority=Double.parseDouble(priorityString);
} catch (Exception e){
throw new ConfigException("Tool priority '" + contextName +
"' has invalid priority string '"+priorityString+"' - floating point value is expected.");
}
}
boolean isAbstract;
if(isAbstractAttr != null) {
checkBoolAttr(isAbstractAttr, CONTEXT_TOOL_ABSTRACT);
......@@ -705,6 +720,7 @@ public class XMLConfig extends Config {
saveString,
autoSaveString,
isAbstract,
priority,
null,
null,
null);
......
......@@ -241,7 +241,7 @@ public abstract class Context {
// calling them with dryRun=true;
for (Tool tool : ToolsCore.getConfig().getContextManager().getToolList()){
try {
tool.buildParams(false);
tool.buildParams(true); // was false
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_TOOL_SEQUENCE)) {
if (tool.hashMatch()) System.out.println("recalcHashCodes(): "+tool.getName()+
" hashMatch()="+tool.hashMatch()+
......@@ -249,7 +249,7 @@ public abstract class Context {
" getLastRunHash()="+tool.getLastRunHash());
}
} catch (ToolException e) {
System.out.println("failed buildParams(false) on tool="+tool.getName()+", e="+e.toString());
System.out.println("failed buildParams(true) on tool="+tool.getName()+", e="+e.toString());
}
}
}
......@@ -406,7 +406,7 @@ public abstract class Context {
String [] params=item.getParams();
if (params!=null) for (int i=0;i<params.length;i++){
currentHash += params[i].hashCode();
// if (name.equals("VivadoSynthesis")){
// if (name.equals("VivadoBitstream")){
// System.out.println(params[i]+": "+currentHash);
// }
......@@ -417,8 +417,8 @@ public abstract class Context {
// Seems that during build it worked on a working copy of the tool, so calculated parameter did not get back
Tool proto=ToolsCore.getConfig().getContextManager().findTool(name);
// System.out.println("Calculated currentHash for "+name+"="+currentHash);
// if (name.equals("VivadoSynthesis")){
// System.out.println("Check here: VivadoSynthesis");
// if (name.equals("VivadoBitstream")){
// System.out.println("Check here: VivadoBitstream");
// }
if (proto!=null){
if (proto!=this){
......
......@@ -55,6 +55,7 @@ public class ContextManager {
for(Tool toolContext : toolContexts)
toolContext.init(config);
sortToolContexts(); // according to priority for selecting "report" tools
initialized = true;
}
......@@ -92,6 +93,21 @@ public class ContextManager {
toolContexts.addAll(contexts);
}
public void sortToolContexts() throws ConfigException {
boolean inOrder=false;
while (!inOrder){
inOrder=true;
for (int i=0;i<(toolContexts.size()-1);i++){
if (toolContexts.get(i).getPriority()>toolContexts.get(i+1).getPriority()){
toolContexts.add(i,toolContexts.remove(i+1));
inOrder=false;
}
}
}
}
public Context findContext(String contextName) {
if(installationContext != null && installationContext.getName().equals(contextName))
return installationContext;
......
/*******************************************************************************
* Copyright (c) 2006 Elphel, Inc and Excelsior, LLC.
* Copyright (c) 2014 Elphel, Inc.
* This file is a part of Eclipse/VDT plug-in.
* Eclipse/VDT plug-in is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your option)
* any later version.
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Eclipse/VDT plug-in is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
* Eclipse/VDT plug-in is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with Eclipse VDT plug-in; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/
package com.elphel.vdt.core.tools.generators;
......
/*******************************************************************************
* Copyright (c) 2014 Elphel, Inc.
* This file is a part of Eclipse/VDT plug-in.
* Eclipse/VDT plug-in is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Eclipse/VDT plug-in is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/
package com.elphel.vdt.core.tools.generators;
import com.elphel.vdt.VDT;
import com.elphel.vdt.core.tools.params.Tool;
/**
* Generate the name of current project.
*
* Created: 21.02.2006
* @author Lvov Konstantin
*/
public class ToolNameGenerator extends AbstractGenerator {
public static final String NAME = VDT.GENERATOR_ID_TOOL_NAME;
public String getName() {
return NAME;
}
public ToolNameGenerator()
{
super(null); // null for topFormatProcessor - this generator can not reference other parameters
}
protected String[] getStringValues() {
String toolName="";
if (topProcessor!=null){
Tool tool=topProcessor.getCurrentTool();
// System.out.println(", tool="+tool+" tool name="+((tool!=null)?tool.getName():null));
if (tool != null) {
// System.out.println(" tool="+tool.getName()+", ignoreFilter="+ignoreFilter);
toolName=tool.getName();
} else {
System.out.println("ToolNameGenerator(): topProcessor.getCurrentTool() is null");
}
} else {
System.out.println("ToolNameGenerator(): topProcessor is null");
}
return new String[]{toolName};
}
} // class ProjectNameGenerator
......@@ -295,8 +295,8 @@ public class Parameter implements Cloneable, Updateable {
//
public void setCurrentValue(String value) throws ToolException {
// if (id.equals("SimulationTopFile")){ // Andrey
// System.out.println("setCurrentValue() SimulationTopFile, value="+value);
// if (id.equals("PreBitstreamTCL")){ // Andrey
// System.out.println("setCurrentValue() PreBitstreamTCL, value="+value+", this="+this);
// }
if(type.isList())
......@@ -314,8 +314,8 @@ public class Parameter implements Cloneable, Updateable {
}
public void setCurrentValue(List<String> value) throws ToolException {
// if (id.equals("SimulationTopFile")){ // Andrey
// System.out.println("setCurrentValue() SimulationTopFile a list value");
// if (id.equals("PreBitstreamTCL")){ // Andrey
// System.out.println("setCurrentValue() PreBitstreamTCL, value="+value+", this="+this);
// }
if(!type.isList())
......
......@@ -141,6 +141,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
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 when tool need to wait for other tools to run/get restored
private double priority; // the lower the earlier tool will run among those with the same dependencies
private static void DEBUG_PRINT(String msg){
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_TOOL_SEQUENCE)) {
System.out.println(msg);
......@@ -172,6 +173,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
String saveString, // name of tool that saves the state of this tool run
String autoSaveString, // name of boolean that turns on/off auto-save after the tool run
boolean abstractTool,
double priority,
/* never used ??? */
List<Parameter> params,
List<ParamGroup> paramGroups,
......@@ -211,6 +213,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
this.saveString= saveString; // name of tool that saves the state of this tool run
this.autoSaveString= autoSaveString; // name of boolean that turns on/off auto-save after the tool run
this.abstractTool= abstractTool;
this.priority = priority;
disabled=null;
restoreTool=null;
......@@ -453,6 +456,10 @@ public class Tool extends Context implements Cloneable, Inheritable {
return imageKeysActions[actionIndex];
}
public double getPriority(){
return (Double.isNaN(priority))? 1.0: priority;
}
public List<RunFor> getRunFor(){
return runfor;
......@@ -528,6 +535,8 @@ public class Tool extends Context implements Cloneable, Inheritable {
if (restoreString== null) restoreString = baseTool.restoreString;
if (saveString== null) saveString = baseTool.saveString;
if (autoSaveString== null) autoSaveString = baseTool.autoSaveString;
// System.out.println("copyBaseAttributes(), tool="+getName());
if (Double.isNaN(priority)) priority= baseTool.priority;
// What about output lines attributes?
......@@ -856,7 +865,8 @@ public class Tool extends Context implements Cloneable, Inheritable {
* Set tool timestamp from the command timestamp (set when user launches the sequence)
*/
public void setTimeStamp(){
timeStamp=SelectedResourceManager.getDefault().getBuildStamp();
DEBUG_PRINT(getName()+".setTimeStamp()");
setTimeStamp(SelectedResourceManager.getDefault().getBuildStamp()); // sometimes (in the beginning) it is null???
}
public boolean alreadyRan(){
......@@ -868,6 +878,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
}
public void setTimeStamp(String timeStamp){
DEBUG_PRINT(getName()+".setTimeStamp("+timeStamp+")");
this.timeStamp=timeStamp;
}
......@@ -924,8 +935,8 @@ public class Tool extends Context implements Cloneable, Inheritable {
IMemento toolMemento= memento.createChild(MEMENTO_TOOL_TYPE,name);
toolMemento.putBoolean(MEMENTO_TOOL_PINNED, new Boolean(pinned));
toolMemento.putString(MEMENTO_TOOL_STATE, this.state.toString());
if (timeStamp!=null) toolMemento.putString(MEMENTO_TOOL_TIMESTAMP, timeStamp);
if (lastRunHash!=0) toolMemento.putInteger(MEMENTO_TOOL_LASTRUNHASH, lastRunHash);
if (getTimeStamp()!=null) toolMemento.putString(MEMENTO_TOOL_TIMESTAMP, getTimeStamp());
if (getLastRunHash()!=0) toolMemento.putInteger(MEMENTO_TOOL_LASTRUNHASH, getLastRunHash());
IMemento depMemento;
for(String state:dependStatesTimestamps.keySet()){
depMemento=toolMemento.createChild(MEMENTO_TOOL_STATEDEPSTAMP);
......@@ -939,7 +950,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
depMemento.putString(MEMENTO_TOOL_TIMESTAMP, dependFilesTimestamps.get(file));
// DEBUG_PRINT("file="+file+" depMemento="+ depMemento.toString());
}
// DEBUG_PRINT("*** Updated memento for tool "+name+ " memento="+toolMemento.toString());
DEBUG_PRINT("*** Updated memento for tool "+name+ " memento="+toolMemento.toString());
}
......@@ -970,7 +981,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
this.state=TOOL_STATE.NEW;
}
String timestamp=toolMemento.getString(MEMENTO_TOOL_TIMESTAMP);
if (timestamp!=null) this.timeStamp=timestamp;
if (timestamp!=null) setTimeStamp(timestamp);
Integer hc=toolMemento.getInteger(MEMENTO_TOOL_LASTRUNHASH);
if (hc!=null) lastRunHash=hc;
clearDependStamps();
......@@ -1182,6 +1193,7 @@ public class Tool extends Context implements Cloneable, Inheritable {
// private void updateContextOptions (IProject project){
public void updateContextOptions (IProject project){ // public to be able to update parameters before setting "dirty" flags
DEBUG_PRINT("~~~updateContextOptions(project) for tool "+getName());
PackageContext packageContext = getParentPackage();
if (packageContext != null) {
OptionsCore.doLoadContextOptions(packageContext);
......
......@@ -100,6 +100,7 @@ public class ToolSequence {
tool.clearDependStamps();
}
}
setToolsDirtyFlag(true); // update may be needed ?
toolFinished(null);
}
......@@ -539,6 +540,55 @@ public class ToolSequence {
DEBUG_PRINT("Report tool "+tool.getName()+" already ran in this launch, skipping");
continue;
}
if (tool.getState()==TOOL_STATE.FAILURE){
// find latest of the current states (usually just one)
// MessageUI.error("Enable breakpoints, debugging findReportTool()");
ToolStateStamp stamp=null;
for (String state:depStates){
if (openStates.keySet().contains(state)){
ToolStateStamp tss=currentStates.get(state);
if (tss!=null){
if ((stamp==null) || tss.after(stamp)){
stamp=tss;
}
}
}
}
if (stamp!=null) {
DEBUG_PRINT("stamp="+stamp.getToolStamp()+"\ntool.getTimeStamp()="+tool.getTimeStamp());
} else {
DEBUG_PRINT("stamp=null\ntool.getTimeStamp()="+tool.getTimeStamp());
}
if (tool.getTimeStamp()==null){
DEBUG_PRINT("tool.getTimeStamp()=NULL");
}
if ((stamp==null) ||(tool.getTimeStamp()==null) || stamp.after(tool.getTimeStamp()) || stamp.getToolStamp().equals(tool.getTimeStamp())){
// tool.recalcHashCodes(); // it was 0 here
try {
//Not needed anymore, as these are ran on load (before it was only for good ones)?
tool.updateContextOptions(SelectedResourceManager.getDefault().getSelectedProject()); // restoring this too, as once missed tool
// parameters when tool state was deleted
tool.buildParams(true); // recalculates hashCode for this tool, this is needed
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_TOOL_SEQUENCE)) {
System.out.println("recalcHashCodes(): "+tool.getName()+
" hashMatch()="+tool.hashMatch()+
" getCurrentHash()="+tool.getCurrentHash()+
" getLastRunHash()="+tool.getLastRunHash());
}
} catch (ToolException e) {
System.out.println("failed buildParams(true) on tool="+tool.getName()+", e="+e.toString());
}
if (tool.hashMatch()) {
DEBUG_PRINT("Report tool "+tool.getName()+" failed after the current state was created, skipping it from automatic run.");
continue;
} else {
DEBUG_PRINT("Report tool "+tool.getName()+" failed after the current state was created, but hash is different - retryting.");
DEBUG_PRINT("getLastRunHash()="+tool.getLastRunHash()+" getCurrentHash()="+tool.getCurrentHash());
}
}
// will retry again
}
DEBUG_PRINT("Report tool "+tool.getName()+" can be ran at the current state.");
return tool; // All checks passed, return this tool
}
......@@ -1223,8 +1273,11 @@ public class ToolSequence {
public String getToolStateFile(){
return toolStateFile;
}
public boolean after(ToolStateStamp after, ToolStateStamp before){
return SelectedResourceManager.afterStamp(after.getToolStamp(), before.getToolStamp());
public boolean after(ToolStateStamp after){
return SelectedResourceManager.afterStamp(after.getToolStamp(), getToolStamp());
}
public boolean after(String after){
return SelectedResourceManager.afterStamp(after, getToolStamp());
}
}
......@@ -1290,12 +1343,12 @@ public class ToolSequence {
/**
* Scan all succeeded tools and set "dirty" flag if their dependencies do not match stored ones
*
* No, do for all - good or bad (bad needed to be updateContextOptions(project) to set current parameter values -> hashCodes for considering to be auto-rerun
*/
public void setToolsDirtyFlag(boolean update){
IProject project = SelectedResourceManager.getDefault().getSelectedProject(); // should not be null when we got here
for (Tool tool : ToolsCore.getConfig().getContextManager().getToolList()){
if (tool.getState()==TOOL_STATE.SUCCESS){
// if (tool.getState()==TOOL_STATE.SUCCESS){
if (update){
// tool.updateContextOptions(project) recalculates parameters, but not the hashcodes
tool.updateContextOptions(project); // Fill in parameters - it parses here too - at least some parameters? (not in menu mode)
......@@ -1306,7 +1359,7 @@ public class ToolSequence {
}
}
tool.setDirty(!matchDependState(tool));
}
// }
}
// why did it fail?
if (SelectedResourceManager.getDefault().isToolsLinked()) {
......
......@@ -25,6 +25,8 @@ import com.elphel.vdt.core.tools.generators.FileListGenerator;
import com.elphel.vdt.core.tools.generators.FilteredSourceListGenerator;
import com.elphel.vdt.core.tools.generators.TopModulesNameGenerator;
import com.elphel.vdt.core.tools.generators.SourceListGenerator;
import com.elphel.vdt.veditor.VerilogPlugin;
import com.elphel.vdt.veditor.preference.PreferenceStrings;
public class RepeaterRecognizer implements Recognizer {
......@@ -104,7 +106,12 @@ public class RepeaterRecognizer implements Recognizer {
String separator,
FormatProcessor topProcessor)
{
System.out.println("Ever get here? RepeaterRecognizer.java:findGenerator()"); // yes, sure
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("Ever get here? RepeaterRecognizer.java:findGenerator("+genName+","+repPrefix+
","+repSuffix+","+separator+","+((topProcessor==null)?"NULL":((topProcessor.getCurrentTool()==null)?
"Null":topProcessor.getCurrentTool().getName()))+")"); // yes, sure
// repeater in the output lines - see grep.xml
}
AbstractGenerator gen=new FilteredSourceListGenerator(repPrefix, repSuffix, separator,topProcessor);
if (genName.equals(gen.getName())) return gen;
gen=new SourceListGenerator(repPrefix, repSuffix, separator);
......
......@@ -44,7 +44,8 @@ public class SimpleGeneratorRecognizer implements Recognizer {
new UserNameGenerator(),
new StateDirGenerator(processor),
new StateFileGenerator(processor),
new StateBaseGenerator(processor)
new StateBaseGenerator(processor),
new ToolNameGenerator()
// new SourceListGenerator("","",""),
// new FilteredSourceListGenerator("","","")
};
......
......@@ -35,6 +35,7 @@ import com.elphel.vdt.core.options.OptionsCore;
import com.elphel.vdt.core.tools.contexts.Context;
import com.elphel.vdt.core.tools.contexts.PackageContext;
import com.elphel.vdt.core.tools.params.ToolException;
import com.elphel.vdt.core.tools.params.ToolSequence;
import com.elphel.vdt.ui.MessageUI;
import com.elphel.vdt.ui.views.DesignFlowView;
......@@ -87,6 +88,7 @@ public class ContextOptionsDialog extends Dialog {
, e );
}
context.recalcHashCodes();
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER))
System.out.println("ContexOptionsDialog.okPressed()");
// Need to update Design menu as it uses calculated parameters
......
......@@ -328,7 +328,7 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
}
public static boolean afterStamp(String after, String before){
return parseStamp(before).after(parseStamp(after));
return parseStamp(after).after(parseStamp(before));
}
public String getChosenTarget() {
......
......@@ -64,7 +64,7 @@ public class ClearLogFiles extends ClearAction {
for (IFile file:toRemove){
try {
// file.delete(IResource.ALWAYS_DELETE_PROJECT_CONTENT ,null);
file.delete(true ,null);
file.delete(true ,null); // force
} catch (CoreException e) {
System.out.println("Could not delete "+file.getLocation().toOSString()+", exception:"+e);
}
......
......@@ -56,7 +56,7 @@ public class ClearStateFiles extends ClearAction {
if (messageBox.getReturnCode() == 0) {
for (IFile file:toRemove){
try {
file.delete(0,null);
file.delete(true,null); // force - in log files was needed
} catch (CoreException e) {
System.out.println("Could not delete "+file.getLocation().toOSString());
}
......
......@@ -59,8 +59,8 @@ abstract public class ContextsAction extends Action
this.designFlowView=designFlowView;
}
public void updateActions(){
if (this.designFlowView!=null) this.designFlowView.updateLaunchAction();
public void updateActions(boolean updateDirty){
if (this.designFlowView!=null) this.designFlowView.updateLaunchAction(updateDirty);
}
public void setContexts(List<Context> contexts) {
......
......@@ -396,8 +396,8 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
} else {
toggleLinkedTools.setImageDescriptor(VDTPluginImages.DESC_TOOLS_LINKED);
}
toolSequence.setToolsDirtyFlag(false); //boolean update) - recalculate dirty flags
fDesignFlowView.updateLaunchAction();
// toolSequence.setToolsDirtyFlag(false); //boolean update) - recalculate dirty flags
fDesignFlowView.updateLaunchAction(true); // will call toolSequence.setToolsDirtyFlag(false)
}
};
toggleLinkedTools.setToolTipText("Toggle tool dependency");
......@@ -431,7 +431,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("openInstallationPropertiesDialog()-> OK");
}
fDesignFlowView.updateLaunchAction();
fDesignFlowView.updateLaunchAction(true);
};
}
};
......@@ -462,7 +462,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("GlobalContextsAction.openDialog()-> OK");
}
fDesignFlowView.updateLaunchAction();
fDesignFlowView.updateLaunchAction(); // is it already updated?
};
}
};
......@@ -488,7 +488,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("LocalContextsAction.openDialog()-> OK");
}
fDesignFlowView.updateLaunchAction();
fDesignFlowView.updateLaunchAction(); // is it already updated?
};
}
};
......@@ -507,7 +507,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("openToolPropertiesDialog()-> OK");
}
fDesignFlowView.updateLaunchAction();
fDesignFlowView.updateLaunchAction(true);
};
// ConsoleView.getDefault().println("Action 1 executed", ConsoleView.MSG_INFORMATION);
}
......@@ -552,7 +552,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("Ran openToolLaunchDialog() ->"+result);
}
fDesignFlowView.updateLaunchAction();
fDesignFlowView.updateLaunchAction(true);
} catch (CoreException e) {
MessageUI.error(Txt.s("Action.OpenLaunchConfigDialog.Error",
new String[] {selectedItem.getLabel(), e.getMessage()}),
......@@ -627,6 +627,13 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
// Made it public to call from ContexOptionsDialog.okPressed() as launch actions might change
// private void updateLaunchAction() {
public void updateLaunchAction() {
updateLaunchAction(false);
}
public void updateLaunchAction(boolean updateDirty) {
if (updateDirty){
toolSequence.setToolsDirtyFlag(false); // if true - recalculates parameters
}
// System.out.println("DesignFlowView.updateLaunchAction()");
......@@ -1201,7 +1208,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
public void finalizeAfterVEditorDB(IMemento memento){
toolSequence.restoreCurrentStates(memento); // restore states and recalc "dirty" flags - should be after tools themselves
doLoadDesignMenu();
updateLaunchAction();
updateLaunchAction(true); // true?
}
......
......@@ -54,7 +54,7 @@ public class GlobalContextsAction extends ContextsAction {
if (VerilogPlugin.getPreferenceBoolean(PreferenceStrings.DEBUG_OTHER)) {
System.out.println("GlobalContextsAction.run()");
}
super.updateActions();
super.updateActions(true);
}
}
}
......
......@@ -63,7 +63,7 @@ public class LocalContextsAction extends ContextsAction {
if (lastSelected != null) {
if (openDialog(title, lastSelected, project)== Window.OK){
System.out.println("LocalContextsAction.run()");
super.updateActions();
super.updateActions(true);
}
}
}
......
......@@ -13,6 +13,7 @@
log-dir="VivadoLogDir"
state-dir="VivadoLocalDir"
disable="DisableVivadoBitsteam"
inherits="VivadoToolPrototype"
>
<action-menu>
<action label="Generate bitstream" resource="" icon="bitstream.png" />
......@@ -69,44 +70,22 @@
<parameter id="verbose_bit" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<!-- TODO: change to bitstream-specific problems -->
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Route" label="Route" tooltip= "Enable problems with [Route to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<!-- Other patterns copied from other commands, maybe not applicablwe here -->
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<!-- hidden (calculated) parameters -->
......@@ -138,24 +117,6 @@
"quiet_bit"
"verbose_bit"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Vivado_Tcl"
"Route"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
......@@ -180,7 +141,7 @@
prompt="@@FINISH@@"
failure="ERROR"
log=""
stdout="parser_VivadoBitstream">
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
......@@ -217,32 +178,6 @@
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%VivadoRemoteDir/%rawfile.*"
"%VivadoLocalResultDir/"
</line>
<line name="parser_VivadoBitstream"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Vivado_Tcl"
"%Route"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%OtherProblems"
<!-- TODO: change Placement to Routing? or such -->
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Bitstream:0000\]@'"
</if>
</line>
</output>
</tool>
</vdt-project>
......@@ -27,7 +27,7 @@
disable="DisableVivadoOpt"
autosave="AutosaveVivadoOpt"
save="SaveVivadoOpt"
inherits="VivadoToolPrototype"
>
<action-menu>
<action label="Optimize" resource="" icon="opt_blue.png" />
......@@ -86,39 +86,22 @@
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="verbose_opt" outid="verbose" label="verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="False" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter id="VivadoOptActionIndex" default="%%ChosenActionIndex"
......@@ -126,8 +109,6 @@
<!-- invisible/calculated parameters -->
<parameter id="AutosaveVivadoOpt" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotOpt=false : true, false"
visible="false" type="Boolean" format="None"/>
<input>
<group name="General">
"SkipPreOptimization"
......@@ -155,23 +136,6 @@
"quiet_opt"
"verbose_opt"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"Vivado_Tcl"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_opt"
......@@ -181,7 +145,7 @@
prompt="@@FINISH@@"
success="opt_design completed successfully"
log=""
stdout="parser_VivadoOpt">
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
......@@ -211,30 +175,6 @@
</if>
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoOpt"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%Vivado_Tcl"
"%OtherProblems"
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Optimization:0000\]@'"
</if>
</line>
</output>
</tool>
......
......@@ -29,6 +29,7 @@
disable="DisableVivadoOptPhys"
autosave="AutosaveVivadoOptPhys"
save="SaveVivadoOptPhys"
inherits="VivadoToolPrototype"
>
<action-menu>
<action label="Post placement optimize" resource="" icon="opt_yellow.png" />
......@@ -98,36 +99,22 @@
<parameter id="verbose_phys_opt" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
......@@ -170,23 +157,6 @@
"quiet_phys_opt"
"verbose_phys_opt"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"Vivado_Tcl"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
......@@ -198,7 +168,7 @@
prompt="@@FINISH@@"
success="phys_opt_design completed successfully"
log=""
stdout="parser_VivadoOptPhys">
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
......@@ -234,30 +204,6 @@
</if>
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoOptPhys"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%Vivado_Tcl"
"%OtherProblems"
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[PhysOpt:0000\]@'"
</if>
</line>
</output>
</tool>
......
......@@ -17,6 +17,7 @@
disable="DisableVivadoOptPower"
autosave="AutosaveVivadoOptPower"
save="SaveVivadoOptPower"
inherits="VivadoToolPrototype"
>
<action-menu>
<action label="Power optimize" resource="" icon="fire.png" />
......@@ -54,36 +55,22 @@
<parameter id="verbose_pwr_opt" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
......@@ -109,22 +96,6 @@
"quiet_pwr_opt"
"verbose_pwr_opt"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"Vivado_Tcl"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_opt_pwr"
......@@ -134,7 +105,7 @@
prompt="@@FINISH@@"
success="power_opt_design completed successfully"
log=""
stdout="parser_VivadoOptPwr">
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
......@@ -156,30 +127,6 @@
</if>
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoOptPwr"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%Vivado_Tcl"
"%OtherProblems"
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Power:0000\]@'"
</if>
</line>
</output>
</tool>
......
......@@ -39,6 +39,7 @@
disable="DisableVivadoPlace"
autosave="AutosaveVivadoPlace"
save="SaveVivadoPlace"
inherits="VivadoToolPrototype"
>
<action-menu>
<action label="Place" resource="" icon="mondrian2x2.png" />
......@@ -93,36 +94,22 @@
<parameter id="verbose_place" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<!-- hidden (calculated) parameters -->
......@@ -155,22 +142,6 @@
"quiet_place"
"verbose_place"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"Vivado_Tcl"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_place"
......@@ -180,7 +151,7 @@
prompt="@@FINISH@@"
success="place_design completed successfully"
log=""
stdout="parser_VivadoPlace">
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
......@@ -206,30 +177,6 @@
</if>
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoPlace"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%Vivado_Tcl"
"%OtherProblems"
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Placement:0000\]@'"
</if>
</line>
</output>
</tool>
......
......@@ -90,7 +90,7 @@
<!-- TODO: change Placement to Routing? or such -->
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Bitstream:0000\]@'"
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[%%ToolName:0000\]@'"
</if>
</line>
</output>
......
......@@ -29,6 +29,7 @@
disable="DisableVivadoRoute"
autosave="AutosaveVivadoRoute"
save="SaveVivadoRoute"
inherits="VivadoToolPrototype"
>
<action-menu>
<action label="Route" resource="" icon="route66.png" />
......@@ -98,43 +99,22 @@
<parameter id="verbose_route" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<!-- TODO: change to router-specific problems -->
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Route" label="Route" tooltip= "Enable problems with [Route to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<!-- Other patterns copied from other commands, maybe not applicablwe here -->
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="AutosaveVivadoRoute" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotRoute=false : true, false"
visible="false" type="Boolean" format="None"/>
......@@ -174,25 +154,6 @@
"quiet_route"
"verbose_route"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Vivado_Tcl"
"Route"
"---"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
......@@ -204,7 +165,7 @@
prompt="@@FINISH@@"
success="route_design completed successfully"
log=""
stdout="parser_VivadoRoute">
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
......@@ -236,32 +197,6 @@
"\n"
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoRoute"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Vivado_Tcl"
"%Route"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%OtherProblems"
<!-- TODO: change Placement to Routing? or such -->
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Routing:0000\]@'"
</if>
</line>
</output>
</tool>
......
......@@ -171,55 +171,30 @@
format="read_xdc_syntax" default="%ConstraintsFiles" visible="false" />
<parameter id="FilteredSourceListPar" type="Filelist" label="FilteredSourceListPar"
format="ParamListSyntax" default="%%FilteredSourceList" readonly="false" visible="true" />
<!-- <parameter id="read_xdc" type="Filelist" format="read_xdc_syntax" label="" tooltip="read_xdc"
default="%ConstraintsFiles" visible="false" /> -->
<!-- <parameter id="top" label="" tooltip= "Top module of the design"
default="%%TopModule" visible="false" omit="" type="String" format="Dash"/> -->
<parameter id="VivadoSynthActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
<!-- parser parameters -->
<!--
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Synth" label="Synth" tooltip= "Enable problems with [Synth to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
-->
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<!-- invisible/calculated parameters -->
<parameter id="AutosaveVivadoSynthesis" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotSynth=false : true, false"
visible="false" type="Boolean" format="None"/>
<parameter id="condConstraintsFiles" default="?%%ChosenActionIndex=0 : %ConstraintsFiles, "
visible="false" type="Filelist" format="None"/>
<!--
<parameter id="blabla1" label="blabla1" tooltip= "blabla1"
default="%blabla2"
visible="true" type="String" format="CopyValue"/>
<parameter id="blabla2" label="blabla2" tooltip= "blabla2"
default="%blabla1"
visible="true" type="String" format="CopyValue"/>
-->
<input>
<group name="General">
......@@ -258,21 +233,6 @@
"quiet"
"verbose"
</group>
<!--
<group name="Parser">
"NoFileProblem"
"Memdata"
"Synth"
"Netlist"
"Opt"
"Project"
"Timing"
"OtherProblems"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
-->
</input>
<output>
......@@ -347,31 +307,6 @@
"\n"
"puts \"@@FINISH@@\"\n"
</line>
<!--
<line name="parser_VivadoSynth"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep - -line-buffered -v \"license\""
</if>
"%Memdata"
"%Synth"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%OtherProblems"
<if NoFileProblem="true">
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Synthesis:0000\]@'"
</if>
</line>
-->
<!-- Add [Synthesis:0000] to lines that do not have [file:line] - then "Synthesis" will appear in "Problems" location-->
</output>
</tool>
......
......@@ -33,5 +33,22 @@
<!-- same value as %file, but will appear withou "-file" prefix -->
<parameter id="file" default="%VivadoRemoteDir/%rawfile" visible="false" omit="" type="String" format="Dash"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
</tool>
</vdt-project>
......@@ -51,6 +51,8 @@
state-dir="VivadoLocalDir"
disable="DisableVivadoTiming"
abstract="true"
inherits="VivadoToolPrototype"
priority="0.5"
>
<action-menu>
<action label="Report timing" resource="" icon="clock.png" />
......@@ -195,39 +197,22 @@
<parameter id="verbose" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Route" label="Route" tooltip= "Enable problems with [Route to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<!-- Other patterns copied from other commands, maybe not applicablwe here -->
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
......@@ -278,23 +263,6 @@
"quiet"
"verbose"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Vivado_Tcl"
"Route"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_timing"
......@@ -304,7 +272,7 @@
prompt="@@FINISH@@"
failure="ERROR"
log=""
stdout="parser_VivadoTiming">
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
......@@ -361,32 +329,6 @@
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%VivadoRemoteDir/%rawfile"
"%VivadoLocalResultDir/"
</line>
<line name="parser_VivadoTiming"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Vivado_Tcl"
"%Route"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%OtherProblems"
<!-- TODO: change Placement to Routing? or such -->
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[TimingReport:0000\]@'"
</if>
</line>
</output>
</tool>
</vdt-project>
......@@ -35,6 +35,8 @@
log-dir="VivadoLogDir"
state-dir="VivadoLocalDir"
abstract="true"
inherits="VivadoToolPrototype"
priority="0.4"
>
<action-menu>
<action label="Report timing summary" resource="" icon="clock_sum.png" />
......@@ -116,40 +118,22 @@
<parameter id="verbose" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Route" label="Route" tooltip= "Enable problems with [Route to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<!-- Other patterns copied from other commands, maybe not applicablwe here -->
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<!-- 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"/>
......@@ -187,23 +171,6 @@
"quiet"
"verbose"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Vivado_Tcl"
"Route"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_timing_summary"
......@@ -213,7 +180,7 @@
prompt="@@FINISH@@"
failure="ERROR"
log=""
stdout="parser_VivadoTimingSummary">
stdout="parser_Vivado">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/%VivadoRemoteDir\n"
"file mkdir $outputDir\n"
......@@ -258,32 +225,6 @@
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%VivadoRemoteDir/%rawfile"
"%VivadoLocalResultDir/"
</line>
<line name="parser_VivadoTimingSummary"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Vivado_Tcl"
"%Route"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%OtherProblems"
<!-- TODO: change Placement to Routing? or such -->
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[TimingSummary:0000\]@'"
</if>
</line>
</output>
</tool>
</vdt-project>
......@@ -34,5 +34,21 @@
<!-- same value as %file, but will appear withou "-file" prefix -->
<parameter id="file" default="%VivadoRemoteDir/%rawfile" visible="false" omit="" type="String" format="Dash"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
<parameter id="Route"/>
<parameter id="Memdata"/>
<parameter id="Synth"/>
<parameter id="Netlist"/>
<parameter id="Opt"/>
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
</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