Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vdt-plugin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
vdt-plugin
Commits
d8bf8483
Commit
d8bf8483
authored
Feb 24, 2014
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Tool dependency, sequencing, wait for VEditor database
parent
e166573a
Changes
18
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
810 additions
and
121 deletions
+810
-121
VDT.java
src/com/elphel/vdt/VDT.java
+2
-0
VerilogUtils.java
src/com/elphel/vdt/VerilogUtils.java
+5
-1
ParamBasedListOption.java
src/com/elphel/vdt/core/options/ParamBasedListOption.java
+1
-1
ValueBasedListOption.java
src/com/elphel/vdt/core/options/ValueBasedListOption.java
+1
-1
XMLConfig.java
src/com/elphel/vdt/core/tools/config/xml/XMLConfig.java
+17
-7
Context.java
src/com/elphel/vdt/core/tools/contexts/Context.java
+12
-1
Tool.java
src/com/elphel/vdt/core/tools/params/Tool.java
+207
-58
ToolSequence.java
src/com/elphel/vdt/core/tools/params/ToolSequence.java
+380
-4
ParamRepeaterRecognizer.java
...ore/tools/params/recognizers/ParamRepeaterRecognizer.java
+19
-3
SimpleGeneratorRecognizer.java
...e/tools/params/recognizers/SimpleGeneratorRecognizer.java
+3
-1
SelectedResourceManager.java
src/com/elphel/vdt/ui/variables/SelectedResourceManager.java
+50
-7
DesignFlowView.java
src/com/elphel/vdt/ui/views/DesignFlowView.java
+56
-6
DesignMenuModel.java
src/com/elphel/vdt/ui/views/DesignMenuModel.java
+3
-4
BasicInterface.xml
tools/BasicInterface.xml
+5
-0
FPGA_project.xml
tools/FPGA_project.xml
+9
-9
IVerilog.xml
tools/Verilog/IVerilog.xml
+9
-5
vivado_synthesis.xml
tools/Xilinx/vivado_synthesis.xml
+26
-10
vivado_test.xml
tools/Xilinx/vivado_test.xml
+5
-3
No files found.
src/com/elphel/vdt/VDT.java
View file @
d8bf8483
...
@@ -158,5 +158,7 @@ public class VDT {
...
@@ -158,5 +158,7 @@ public class VDT {
public
static
final
String
GENERATOR_ID_STATE_DIR
=
"StateDir"
;
public
static
final
String
GENERATOR_ID_STATE_DIR
=
"StateDir"
;
public
static
final
String
GENERATOR_ID_STATE_FILE
=
"StateFile"
;
public
static
final
String
GENERATOR_ID_STATE_FILE
=
"StateFile"
;
public
static
final
String
TIME_STAMP_FORMAT
=
"yyyyMMddHHmmssSSS"
;
}
// class VDT
}
// class VDT
src/com/elphel/vdt/VerilogUtils.java
View file @
d8bf8483
...
@@ -24,8 +24,10 @@ import java.util.Iterator;
...
@@ -24,8 +24,10 @@ import java.util.Iterator;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.Vector
;
import
java.util.Vector
;
import
com.elphel.vdt.ui.variables.SelectedResourceManager
;
import
com.elphel.vdt.veditor.VerilogPlugin
;
import
com.elphel.vdt.veditor.VerilogPlugin
;
import
com.elphel.vdt.veditor.document.HdlDocument
;
import
com.elphel.vdt.veditor.document.HdlDocument
;
import
com.elphel.vdt.veditor.document.VerilogDocument
;
import
com.elphel.vdt.veditor.parser.OutlineContainer
;
import
com.elphel.vdt.veditor.parser.OutlineContainer
;
import
com.elphel.vdt.veditor.parser.OutlineDatabase
;
import
com.elphel.vdt.veditor.parser.OutlineDatabase
;
//import com.elphel.vdt.veditor.parser.vhdl.VhdlOutlineElementFactory.PackageDeclElement;
//import com.elphel.vdt.veditor.parser.vhdl.VhdlOutlineElementFactory.PackageDeclElement;
...
@@ -67,7 +69,9 @@ public class VerilogUtils {
...
@@ -67,7 +69,9 @@ public class VerilogUtils {
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
if
(
hdlDocument
!=
null
)
return
hdlDocument
.
getOutlineDatabase
();
/* will create a new one if does not exist */
if
(
hdlDocument
!=
null
)
return
hdlDocument
.
getOutlineDatabase
();
/* will create a new one if does not exist */
return
null
;
// Create HdlDocument from selected/restored HDLfile
hdlDocument
=
new
VerilogDocument
(
project
,
(
IFile
)
SelectedResourceManager
.
getDefault
().
getChosenVerilogFile
());
return
hdlDocument
.
getOutlineDatabase
();
/* will create a new one if does not exist */
}
}
public
static
String
[]
getExtList
(
String
str
){
public
static
String
[]
getExtList
(
String
str
){
...
...
src/com/elphel/vdt/core/options/ParamBasedListOption.java
View file @
d8bf8483
...
@@ -39,7 +39,7 @@ public class ParamBasedListOption extends ParamBasedOption {
...
@@ -39,7 +39,7 @@ public class ParamBasedListOption extends ParamBasedOption {
/**
/**
* Set the option value
* Set the option value
*
*
* @param value the sequnce of the list items separated by SEPARATOR.
* @param value the sequ
e
nce of the list items separated by SEPARATOR.
*/
*/
public
void
setValue
(
String
value
)
{
public
void
setValue
(
String
value
)
{
List
<
String
>
list
=
OptionsUtils
.
convertStringToList
(
value
);
List
<
String
>
list
=
OptionsUtils
.
convertStringToList
(
value
);
...
...
src/com/elphel/vdt/core/options/ValueBasedListOption.java
View file @
d8bf8483
...
@@ -46,7 +46,7 @@ public class ValueBasedListOption extends Option {
...
@@ -46,7 +46,7 @@ public class ValueBasedListOption extends Option {
/**
/**
* Set the option value
* Set the option value
*
*
* @param value the sequnce of the list items separated by SEPARATOR.
* @param value the sequ
e
nce of the list items separated by SEPARATOR.
*/
*/
public
void
setValue
(
String
value
)
{
public
void
setValue
(
String
value
)
{
List
<
String
>
list
=
OptionsUtils
.
convertStringToList
(
value
);
List
<
String
>
list
=
OptionsUtils
.
convertStringToList
(
value
);
...
...
src/com/elphel/vdt/core/tools/config/xml/XMLConfig.java
View file @
d8bf8483
...
@@ -114,6 +114,7 @@ public class XMLConfig extends Config {
...
@@ -114,6 +114,7 @@ public class XMLConfig extends Config {
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_STATE_TAG
=
"state"
;
static
final
String
CONTEXT_TOOL_DEPENDS_STATE_TAG
=
"state"
;
static
final
String
CONTEXT_TOOL_DEPENDS_FILES_TAG
=
"files"
;
// 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"
;
...
@@ -663,7 +664,8 @@ public class XMLConfig extends Config {
...
@@ -663,7 +664,8 @@ public class XMLConfig extends Config {
List
<
String
>
toolExtensionsList
=
readToolExtensionsList
(
contextNode
,
contextName
);
List
<
String
>
toolExtensionsList
=
readToolExtensionsList
(
contextNode
,
contextName
);
List
<
RunFor
>
toolRunfor
=
readToolRunForList
(
contextNode
,
contextName
);
List
<
RunFor
>
toolRunfor
=
readToolRunForList
(
contextNode
,
contextName
);
List
<
String
>
toolDepends
=
readToolDependsList
(
contextNode
,
contextName
);
List
<
String
>
toolDependsStates
=
readToolDependsList
(
contextNode
,
contextName
,
false
);
List
<
String
>
toolDependsFiles
=
readToolDependsList
(
contextNode
,
contextName
,
true
);
if
(
VerilogPlugin
.
getPreferenceBoolean
(
PreferenceStrings
.
DEBUG_OTHER
))
{
if
(
VerilogPlugin
.
getPreferenceBoolean
(
PreferenceStrings
.
DEBUG_OTHER
))
{
System
.
out
.
println
(
"contextNode.getNodeValue()="
+
contextNode
.
getNodeValue
());
System
.
out
.
println
(
"contextNode.getNodeValue()="
+
contextNode
.
getNodeValue
());
...
@@ -692,7 +694,8 @@ public class XMLConfig extends Config {
...
@@ -692,7 +694,8 @@ public class XMLConfig extends Config {
toolInfo
,
toolInfo
,
toolRunfor
,
toolRunfor
,
ignoreFilter
,
ignoreFilter
,
toolDepends
,
toolDependsStates
,
toolDependsFiles
,
logDir
,
logDir
,
stateDir
,
stateDir
,
disabled
,
disabled
,
...
@@ -1045,9 +1048,12 @@ public class XMLConfig extends Config {
...
@@ -1045,9 +1048,12 @@ public class XMLConfig extends Config {
return
extList
;
return
extList
;
}
}
private
List
<
String
>
readToolDependsList
(
Node
toolNode
,
String
toolName
)
private
List
<
String
>
readToolDependsList
(
Node
toolNode
,
String
toolName
,
boolean
filesNotStates
)
throws
ConfigException
throws
ConfigException
{
{
String
filesStateTag
=
filesNotStates
?
CONTEXT_TOOL_DEPENDS_FILES_TAG:
CONTEXT_TOOL_DEPENDS_STATE_TAG
;
String
otherTag
=
(!
filesNotStates
)?
CONTEXT_TOOL_DEPENDS_FILES_TAG:
CONTEXT_TOOL_DEPENDS_STATE_TAG
;
String
toolInfo
=
"Tool '"
+
toolName
+
"'"
;
String
toolInfo
=
"Tool '"
+
toolName
+
"'"
;
List
<
String
>
depList
=
new
ArrayList
<
String
>();
List
<
String
>
depList
=
new
ArrayList
<
String
>();
...
@@ -1066,10 +1072,14 @@ public class XMLConfig extends Config {
...
@@ -1066,10 +1072,14 @@ 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_STATE_TAG
);
String
dep
=
getAttributeValue
(
node
,
filesStateTag
);
if
(
dep
==
null
)
if
(
dep
!=
null
)
{
throw
new
ConfigException
(
toolInfo
+
": Attribute '"
+
CONTEXT_TOOL_DEPENDS_STATE_TAG
+
"' is absent"
);
depList
.
add
(
dep
);
depList
.
add
(
dep
);
}
else
if
(
getAttributeValue
(
node
,
otherTag
)==
null
){
throw
new
ConfigException
(
toolInfo
+
": Both alternative attributes '"
+
CONTEXT_TOOL_DEPENDS_FILES_TAG
+
" and '"
+
CONTEXT_TOOL_DEPENDS_STATE_TAG
+
"' are absent"
);
}
}
}
return
depList
;
return
depList
;
}
}
...
...
src/com/elphel/vdt/core/tools/contexts/Context.java
View file @
d8bf8483
...
@@ -262,6 +262,9 @@ public abstract class Context {
...
@@ -262,6 +262,9 @@ public abstract class Context {
createdControlFiles
.
clear
();
createdControlFiles
.
clear
();
currentHash
=
0
;
currentHash
=
0
;
// if (name.equals("VivadoSynthesis")){
// System.out.println("1. Check here: VivadoSynthesis");
// }
while
(
commandLinesBlockIter
.
hasNext
())
{
while
(
commandLinesBlockIter
.
hasNext
())
{
CommandLinesBlock
commandLinesBlock
=
(
CommandLinesBlock
)
commandLinesBlockIter
.
next
();
CommandLinesBlock
commandLinesBlock
=
(
CommandLinesBlock
)
commandLinesBlockIter
.
next
();
...
@@ -398,15 +401,23 @@ public abstract class Context {
...
@@ -398,15 +401,23 @@ public abstract class Context {
String
[]
params
=
item
.
getParams
();
String
[]
params
=
item
.
getParams
();
if
(
params
!=
null
)
for
(
int
i
=
0
;
i
<
params
.
length
;
i
++){
if
(
params
!=
null
)
for
(
int
i
=
0
;
i
<
params
.
length
;
i
++){
currentHash
+=
params
[
i
].
hashCode
();
currentHash
+=
params
[
i
].
hashCode
();
// if (name.equals("VivadoSynthesis")){
// System.out.println(params[i]+": "+currentHash);
// }
}
}
}
}
}
}
// System.out.println("BildParam("+dryRun+"), name="+name+" currentHash="+currentHash);
// System.out.println("BildParam("+dryRun+"), name="+name+" currentHash="+currentHash);
// Seems that during build it worked on a working copy of the tool, so calculated parameter did not get back
// 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
);
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
(
proto
!=
null
){
if
(
proto
!=
null
){
if
(
proto
!=
this
){
if
(
proto
!=
this
){
System
.
out
.
println
(
"++++ Updating tool's currentHas from working copy, name="
+
name
);
System
.
out
.
println
(
"++++ Updating tool's currentHas
h
from working copy, name="
+
name
);
proto
.
setCurrentHash
(
currentHash
);
proto
.
setCurrentHash
(
currentHash
);
}
}
...
...
src/com/elphel/vdt/core/tools/params/Tool.java
View file @
d8bf8483
This diff is collapsed.
Click to expand it.
src/com/elphel/vdt/core/tools/params/ToolSequence.java
View file @
d8bf8483
This diff is collapsed.
Click to expand it.
src/com/elphel/vdt/core/tools/params/recognizers/ParamRepeaterRecognizer.java
View file @
d8bf8483
...
@@ -38,9 +38,25 @@ public class ParamRepeaterRecognizer extends RepeaterRecognizer {
...
@@ -38,9 +38,25 @@ public class ParamRepeaterRecognizer extends RepeaterRecognizer {
String
repSuffix
,
String
repSuffix
,
String
separator
)
String
separator
)
{
{
if
(
genName
.
equals
(
ParamFormatRecognizer
.
FORMAT_PARAM_VALUE_MARK
))
// TODO make repetitor to accept several pattern generators with only one generating a list
return
new
ValueGenerator
(
param
,
repPrefix
,
repSuffix
,
separator
);
/*
/* Trying to put these here */
if(genName.equals(ParamFormatRecognizer.FORMAT_PARAM_NAME_MARK)) {
return new AbstractGenerator() {
public String getName() {
return "ParamName (parameter '" + param.getID() +
"' of context '" + param.getContext().getName() +
"')";
}
protected String[] getStringValues() {
return new String[]{param.getOutID()};
}
};
}
*/
if
(
genName
.
equals
(
ParamFormatRecognizer
.
FORMAT_PARAM_VALUE_MARK
))
return
new
ValueGenerator
(
param
,
repPrefix
,
repSuffix
,
separator
);
/* Trying to put these here */
if
(
genName
.
equals
(
FilteredSourceListGenerator
.
NAME
))
if
(
genName
.
equals
(
FilteredSourceListGenerator
.
NAME
))
return
new
FilteredSourceListGenerator
(
repPrefix
,
repSuffix
,
separator
);
return
new
FilteredSourceListGenerator
(
repPrefix
,
repSuffix
,
separator
);
else
if
(
genName
.
equals
(
SourceListGenerator
.
NAME
))
else
if
(
genName
.
equals
(
SourceListGenerator
.
NAME
))
...
...
src/com/elphel/vdt/core/tools/params/recognizers/SimpleGeneratorRecognizer.java
View file @
d8bf8483
...
@@ -39,7 +39,9 @@ public class SimpleGeneratorRecognizer implements Recognizer {
...
@@ -39,7 +39,9 @@ public class SimpleGeneratorRecognizer implements Recognizer {
new
UserNameGenerator
(),
new
UserNameGenerator
(),
new
StateDirGenerator
(),
new
StateDirGenerator
(),
new
StateFileGenerator
(),
new
StateFileGenerator
(),
new
StateBaseGenerator
()
new
StateBaseGenerator
(),
new
SourceListGenerator
(
""
,
""
,
""
),
new
FilteredSourceListGenerator
(
""
,
""
,
""
)
};
};
public
SimpleGeneratorRecognizer
(){
public
SimpleGeneratorRecognizer
(){
...
...
src/com/elphel/vdt/ui/variables/SelectedResourceManager.java
View file @
d8bf8483
...
@@ -17,12 +17,15 @@
...
@@ -17,12 +17,15 @@
*******************************************************************************/
*******************************************************************************/
package
com
.
elphel
.
vdt
.
ui
.
variables
;
package
com
.
elphel
.
vdt
.
ui
.
variables
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.Stack
;
import
java.util.Stack
;
import
com.elphel.vdt.VDT
;
import
com.elphel.vdt.VerilogUtils
;
import
com.elphel.vdt.VerilogUtils
;
import
com.elphel.vdt.core.tools.params.Tool
;
import
com.elphel.vdt.core.tools.params.Tool
;
import
com.elphel.vdt.core.tools.params.ToolSequence
;
import
com.elphel.vdt.veditor.VerilogPlugin
;
import
com.elphel.vdt.veditor.VerilogPlugin
;
import
com.elphel.vdt.veditor.preference.PreferenceStrings
;
import
com.elphel.vdt.veditor.preference.PreferenceStrings
;
...
@@ -39,6 +42,7 @@ import org.eclipse.jface.viewers.ISelection;
...
@@ -39,6 +42,7 @@ import org.eclipse.jface.viewers.ISelection;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.ui.IEditorInput
;
import
org.eclipse.ui.IEditorInput
;
import
org.eclipse.ui.IEditorPart
;
import
org.eclipse.ui.IEditorPart
;
import
org.eclipse.ui.IMemento
;
import
org.eclipse.ui.IPageLayout
;
import
org.eclipse.ui.IPageLayout
;
import
org.eclipse.ui.ISelectionListener
;
import
org.eclipse.ui.ISelectionListener
;
import
org.eclipse.ui.ISelectionService
;
import
org.eclipse.ui.ISelectionService
;
...
@@ -59,9 +63,9 @@ import org.eclipse.ui.PlatformUI;
...
@@ -59,9 +63,9 @@ import org.eclipse.ui.PlatformUI;
*/
*/
public
class
SelectedResourceManager
implements
IWindowListener
,
ISelectionListener
{
public
class
SelectedResourceManager
implements
IWindowListener
,
ISelectionListener
{
// singleton
// singleton
private
static
SelectedResourceManager
fgDefault
=
new
SelectedResourceManager
();
private
static
SelectedResourceManager
fgDefault
=
new
SelectedResourceManager
();
private
IResource
fSelectedResource
=
null
;
private
IResource
fSelectedResource
=
null
;
private
IResource
fSelectedVerilogFile
=
null
;
private
IResource
fSelectedVerilogFile
=
null
;
private
ITextSelection
fSelectedText
=
null
;
private
ITextSelection
fSelectedText
=
null
;
...
@@ -76,6 +80,7 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
...
@@ -76,6 +80,7 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
private
String
timestamp
;
private
String
timestamp
;
private
String
ignoreFilter
=
null
;
private
String
ignoreFilter
=
null
;
private
boolean
toolsLinked
=
true
;
private
boolean
toolsLinked
=
true
;
private
ToolSequence
toolSequence
=
null
;
// to be able to reach toolSequence instance from VEditor
// private Tool selectedTool=null; // last selected tool
// private Tool selectedTool=null; // last selected tool
//
//
...
@@ -117,6 +122,14 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
...
@@ -117,6 +122,14 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
return
toolsLinked
;
return
toolsLinked
;
}
}
public
void
setToolSequence
(
ToolSequence
toolSequence
){
this
.
toolSequence
=
toolSequence
;
}
public
ToolSequence
getToolSequence
(){
return
toolSequence
;
}
/**
/**
* @see org.eclipse.ui.IWindowListener#windowActivated(org.eclipse.ui.IWorkbenchWindow)
* @see org.eclipse.ui.IWindowListener#windowActivated(org.eclipse.ui.IWorkbenchWindow)
*/
*/
...
@@ -161,7 +174,7 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
...
@@ -161,7 +174,7 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
/**
/**
* Returns the currently selected resource in the active workbench window,
* Returns the currently selected resource in the active workbench window,
* or <code>null</code> if none. If an editor is active, the resource adap
a
ter
* or <code>null</code> if none. If an editor is active, the resource adapter
* associated with the editor is returned.
* associated with the editor is returned.
*
*
* @return selected resource or <code>null</code>
* @return selected resource or <code>null</code>
...
@@ -181,7 +194,7 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
...
@@ -181,7 +194,7 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
return
fSelectedVerilogFile
;
return
fSelectedVerilogFile
;
}
}
/**
/**
* Returns resource by selection in the active workbench window,
* Returns resource by selection in the active workbench window,
* or <code>null</code> if none. If an editor is active, the resource adapater
* or <code>null</code> if none. If an editor is active, the resource adapater
* associated with the editor is returned.
* associated with the editor is returned.
...
@@ -286,17 +299,37 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
...
@@ -286,17 +299,37 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
}
}
}
}
// Build stamp/date methods
public
String
setBuildStamp
(){
public
String
setBuildStamp
(){
// timestamp=System.nanoTime();
timestamp
=
getBuildStamp
(
new
Date
());
//String fileName = new SimpleDateFormat("yyyyMMddHHmmssSSS'.txt'").format(new Date()));
timestamp
=
new
SimpleDateFormat
(
"yyyyMMddHHmmssSSS"
).
format
(
new
Date
());
return
getBuildStamp
();
return
getBuildStamp
();
}
}
public
String
getBuildStamp
(){
public
String
getBuildStamp
(){
return
timestamp
;
return
timestamp
;
}
}
public
static
String
getBuildStamp
(
Date
date
){
return
new
SimpleDateFormat
(
VDT
.
TIME_STAMP_FORMAT
).
format
(
date
);
}
public
static
Date
parseStamp
(
String
stamp
){
Date
d
;
try
{
d
=
new
SimpleDateFormat
(
VDT
.
TIME_STAMP_FORMAT
).
parse
(
stamp
);
}
catch
(
ParseException
e
)
{
d
=
new
Date
(
0
);
System
.
out
.
println
(
"Date format '"
+
stamp
+
"' not recognized, using beginning of all of times: "
+
new
SimpleDateFormat
(
VDT
.
TIME_STAMP_FORMAT
).
format
(
d
));
return
d
;
// 1970
}
return
d
;
}
public
static
boolean
afterStamp
(
String
after
,
String
before
){
return
parseStamp
(
before
).
after
(
parseStamp
(
after
));
}
public
String
getChosenTarget
()
{
public
String
getChosenTarget
()
{
return
fChosenTarget
;
return
fChosenTarget
;
...
@@ -304,10 +337,17 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
...
@@ -304,10 +337,17 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
public
String
getChosenShort
()
{
public
String
getChosenShort
()
{
return
fChosenShort
;
return
fChosenShort
;
}
}
public
IResource
getChosenVerilogFile
()
{
public
IResource
getChosenVerilogFile
()
{
return
(
fChosenVerilogFile
!=
null
)?
fChosenVerilogFile:
fSelectedVerilogFile
;
return
(
fChosenVerilogFile
!=
null
)?
fChosenVerilogFile:
fSelectedVerilogFile
;
}
}
// Used when restoring from memento
public
void
setChosenVerilogFile
(
IResource
file
)
{
fChosenVerilogFile
=
file
;
if
(
fSelectedResource
==
null
)
fSelectedResource
=
file
;
}
public
int
getChosenAction
()
{
public
int
getChosenAction
()
{
return
fChosenAction
;
return
fChosenAction
;
...
@@ -320,6 +360,9 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
...
@@ -320,6 +360,9 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
public
String
getFilter
(){
public
String
getFilter
(){
return
ignoreFilter
;
return
ignoreFilter
;
}
}
public
void
setFilter
(
String
filter
){
ignoreFilter
=
filter
;
}
...
...
src/com/elphel/vdt/ui/views/DesignFlowView.java
View file @
d8bf8483
...
@@ -58,6 +58,7 @@ import com.elphel.vdt.core.tools.params.ToolSequence;
...
@@ -58,6 +58,7 @@ import com.elphel.vdt.core.tools.params.ToolSequence;
import
com.elphel.vdt.core.tools.params.types.RunFor
;
import
com.elphel.vdt.core.tools.params.types.RunFor
;
import
com.elphel.vdt.Txt
;
import
com.elphel.vdt.Txt
;
import
com.elphel.vdt.VDT
;
import
com.elphel.vdt.VDT
;
import
com.elphel.vdt.VerilogUtils
;
import
com.elphel.vdt.veditor.VerilogPlugin
;
import
com.elphel.vdt.veditor.VerilogPlugin
;
import
com.elphel.vdt.veditor.preference.PreferenceStrings
;
import
com.elphel.vdt.veditor.preference.PreferenceStrings
;
import
com.elphel.vdt.ui.MessageUI
;
import
com.elphel.vdt.ui.MessageUI
;
...
@@ -94,7 +95,9 @@ import org.eclipse.debug.ui.DebugUITools;
...
@@ -94,7 +95,9 @@ import org.eclipse.debug.ui.DebugUITools;
public
class
DesignFlowView
extends
ViewPart
implements
ISelectionListener
{
public
class
DesignFlowView
extends
ViewPart
implements
ISelectionListener
{
// Persistance tags.
// Persistance tags.
private
static
final
String
TAG_SELECTED_RESOURCE
=
"SelectedProject"
;
private
static
final
String
TAG_SELECTED_RESOURCE
=
"SelectedProject"
;
private
static
final
String
TAG_SELECTED_HDL_FILE
=
"SelectedHdlFile"
;
private
static
final
String
TAG_SELECTED_HDL_FILTER
=
"SelectedHdlFilter"
;
private
static
final
String
TAG_LINKED_TOOLS
=
"LinkedTools"
;
private
static
final
String
TAG_LINKED_TOOLS
=
"LinkedTools"
;
private
TreeViewer
viewer
;
private
TreeViewer
viewer
;
...
@@ -267,6 +270,10 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
...
@@ -267,6 +270,10 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
setTitleToolTip
(
null
);
setTitleToolTip
(
null
);
}
}
}
}
public
void
changeMenuTitle
(
String
title
){
setPartName
(
title
);
}
private
void
hookContextMenu
()
{
private
void
hookContextMenu
()
{
MenuManager
menuMgr
=
new
MenuManager
(
"#PopupMenu"
);
MenuManager
menuMgr
=
new
MenuManager
(
"#PopupMenu"
);
...
@@ -973,6 +980,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
...
@@ -973,6 +980,7 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
DesignMenu
newDesignMenu
=
dialog
.
getSelectedDesignMenu
();
DesignMenu
newDesignMenu
=
dialog
.
getSelectedDesignMenu
();
String
newDesignMenuName
=
newDesignMenu
==
null
?
null
String
newDesignMenuName
=
newDesignMenu
==
null
?
null
:
newDesignMenu
.
getName
();
:
newDesignMenu
.
getName
();
desigMenuName
.
setValue
(
newDesignMenuName
);
// ??? Andrey
OptionsCore
.
doStoreOption
(
desigMenuName
,
project
);
OptionsCore
.
doStoreOption
(
desigMenuName
,
project
);
doLoadDesignMenu
(
newDesignMenuName
);
doLoadDesignMenu
(
newDesignMenuName
);
}
}
...
@@ -1112,19 +1120,51 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
...
@@ -1112,19 +1120,51 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
* @since 2.0
* @since 2.0
*/
*/
protected
void
restoreState
(
IMemento
memento
)
{
protected
void
restoreState
(
IMemento
memento
)
{
SelectedResourceManager
.
getDefault
().
setToolSequence
(
toolSequence
);
// to enable access through static method
Boolean
linkedTools
=
memento
.
getBoolean
(
TAG_LINKED_TOOLS
);
Boolean
linkedTools
=
memento
.
getBoolean
(
TAG_LINKED_TOOLS
);
ToolsCore
.
restoreToolsState
(
memento
);
ToolsCore
.
restoreToolsState
(
memento
);
if
(
linkedTools
==
null
)
linkedTools
=
true
;
SelectedResourceManager
.
getDefault
().
setToolsLinked
(
linkedTools
);
toggleLinkedTools
.
setChecked
(!
SelectedResourceManager
.
getDefault
().
isToolsLinked
());
String
location
=
memento
.
getString
(
TAG_SELECTED_RESOURCE
);
String
location
=
memento
.
getString
(
TAG_SELECTED_RESOURCE
);
if
(
location
==
null
)
if
(
location
==
null
)
{
System
.
out
.
println
(
"No project selected"
);
return
;
return
;
}
selectedResource
=
ResourcesPlugin
.
getWorkspace
().
getRoot
().
findMember
(
Path
.
fromPortableString
(
location
));
selectedResource
=
ResourcesPlugin
.
getWorkspace
().
getRoot
().
findMember
(
Path
.
fromPortableString
(
location
));
String
HDLLocation
=
memento
.
getString
(
TAG_SELECTED_HDL_FILE
);
if
(
HDLLocation
!=
null
)
{
IResource
HDLFile
=
ResourcesPlugin
.
getWorkspace
().
getRoot
().
findMember
(
Path
.
fromPortableString
(
HDLLocation
));
SelectedResourceManager
.
getDefault
().
setChosenVerilogFile
(
HDLFile
);
System
.
out
.
println
(
"Setting HDL file to "
+
HDLFile
.
toString
());
}
String
HDLFilter
=
memento
.
getString
(
TAG_SELECTED_HDL_FILTER
);
//SelectedResourceManager.getDefault().getFilter();
if
(
HDLFilter
!=
null
){
SelectedResourceManager
.
getDefault
().
setFilter
(
HDLFilter
);
System
.
out
.
println
(
"Setting HDL filter to "
+
HDLFilter
);
}
if
(
linkedTools
==
null
)
linkedTools
=
true
;
SelectedResourceManager
.
getDefault
().
setToolsLinked
(
linkedTools
);
toggleLinkedTools
.
setChecked
(!
SelectedResourceManager
.
getDefault
().
isToolsLinked
());
// Initialize VEditor database build
IResource
HDLFile
=
SelectedResourceManager
.
getDefault
().
getChosenVerilogFile
();
if
((
HDLFile
!=
null
)
&&
HDLFile
.
exists
()){
toolSequence
.
setUnfinishedBoot
(
memento
);
VerilogUtils
.
getTopModuleNames
((
IFile
)
HDLFile
);
}
else
{
toolSequence
.
setUnfinishedBoot
(
null
);
finalizeAfterVEditorDB
(
memento
);
}
}
public
void
finalizeAfterVEditorDB
(
IMemento
memento
){
toolSequence
.
restoreCurrentStates
(
memento
);
// restore states and recalc "dirty" flags - should be after tools themselves
doLoadDesignMenu
();
doLoadDesignMenu
();
updateLaunchAction
();
updateLaunchAction
();
}
}
/**
/**
* @see ViewPart#saveState
* @see ViewPart#saveState
...
@@ -1139,9 +1179,19 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
...
@@ -1139,9 +1179,19 @@ public class DesignFlowView extends ViewPart implements ISelectionListener {
String
location
=
selectedResource
.
getFullPath
().
toPortableString
();
String
location
=
selectedResource
.
getFullPath
().
toPortableString
();
memento
.
putString
(
TAG_SELECTED_RESOURCE
,
location
);
memento
.
putString
(
TAG_SELECTED_RESOURCE
,
location
);
}
}
IResource
HDLFile
=
SelectedResourceManager
.
getDefault
().
getChosenVerilogFile
();
if
(
HDLFile
!=
null
){
memento
.
putString
(
TAG_SELECTED_HDL_FILE
,
HDLFile
.
getFullPath
().
toPortableString
());
System
.
out
.
println
(
"memento.putString("
+
TAG_SELECTED_HDL_FILE
+
","
+
HDLFile
.
getFullPath
().
toPortableString
()+
")"
);
}
String
HDLFilter
=
SelectedResourceManager
.
getDefault
().
getFilter
();
if
(
HDLFilter
!=
null
){
memento
.
putString
(
TAG_SELECTED_HDL_FILTER
,
HDLFilter
);
System
.
out
.
println
(
"memento.putString("
+
TAG_SELECTED_HDL_FILTER
+
","
+
HDLFilter
+
")"
);
}
memento
.
putBoolean
(
TAG_LINKED_TOOLS
,
new
Boolean
(
SelectedResourceManager
.
getDefault
().
isToolsLinked
()));
memento
.
putBoolean
(
TAG_LINKED_TOOLS
,
new
Boolean
(
SelectedResourceManager
.
getDefault
().
isToolsLinked
()));
ToolsCore
.
saveToolsState
(
memento
);
ToolsCore
.
saveToolsState
(
memento
);
toolSequence
.
saveCurrentStates
(
memento
);
}
}
}
// class DesignFlowView
}
// class DesignFlowView
\ No newline at end of file
src/com/elphel/vdt/ui/views/DesignMenuModel.java
View file @
d8bf8483
...
@@ -303,7 +303,6 @@ public class DesignMenuModel {
...
@@ -303,7 +303,6 @@ public class DesignMenuModel {
public
void
measureItem
(
Event
event
){
public
void
measureItem
(
Event
event
){
super
.
measureItem
(
event
);
super
.
measureItem
(
event
);
boolean
dirty
=
tool
.
isDirty
();
boolean
pinned
=
tool
.
isPinned
()
||
!
SelectedResourceManager
.
getDefault
().
isToolsLinked
();
boolean
pinned
=
tool
.
isPinned
()
||
!
SelectedResourceManager
.
getDefault
().
isToolsLinked
();
String
iconName
,
key
;
String
iconName
,
key
;
if
(
tool
.
isRunning
()){
if
(
tool
.
isRunning
()){
...
@@ -325,7 +324,7 @@ public class DesignMenuModel {
...
@@ -325,7 +324,7 @@ public class DesignMenuModel {
key
=
VDTPluginImages
.
KEY_TOOLSTATE_NEW
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_NEW
;
break
;
break
;
case
FAILURE:
case
FAILURE:
if
(
dirty
){
if
(
tool
.
isDirtyOrChanged
()
){
iconName
=
VDTPluginImages
.
ICON_TOOLSTATE_BAD_OLD
;
iconName
=
VDTPluginImages
.
ICON_TOOLSTATE_BAD_OLD
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_BAD_OLD
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_BAD_OLD
;
}
else
{
}
else
{
...
@@ -338,7 +337,7 @@ public class DesignMenuModel {
...
@@ -338,7 +337,7 @@ public class DesignMenuModel {
iconName
=
VDTPluginImages
.
ICON_TOOLSTATE_PINNED
;
iconName
=
VDTPluginImages
.
ICON_TOOLSTATE_PINNED
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_PINNED
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_PINNED
;
}
else
{
}
else
{
if
(
dirty
){
if
(
tool
.
isDirtyOrChanged
()
){
iconName
=
VDTPluginImages
.
ICON_TOOLSTATE_GOOD_OLD
;
iconName
=
VDTPluginImages
.
ICON_TOOLSTATE_GOOD_OLD
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_GOOD_OLD
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_GOOD_OLD
;
}
else
{
}
else
{
...
@@ -352,7 +351,7 @@ public class DesignMenuModel {
...
@@ -352,7 +351,7 @@ public class DesignMenuModel {
key
=
VDTPluginImages
.
KEY_TOOLSTATE_KEPT_OPEN
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_KEPT_OPEN
;
break
;
break
;
default
:
default
:
if
(
dirty
){
if
(
tool
.
isDirtyOrChanged
()
){
iconName
=
VDTPluginImages
.
ICON_TOOLSTATE_WTF_OLD
;
iconName
=
VDTPluginImages
.
ICON_TOOLSTATE_WTF_OLD
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_WTF_OLD
;
key
=
VDTPluginImages
.
KEY_TOOLSTATE_WTF_OLD
;
}
else
{
}
else
{
...
...
tools/BasicInterface.xml
View file @
d8bf8483
...
@@ -94,6 +94,11 @@
...
@@ -94,6 +94,11 @@
<syntax
name=
"DashListIndividual"
format=
"%(-%%ParamName %%ParamValue%| %)"
/>
<syntax
name=
"DashListIndividual"
format=
"%(-%%ParamName %%ParamValue%| %)"
/>
<syntax
name=
"DashListCommon"
format=
"-%%ParamName %(%%ParamValue%| %)"
/>
<syntax
name=
"DashListCommon"
format=
"-%%ParamName %(%%ParamValue%| %)"
/>
<syntax
name=
"DashName"
format=
" -%%ParamName"
/>
<syntax
name=
"DashName"
format=
" -%%ParamName"
/>
<!--
Does not work according to 2.2.1. "Inside text-repetitor, one and only one pattern-generator is mandatory".
<syntax name="RepeatCommandSyntax" format="%(%%ParamName %%ParamValue%|\n%)" /> -->
</interface>
</interface>
...
...
tools/FPGA_project.xml
View file @
d8bf8483
...
@@ -2,8 +2,8 @@
...
@@ -2,8 +2,8 @@
<vdt-project>
<vdt-project>
<interface
name=
"FPGAPprojectInterface"
>
<interface
name=
"FPGAPprojectInterface"
>
<syntax
name=
"RemoteRootSyntax"
format=
"%%ParamValue/%%ProjectName"
/>
<syntax
name=
"RemoteRootSyntax"
format=
"%%ParamValue/%%ProjectName"
/>
<syntax
name=
"SourceListSyntax"
format=
"%(%%SourceList%| %)"
/>
<!--
<syntax name="SourceListSyntax" format="%(%%SourceList%| %)" />
<syntax
name=
"FilteredSourceListSyntax"
format=
"%(%%FilteredSourceList%| %)"
/>
<syntax name="FilteredSourceListSyntax" format="%(%%FilteredSourceList%| %)" />
-->
<syntax
name=
"ProgramSyntax"
format=
"%(%%ParamValue%|\n%)"
/>
<syntax
name=
"ProgramSyntax"
format=
"%(%%ParamValue%|\n%)"
/>
<!-- typedef -->
<!-- typedef -->
</interface>
</interface>
...
@@ -129,37 +129,37 @@
...
@@ -129,37 +129,37 @@
<parameter
id=
"SnapshotSynth"
<parameter
id=
"SnapshotSynth"
label=
"Synthesis snapshot"
tooltip=
"Name of Vivado snapshot archive after synthesis"
label=
"Synthesis snapshot"
tooltip=
"Name of Vivado snapshot archive after synthesis"
default=
"%%ProjectName-synth.dcp"
default=
"%%ProjectName-synth.dcp"
type=
"
Filename
"
format=
"CopyValue"
/>
type=
"
String
"
format=
"CopyValue"
/>
<parameter
id=
"SnapshotOptPlace"
<parameter
id=
"SnapshotOptPlace"
label=
"Placement snapshot"
tooltip=
"Name of Vivado snapshot archive after optimization/placement"
label=
"Placement snapshot"
tooltip=
"Name of Vivado snapshot archive after optimization/placement"
default=
"%%ProjectName-opt-place.dcp"
default=
"%%ProjectName-opt-place.dcp"
type=
"
Filename
"
format=
"CopyValue"
/>
type=
"
String
"
format=
"CopyValue"
/>
<parameter
id=
"SnapshotOpt"
<parameter
id=
"SnapshotOpt"
label=
"Optimization snapshot"
tooltip=
"Name of Vivado snapshot archive after optimization"
label=
"Optimization snapshot"
tooltip=
"Name of Vivado snapshot archive after optimization"
default=
"%%ProjectName-opt.dcp"
default=
"%%ProjectName-opt.dcp"
type=
"
Filename
"
format=
"CopyValue"
/>
type=
"
String
"
format=
"CopyValue"
/>
<parameter
id=
"SnapshotOptPower"
<parameter
id=
"SnapshotOptPower"
label=
"Power optimization snapshot"
tooltip=
"Name of Vivado snapshot archive after power optimization"
label=
"Power optimization snapshot"
tooltip=
"Name of Vivado snapshot archive after power optimization"
default=
"%%ProjectName-opt-power.dcp"
default=
"%%ProjectName-opt-power.dcp"
type=
"
Filename
"
format=
"CopyValue"
/>
type=
"
String
"
format=
"CopyValue"
/>
<parameter
id=
"SnapshotPlace"
<parameter
id=
"SnapshotPlace"
label=
"Placement snapshot"
tooltip=
"Name of Vivado snapshot archive after placement"
label=
"Placement snapshot"
tooltip=
"Name of Vivado snapshot archive after placement"
default=
"%%ProjectName-place.dcp"
default=
"%%ProjectName-place.dcp"
type=
"
Filename
"
format=
"CopyValue"
/>
type=
"
String
"
format=
"CopyValue"
/>
<parameter
id=
"SnapshotOptPhys"
<parameter
id=
"SnapshotOptPhys"
label=
"Physical optimization snapshot"
tooltip=
"Name of Vivado snapshot archive after physical optimization"
label=
"Physical optimization snapshot"
tooltip=
"Name of Vivado snapshot archive after physical optimization"
default=
"%%ProjectName-opt-phys.dcp"
default=
"%%ProjectName-opt-phys.dcp"
type=
"
Filename
"
format=
"CopyValue"
/>
type=
"
String
"
format=
"CopyValue"
/>
<parameter
id=
"SnapshotRoute"
<parameter
id=
"SnapshotRoute"
label=
"Routing snapshot"
tooltip=
"Name of Vivado snapshot archive after routing"
label=
"Routing snapshot"
tooltip=
"Name of Vivado snapshot archive after routing"
default=
"%%ProjectName-route.dcp"
default=
"%%ProjectName-route.dcp"
type=
"
Filename
"
format=
"CopyValue"
/>
type=
"
String
"
format=
"CopyValue"
/>
<parameter
id=
"DisableVivadoSynth"
<parameter
id=
"DisableVivadoSynth"
label=
"Disable Vivado synthesis"
tooltip=
"Disable tool Vivado Synthesis"
label=
"Disable Vivado synthesis"
tooltip=
"Disable tool Vivado Synthesis"
...
...
tools/Verilog/IVerilog.xml
View file @
d8bf8483
...
@@ -119,9 +119,11 @@
...
@@ -119,9 +119,11 @@
<parameter
id=
"v"
type=
"SwitchType"
format=
"SwitchSyntax"
<parameter
id=
"v"
type=
"SwitchType"
format=
"SwitchSyntax"
default=
"true"
label=
"Verbose"
/>
default=
"true"
label=
"Verbose"
/>
<parameter
id=
"Param_SourceList"
label=
"Param_SourceList"
<!--
<parameter id="Param_SourceList" label="Param_SourceList"
type="Stringlist" format="SourceListSyntax" default="" readonly="true"
type="Stringlist" format="SourceListSyntax" default="" readonly="true"
visible=
"true"
/>
visible="true" /> -->
<parameter
id=
"SourceListPar"
label=
"Param_SourceList"
type=
"Filelist"
format=
"ParamListSyntax"
default=
"%%FilteredSourceList"
readonly=
"true"
visible=
"false"
/>
<parameter
id=
"ShowNoProblem"
type=
"BoolYesNo"
format=
"None"
<parameter
id=
"ShowNoProblem"
type=
"BoolYesNo"
format=
"None"
...
@@ -199,8 +201,10 @@
...
@@ -199,8 +201,10 @@
<parameter
id=
"IVerilogActionIndex"
default=
"%%ChosenActionIndex"
<parameter
id=
"IVerilogActionIndex"
default=
"%%ChosenActionIndex"
type=
"String"
format=
"CopyValue"
visible=
"false"
/>
type=
"String"
format=
"CopyValue"
visible=
"false"
/>
<parameter
id=
"SourceList"
format=
"SourceListSyntax"
<!-- <parameter id="SourceList" format="SourceListSyntax"
type=
"Stringlist"
default=
""
readonly=
"true"
visible=
"false"
/>
type="Stringlist" default="" readonly="true" visible="false" /> -->
<parameter
id=
"SourceListPar"
label=
"Param_SourceList"
type=
"Filelist"
format=
"ParamListSyntax"
default=
"%%FilteredSourceList"
readonly=
"true"
visible=
"false"
/>
<parameter
id=
"iverilog_include_file"
default=
"IVERILOG_INCLUDE.v"
<parameter
id=
"iverilog_include_file"
default=
"IVERILOG_INCLUDE.v"
type=
"Filename"
format=
"CopyValue"
visible=
"false"
/>
type=
"Filename"
format=
"CopyValue"
visible=
"false"
/>
...
@@ -300,7 +304,7 @@
...
@@ -300,7 +304,7 @@
"%legacy_model"
"%legacy_model"
"%no_specify"
"%no_specify"
"%v"
"%v"
"%SourceList"
"%SourceList
Par
"
"%ExtraFiles"
"%ExtraFiles"
<if
ShowNoProblem=
"false"
>
<if
ShowNoProblem=
"false"
>
"2
>&
1"
"2
>&
1"
...
...
tools/Xilinx/vivado_synthesis.xml
View file @
d8bf8483
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<vdt-project>
<vdt-project>
<interface
name=
"VivadoSynthesisInterface"
extends=
"VivadoInterface"
>
<interface
name=
"VivadoSynthesisInterface"
extends=
"VivadoInterface"
>
<syntax
name=
"read_xdc_syntax"
format=
"%(read_xdc %%ParamValue%|\n%)"
/>
<syntax
name=
"read_xdc_syntax"
format=
"%(read_xdc %%ParamValue%|\n%)"
/>
<typedef
name=
"FlattenHierarchyType"
>
<typedef
name=
"FlattenHierarchyType"
>
<paramtype
kind=
"enum"
base=
"String"
>
<paramtype
kind=
"enum"
base=
"String"
>
<item
value=
"rebuilt"
label=
"Attempt to rebuild hierarchy after synthesis is completed"
/>
<item
value=
"rebuilt"
label=
"Attempt to rebuild hierarchy after synthesis is completed"
/>
...
@@ -75,10 +75,17 @@
...
@@ -75,10 +75,17 @@
<action
label=
"Check by Vivado Synthesis:"
resource=
"%%SelectedFile"
<action
label=
"Check by Vivado Synthesis:"
resource=
"%%SelectedFile"
check-extension=
"true"
check-existence=
"true"
icon=
"IconTestTube.png"
/>
check-extension=
"true"
check-existence=
"true"
icon=
"IconTestTube.png"
/>
</action-menu>
</action-menu>
<!-- TODO: find out, how to reset state and make a tool to depend on-->
<depends-list>
<depends
files=
"FilteredSourceListPar"
/>
<depends
files=
"ConstraintsFiles"
/>
</depends-list>
<parameter
id=
"ConstraintsFiles"
type=
"Filelist"
format=
"ParamListSyntax"
<parameter
id=
"ConstraintsFiles"
type=
"Filelist"
format=
"ParamListSyntax"
default=
""
label=
"Constraints files"
tooltip=
"Select constraint files to load to Vivado"
readonly=
"false"
default=
""
label=
"Constraints files"
tooltip=
"Select constraint files to load to Vivado"
readonly=
"false"
visible=
"true"
/>
visible=
"true"
/>
<parameter
id=
"SkipSnapshotSynth"
label=
"Skip snapshot"
tooltip=
"Do not create snapshot after synthesis"
<parameter
id=
"SkipSnapshotSynth"
label=
"Skip snapshot"
tooltip=
"Do not create snapshot after synthesis"
default=
"false"
default=
"false"
type=
"Boolean"
format=
"None"
/>
type=
"Boolean"
format=
"None"
/>
...
@@ -149,12 +156,19 @@
...
@@ -149,12 +156,19 @@
default=
"false"
visible=
"true"
omit=
"false"
type=
"Boolean"
format=
"DashName"
/>
default=
"false"
visible=
"true"
omit=
"false"
type=
"Boolean"
format=
"DashName"
/>
<!-- hidden (calculated) parameters -->
<!-- hidden (calculated) parameters -->
<parameter
id=
"FilteredSourceList"
type=
"Stringlist"
<!-- <parameter id="FilteredSourceList" type="Filelist"
format=
"FilteredSourceListSyntax"
default=
""
readonly=
"true"
visible=
"false"
/>
format="FilteredSourceListSyntax" default="" readonly="true" visible="false" /> -->
<parameter
id=
"FilteredSourceListPar"
type=
"Filelist"
format=
"ParamListSyntax"
default=
"%%FilteredSourceList"
readonly=
"true"
visible=
"false"
/>
<!-- Parameter read_xdc just copies parameter ConstraintsFiles, but they have different syntax (output representation) -->
<!-- Parameter read_xdc just copies parameter ConstraintsFiles, but they have different syntax (output representation) -->
<parameter
id=
"read_xdc"
type=
"Filelist"
format=
"read_xdc_syntax"
label=
""
tooltip=
"read_xdc"
<parameter
id=
"read_xdc"
type=
"Filelist"
format=
"read_xdc_syntax"
default=
"%ConstraintsFiles"
visible=
"false"
/>
default=
"%ConstraintsFiles"
visible=
"false"
/>
<!-- <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"
<!-- <parameter id="top" label="" tooltip= "Top module of the design"
default="%%TopModule" visible="false" omit="" type="String" format="Dash"/> -->
default="%%TopModule" visible="false" omit="" type="String" format="Dash"/> -->
<parameter
id=
"VivadoSynthActionIndex"
default=
"%%ChosenActionIndex"
<parameter
id=
"VivadoSynthActionIndex"
default=
"%%ChosenActionIndex"
...
@@ -190,7 +204,8 @@
...
@@ -190,7 +204,8 @@
<!-- invisible/calculated parameters -->
<!-- invisible/calculated parameters -->
<parameter
id=
"AutosaveVivadoSynthesis"
default=
"?%%ChosenActionIndex=0 ^ %SkipSnapshotSynth=false : true, false"
<parameter
id=
"AutosaveVivadoSynthesis"
default=
"?%%ChosenActionIndex=0 ^ %SkipSnapshotSynth=false : true, false"
visible=
"false"
type=
"Boolean"
format=
"None"
/>
visible=
"false"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"condConstraintsFiles"
default=
"?%%ChosenActionIndex=0 : %ConstraintsFiles, "
visible=
"false"
type=
"Filelist"
format=
"None"
/>
<input>
<input>
<group
name=
"General"
>
<group
name=
"General"
>
...
@@ -257,7 +272,7 @@
...
@@ -257,7 +272,7 @@
"%VivadoProjectRoot"
"%VivadoProjectRoot"
"' ;"
"' ;"
"rsync -avrR -e ssh"
"rsync -avrR -e ssh"
"%FilteredSourceList"
"%FilteredSourceList
Par
"
<if
VivadoSynthActionIndex=
"0"
>
<if
VivadoSynthActionIndex=
"0"
>
"%ConstraintsFiles"
"%ConstraintsFiles"
</if>
</if>
...
@@ -279,13 +294,14 @@
...
@@ -279,13 +294,14 @@
"reset_project -quiet\n"
"reset_project -quiet\n"
</if>
</if>
"file mkdir $outputDir\n"
"file mkdir $outputDir\n"
"read_verilog %FilteredSourceList\n"
"read_verilog "
"%FilteredSourceListPar\n"
<if
VivadoSynthActionIndex=
"0"
>
<if
VivadoSynthActionIndex=
"0"
>
<if
ConstraintsFiles=
""
>
<if
ConstraintsFiles=
""
>
"puts \"No constraints files specified, skipping read_xdc command\";\n"
"puts \"No constraints files specified, skipping read_xdc command\";\n"
</if>
</if>
<if-not
ConstraintsFiles=
""
>
<if-not
ConstraintsFiles=
""
>
"%read_xdc\n"
"%read_xdc\n"
</if-not>
</if-not>
</if>
</if>
"synth_design"
"synth_design"
...
...
tools/Xilinx/vivado_test.xml
View file @
d8bf8483
...
@@ -25,8 +25,10 @@
...
@@ -25,8 +25,10 @@
<parameter
id=
"Timeout"
label=
"Script timeout(sec)"
type=
"Cardinal"
<parameter
id=
"Timeout"
label=
"Script timeout(sec)"
type=
"Cardinal"
format=
"CopyValue"
default=
"10"
readonly=
"false"
visible=
"true"
/>
format=
"CopyValue"
default=
"10"
readonly=
"false"
visible=
"true"
/>
<!-- hidden (calculated) parameters -->
<!-- hidden (calculated) parameters -->
<parameter
id=
"FilteredSourceList"
type=
"Stringlist"
<!-- <parameter id="FilteredSourceList" type="Stringlist"
format=
"FilteredSourceListSyntax"
default=
""
readonly=
"true"
visible=
"false"
/>
format="FilteredSourceListSyntax" default="" readonly="true" visible="false" /> -->
<parameter
id=
"FilteredSourceListPar"
type=
"Filelist"
format=
"ParamListSyntax"
default=
"%%FilteredSourceList"
readonly=
"true"
visible=
"false"
/>
<input>
<input>
<group
name=
"General"
>
<group
name=
"General"
>
...
@@ -40,7 +42,7 @@
...
@@ -40,7 +42,7 @@
"-c"
"-c"
"echo 'scp files here' ;"
"echo 'scp files here' ;"
"echo '"
"echo '"
"%FilteredSourceList"
"%FilteredSourceList
Par
"
"' ;"
"' ;"
"sleep 2 ;"
"sleep 2 ;"
</line>
</line>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment