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
4ab58c67
Commit
4ab58c67
authored
Mar 06, 2014
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Started adding ISE tools, fixed persistent storage when switching
projects
parent
07d87ca2
Changes
30
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
1242 additions
and
334 deletions
+1242
-334
VerilogUtils.java
src/com/elphel/vdt/VerilogUtils.java
+24
-10
ToolsCore.java
src/com/elphel/vdt/core/tools/ToolsCore.java
+19
-2
FilteredSourceListGenerator.java
...dt/core/tools/generators/FilteredSourceListGenerator.java
+3
-1
ProjectNameGenerator.java
...lphel/vdt/core/tools/generators/ProjectNameGenerator.java
+4
-1
ProjectPathGenerator.java
...lphel/vdt/core/tools/generators/ProjectPathGenerator.java
+3
-1
SourceListGenerator.java
...elphel/vdt/core/tools/generators/SourceListGenerator.java
+4
-1
Tool.java
src/com/elphel/vdt/core/tools/params/Tool.java
+110
-5
ToolSequence.java
src/com/elphel/vdt/core/tools/params/ToolSequence.java
+90
-9
SelectedResourceManager.java
src/com/elphel/vdt/ui/variables/SelectedResourceManager.java
+32
-4
DesignFlowView.java
src/com/elphel/vdt/ui/views/DesignFlowView.java
+209
-18
DesignMenu.xml
tools/DesignMenu.xml
+21
-2
FPGA_project.xml
tools/FPGA_project.xml
+136
-26
Installation.xml
tools/Installation.xml
+12
-0
ise_interface.xml
tools/Xilinx_ISE/ise_interface.xml
+102
-0
ise_launch.xml
tools/Xilinx_ISE/ise_launch.xml
+110
-0
ise_partgen.xml
tools/Xilinx_ISE/ise_partgen.xml
+89
-0
ise_proto.xml
tools/Xilinx_ISE/ise_proto.xml
+141
-0
ise_unisims.xml
tools/Xilinx_ISE/ise_unisims.xml
+28
-0
vivado_bitstream.xml
tools/Xilinx_Vivado/vivado_bitstream.xml
+5
-20
vivado_opt.xml
tools/Xilinx_Vivado/vivado_opt.xml
+7
-20
vivado_opt_phys.xml
tools/Xilinx_Vivado/vivado_opt_phys.xml
+5
-20
vivado_opt_place.xml
tools/Xilinx_Vivado/vivado_opt_place.xml
+24
-69
vivado_opt_power.xml
tools/Xilinx_Vivado/vivado_opt_power.xml
+5
-20
vivado_place.xml
tools/Xilinx_Vivado/vivado_place.xml
+5
-20
vivado_proto.xml
tools/Xilinx_Vivado/vivado_proto.xml
+23
-2
vivado_route.xml
tools/Xilinx_Vivado/vivado_route.xml
+6
-20
vivado_synthesis.xml
tools/Xilinx_Vivado/vivado_synthesis.xml
+8
-19
vivado_timing_proto.xml
tools/Xilinx_Vivado/vivado_timing_proto.xml
+6
-20
vivado_timing_summary_proto.xml
tools/Xilinx_Vivado/vivado_timing_summary_proto.xml
+10
-23
vivado_unisims.xml
tools/Xilinx_Vivado/vivado_unisims.xml
+1
-1
No files found.
src/com/elphel/vdt/VerilogUtils.java
View file @
4ab58c67
...
...
@@ -18,11 +18,7 @@
package
com
.
elphel
.
vdt
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Iterator
;
import
java.util.Set
;
import
java.util.Vector
;
import
com.elphel.vdt.ui.variables.SelectedResourceManager
;
import
com.elphel.vdt.veditor.VerilogPlugin
;
...
...
@@ -41,9 +37,6 @@ import org.eclipse.core.resources.IFile;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.resources.IResource
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.core.runtime.QualifiedName
;
import
org.eclipse.jface.viewers.Viewer
;
import
org.eclipse.jface.viewers.ViewerFilter
;
/**
* Verilog file utilities.
...
...
@@ -52,24 +45,45 @@ import org.eclipse.jface.viewers.ViewerFilter;
* @author Lvov Konstantin
*/
public
class
VerilogUtils
{
public
static
boolean
existsVeditorOutlineDatabase
(
IProject
project
){
try
{
if
(
project
.
getSessionProperty
(
VerilogPlugin
.
getOutlineDatabaseId
())
!=
null
)
return
true
;
}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
"Probably project is closed: "
+
e
);
}
return
false
;
}
public
static
OutlineDatabase
getVeditorOutlineDatabase
(
IProject
project
){
OutlineDatabase
database
=
null
;
HdlDocument
hdlDocument
=
null
;
try
{
database
=
(
OutlineDatabase
)
project
.
getSessionProperty
(
VerilogPlugin
.
getOutlineDatabaseId
());
}
catch
(
CoreException
e
)
{
e
.
printStackTrace
(
);
}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
"Probably project is closed: "
+
e
);
}
if
(
database
!=
null
)
return
database
;
System
.
out
.
println
(
"database is null, looking for the HdlDocument"
);
if
(
VerilogPlugin
.
getPreferenceBoolean
(
PreferenceStrings
.
DEBUG_OTHER
))
System
.
out
.
println
(
"database is null, looking for the HdlDocument"
);
try
{
hdlDocument
=(
HdlDocument
)
project
.
getSessionProperty
(
VerilogPlugin
.
getHdlDocumentId
());
if
((
hdlDocument
!=
null
)
&&
(
hdlDocument
.
getFile
()!=
null
))
{
if
(
VerilogPlugin
.
getPreferenceBoolean
(
PreferenceStrings
.
DEBUG_OTHER
))
System
.
out
.
println
(
"database is null, looking for the HdlDocument="
+
hdlDocument
.
getFile
().
toString
());
}
else
{
if
(
VerilogPlugin
.
getPreferenceBoolean
(
PreferenceStrings
.
DEBUG_OTHER
))
System
.
out
.
println
(
"database is null, HdlDocument="
+((
hdlDocument
==
null
)?
"NULL"
:
" not null, but getFile() is NULL"
));
}
}
catch
(
CoreException
e
)
{
e
.
printStackTrace
();
}
if
(
hdlDocument
!=
null
)
return
hdlDocument
.
getOutlineDatabase
();
/* will create a new one if does not exist */
// Create HdlDocument from selected/restored HDLfile
if
(
SelectedResourceManager
.
getDefault
().
getChosenVerilogFile
()==
null
)
{
System
.
out
.
println
(
"database is null, and no Verilog file is selected to create one."
);
return
null
;
}
hdlDocument
=
new
VerilogDocument
(
project
,
(
IFile
)
SelectedResourceManager
.
getDefault
().
getChosenVerilogFile
());
return
hdlDocument
.
getOutlineDatabase
();
/* will create a new one if does not exist */
}
...
...
src/com/elphel/vdt/core/tools/ToolsCore.java
View file @
4ab58c67
...
...
@@ -22,8 +22,11 @@ import java.util.ArrayList;
import
java.util.List
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.ui.IMemento
;
//import com.elphel.vdt.VDTPlugin;
import
com.elphel.vdt.veditor.VerilogPlugin
;
import
com.elphel.vdt.core.options.OptionsCore
;
...
...
@@ -78,15 +81,29 @@ public class ToolsCore {
}
public
static
void
saveToolsState
(
IMemento
memento
){
for
(
Tool
tool
:
getConfig
().
getContextManager
().
getToolList
())
tool
.
saveState
(
memento
);
if
(
getConfig
().
getContextManager
().
getToolList
()!=
null
)
{
for
(
Tool
tool
:
getConfig
().
getContextManager
().
getToolList
())
tool
.
saveState
(
memento
);
}
}
public
static
void
restoreToolsState
(
IMemento
memento
){
for
(
Tool
tool
:
getConfig
().
getContextManager
().
getToolList
())
tool
.
restoreState
(
memento
);
}
public
static
void
saveToolsState
(
IProject
project
){
if
(
getConfig
().
getContextManager
().
getToolList
()!=
null
)
{
for
(
Tool
tool
:
getConfig
().
getContextManager
().
getToolList
())
tool
.
saveState
(
project
);
}
}
public
static
void
restoreToolsState
(
IProject
project
){
for
(
Tool
tool
:
getConfig
().
getContextManager
().
getToolList
())
tool
.
restoreState
(
project
);
}
public
static
Tool
getToolWorkingCopy
(
String
toolID
)
{
Tool
tool
=
getTool
(
toolID
);
...
...
src/com/elphel/vdt/core/tools/generators/FilteredSourceListGenerator.java
View file @
4ab58c67
...
...
@@ -108,7 +108,9 @@ public class FilteredSourceListGenerator extends AbstractGenerator {
}
file_names
=
fileList
.
toArray
(
new
String
[
0
]);
}
else
{
fault
(
"There is no selected project"
);
// fault("There is no selected project");
System
.
out
.
println
(
getName
()+
": no project selected"
);
return
new
String
[]
{
""
};
}
return
file_names
;
}
...
...
src/com/elphel/vdt/core/tools/generators/ProjectNameGenerator.java
View file @
4ab58c67
...
...
@@ -49,7 +49,10 @@ public class ProjectNameGenerator extends AbstractGenerator {
String
project_name
=
resource
.
getProject
().
getName
();
value
=
new
String
[]{
project_name
};
}
else
{
fault
(
"There is no selected project"
);
// fault("There is no selected project");
System
.
out
.
println
(
getName
()+
": no project selected"
);
return
new
String
[]
{
""
};
}
return
value
;
}
...
...
src/com/elphel/vdt/core/tools/generators/ProjectPathGenerator.java
View file @
4ab58c67
...
...
@@ -51,7 +51,9 @@ public class ProjectPathGenerator extends AbstractGenerator {
String
project_name
=
workspaceRoot
+
resource
.
getProject
().
getFullPath
().
toString
()+
File
.
separator
;
value
=
new
String
[]{
project_name
};
}
else
{
fault
(
"There is no selected project"
);
// fault("There is no selected project");
System
.
out
.
println
(
getName
()+
": no project selected"
);
return
new
String
[]
{
""
};
}
return
value
;
}
...
...
src/com/elphel/vdt/core/tools/generators/SourceListGenerator.java
View file @
4ab58c67
...
...
@@ -21,6 +21,7 @@ package com.elphel.vdt.core.tools.generators;
import
org.eclipse.core.resources.IFile
;
import
org.eclipse.core.resources.IResource
;
//import com.elphel.vdt.VDT;
import
com.elphel.vdt.VerilogUtils
;
//import com.elphel.vdt.core.verilog.VerilogUtils;
...
...
@@ -60,7 +61,9 @@ public class SourceListGenerator extends AbstractGenerator {
for
(
int
i
=
0
;
i
<
files
.
length
;
i
++)
file_names
[
i
]
=
files
[
i
].
getProjectRelativePath
().
toOSString
();
//.getName();
}
else
{
fault
(
"There is no selected project"
);
// fault("There is no selected project");
System
.
out
.
println
(
getName
()+
": no project selected"
);
return
new
String
[]
{
""
};
}
return
file_names
;
}
...
...
src/com/elphel/vdt/core/tools/params/Tool.java
View file @
4ab58c67
...
...
@@ -21,6 +21,8 @@ import java.util.*;
import
java.io.*
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.core.runtime.QualifiedName
;
import
org.eclipse.ui.IMemento
;
import
com.elphel.vdt.VDT
;
...
...
@@ -60,6 +62,14 @@ public class Tool extends Context implements Cloneable, Inheritable {
private
static
final
String
MEMENTO_TOOL_DEPNAME
=
"name"
;
private
static
final
String
MEMENTO_TOOL_FILEDEPSTAMP
=
"fileDependency"
;
private
static
final
String
MEMENTO_TOOL_STATEDEPSTAMP
=
"stateDependency"
;
private
static
final
String
PROJECT_TOOL_NAME
=
"tool."
;
private
static
final
String
PROJECT_TOOL_PINNED
=
".pinned"
;
private
static
final
String
PROJECT_TOOL_STATE
=
".state"
;
private
static
final
String
PROJECT_TOOL_TIMESTAMP
=
".timestamp"
;
private
static
final
String
PROJECT_TOOL_LASTRUNHASH
=
".lastrunhash"
;
private
static
final
String
PROJECT_TOOL_DEPSTATE
=
".depstate."
;
private
static
final
String
PROJECT_TOOL_DEPFILE
=
".depfile."
;
private
String
baseToolName
;
...
...
@@ -415,11 +425,14 @@ public class Tool extends Context implements Cloneable, Inheritable {
public
void
setLastRunHash
(
int
hash
){
// to restore from file
lastRunHash
=
hash
;
}
public
void
setStateJustThis
(
TOOL_STATE
state
)
{
this
.
state
=
state
;
}
public
void
setState
(
TOOL_STATE
state
)
{
this
.
state
=
state
;
setStateJustThis
(
state
)
;
DEBUG_PRINT
(
"SetState("
+
state
+
") for tool "
+
getName
()+
" threadID="
+
Thread
.
currentThread
().
getId
());
if
(
getRestoreMaster
()!=
null
){
if
(
(
getRestoreMaster
()!=
null
)
&&
(
state
!=
TOOL_STATE
.
NEW
)
){
getRestoreMaster
().
setState
(
state
);
// TODO: Should it be always or just for SUCCESS ?
}
}
...
...
@@ -928,6 +941,98 @@ public class Tool extends Context implements Cloneable, Inheritable {
return
names
.
get
(
0
);
}
/**
* Save tool state as project persistent properties
* @param project where to attach properties
*/
public
void
saveState
(
IProject
project
)
{
QualifiedName
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_PINNED
);
try
{
project
.
setPersistentProperty
(
qn
,
new
Boolean
(
isPinned
()).
toString
());}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
isPinned
()+
", e="
+
e
);}
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_STATE
);
try
{
project
.
setPersistentProperty
(
qn
,
getState
().
toString
());}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
getState
()+
", e="
+
e
);}
if
(
getTimeStamp
()!=
null
)
{
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_TIMESTAMP
);
try
{
project
.
setPersistentProperty
(
qn
,
getTimeStamp
());}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
getTimeStamp
()+
", e="
+
e
);}
}
if
(
getLastRunHash
()!=
0
)
{
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_LASTRUNHASH
);
try
{
project
.
setPersistentProperty
(
qn
,
new
Integer
(
getLastRunHash
()).
toString
());}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
getLastRunHash
()+
", e="
+
e
);}
}
for
(
String
state:
dependStatesTimestamps
.
keySet
()){
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_DEPSTATE
+
state
);
try
{
project
.
setPersistentProperty
(
qn
,
dependStatesTimestamps
.
get
(
state
));}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
dependStatesTimestamps
.
get
(
state
)+
", e="
+
e
);}
}
for
(
String
file:
dependFilesTimestamps
.
keySet
()){
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_DEPFILE
+
file
);
try
{
project
.
setPersistentProperty
(
qn
,
dependFilesTimestamps
.
get
(
file
));}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
dependFilesTimestamps
.
get
(
file
)+
", e="
+
e
);}
}
DEBUG_PRINT
(
"*** Updated persistent properties for tool "
+
getName
()+
" in the project "
+
project
.
toString
());
}
public
void
restoreState
(
IProject
project
)
{
Map
<
QualifiedName
,
String
>
pp
;
try
{
pp
=
project
.
getPersistentProperties
();
}
catch
(
CoreException
e
){
System
.
out
.
println
(
project
+
": Failed getPersistentProperties(), e="
+
e
);
return
;
}
DEBUG_PRINT
(
"restoring "
+
getName
()+
" state for project "
+
project
);
QualifiedName
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_PINNED
);
String
str
=
pp
.
get
(
qn
);
if
(
str
!=
null
)
try
{
setPinned
(
Boolean
.
parseBoolean
(
str
));
}
catch
(
Exception
e
){
System
.
out
.
println
(
project
+
"Failed setPinned(), e="
+
e
);
}
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_STATE
);
str
=
pp
.
get
(
qn
);
if
(
str
!=
null
)
{
try
{
setStateJustThis
(
TOOL_STATE
.
valueOf
(
str
));
}
catch
(
IllegalArgumentException
e
){
System
.
out
.
println
(
"Invalid tool state: "
+
str
+
" for tool "
+
getName
()+
" in memento"
);
}
if
(
getState
()==
TOOL_STATE
.
KEPT_OPEN
)
setStateJustThis
(
TOOL_STATE
.
NEW
);
}
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_TIMESTAMP
);
str
=
pp
.
get
(
qn
);
if
(
str
!=
null
)
setTimeStamp
(
str
);
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_LASTRUNHASH
);
str
=
pp
.
get
(
qn
);
if
(
str
!=
null
)
{
try
{
Integer
hc
=
Integer
.
parseInt
(
str
);
setLastRunHash
(
hc
);
}
catch
(
Exception
e
){
System
.
out
.
println
(
"Invalid hashCode: "
+
str
+
" for tool "
+
getName
()+
" for project "
+
project
);
}
}
clearDependStamps
();
String
statePrefix
=
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_DEPSTATE
;
String
filePrefix
=
PROJECT_TOOL_NAME
+
name
+
PROJECT_TOOL_DEPFILE
;
for
(
QualifiedName
qName:
pp
.
keySet
()){
// qn= new QualifiedName(VDT.ID_VDT, PROJECT_TOOL_NAME+name+PROJECT_TOOL_DEPSTATE+state);
if
(
qName
.
getLocalName
().
startsWith
(
statePrefix
)){
String
value
=
pp
.
get
(
qName
);
setStateTimeStamp
(
qName
.
getLocalName
().
substring
(
statePrefix
.
length
()),
value
);
}
if
(
qName
.
getLocalName
().
startsWith
(
filePrefix
)){
String
value
=
pp
.
get
(
qName
);
setFileTimeStamp
(
qName
.
getLocalName
().
substring
(
filePrefix
.
length
()),
value
);
}
}
}
public
void
saveState
(
IMemento
memento
)
{
IMemento
toolMemento
=
memento
.
createChild
(
MEMENTO_TOOL_TYPE
,
name
);
...
...
@@ -971,12 +1076,12 @@ public class Tool extends Context implements Cloneable, Inheritable {
String
state
=
toolMemento
.
getString
(
MEMENTO_TOOL_STATE
);
if
(
state
!=
null
){
try
{
this
.
state
=
TOOL_STATE
.
valueOf
(
state
);
setStateJustThis
(
TOOL_STATE
.
valueOf
(
state
)
);
}
catch
(
IllegalArgumentException
e
){
System
.
out
.
println
(
"Invalid tool state: "
+
state
+
" for tool "
+
name
+
" in memento"
);
}
if
(
this
.
state
==
TOOL_STATE
.
KEPT_OPEN
)
this
.
state
=
TOOL_STATE
.
NEW
;
if
(
getState
()
==
TOOL_STATE
.
KEPT_OPEN
)
setStateJustThis
(
TOOL_STATE
.
NEW
)
;
}
String
timestamp
=
toolMemento
.
getString
(
MEMENTO_TOOL_TIMESTAMP
);
if
(
timestamp
!=
null
)
setTimeStamp
(
timestamp
);
...
...
src/com/elphel/vdt/core/tools/params/ToolSequence.java
View file @
4ab58c67
...
...
@@ -65,7 +65,11 @@ public class ToolSequence {
private
static
final
String
TAG_CURRENTSTATE_TOOLNAME
=
".currentState.toolName."
;
private
static
final
String
TAG_CURRENTSTATE_STATEFILE
=
".currentState.stateFile."
;
private
static
final
String
TAG_CURRENTSTATE_TOOLSTAMP
=
".currentState.toolStamp."
;
private
static
final
String
PROJECT_CURRENTSTATE_TOOLNAME
=
"currentState.toolName."
;
private
static
final
String
PROJECT_CURRENTSTATE_STATEFILE
=
"currentState.stateFile."
;
private
static
final
String
PROJECT_CURRENTSTATE_TOOLSTAMP
=
"currentState.toolStamp."
;
// private static final int MAX_TOOLS_TO_RUN=100;
private
boolean
shiftPressed
=
false
;
...
...
@@ -96,7 +100,7 @@ public class ToolSequence {
if
(
tool
.
getState
()==
TOOL_STATE
.
KEPT_OPEN
)
{
MessageUI
.
error
(
"Tool "
+
tool
.
getName
()+
" is running session, you need to close it to stop"
);
}
else
{
tool
.
setState
(
TOOL_STATE
.
NEW
);
tool
.
setState
JustThis
(
TOOL_STATE
.
NEW
);
tool
.
clearDependStamps
();
}
}
...
...
@@ -174,9 +178,10 @@ public class ToolSequence {
public
void
setUnfinishedBoot
(
IMemento
memento
){
public
void
setUnfinishedBoot
(
IMemento
memento
,
boolean
updateDB
){
unfinishedMemento
=
memento
;
if
(
memento
!=
null
){
// if (memento!=null){
if
(
updateDB
)
{
// Does not seem to work:
IActionBars
bars
=
designFlowView
.
getViewSite
().
getActionBars
();
bars
.
getStatusLineManager
().
setMessage
(
"Waiting for VEditor database to be built..."
);
...
...
@@ -186,13 +191,13 @@ public class ToolSequence {
}
}
public
void
finalizeBootAfterVEditor
(){
if
(
unfinishedMemento
!=
null
)
{
//
if (unfinishedMemento!=null) {
// Does not seem to work:
IActionBars
bars
=
designFlowView
.
getViewSite
().
getActionBars
();
bars
.
getStatusLineManager
().
setMessage
(
""
);
// designFlowView.changeMenuTitle(menuName);
designFlowView
.
finalizeAfterVEditorDB
(
unfinishedMemento
);
}
//
}
}
public
void
toolFinished
(
Tool
tool
){
...
...
@@ -1281,7 +1286,81 @@ public class ToolSequence {
}
}
public
void
saveCurrentStates
(
IMemento
memento
)
{
/**
* Save tool states to the project persistent properties
* @param project - project to save properties to
*/
public
void
saveCurrentStates
(
IProject
project
)
{
if
((
project
==
null
)
||
!
project
.
exists
())
{
System
.
out
.
println
(
"Can not set persistent properties of non-existent project "
+
project
);
return
;
}
for
(
String
state:
currentStates
.
keySet
()){
ToolStateStamp
tss
=
currentStates
.
get
(
state
);
QualifiedName
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_CURRENTSTATE_TOOLNAME
+
state
);
try
{
project
.
setPersistentProperty
(
qn
,
tss
.
getToolName
());}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
tss
.
getToolName
()+
", e="
+
e
);}
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_CURRENTSTATE_STATEFILE
+
state
);
try
{
project
.
setPersistentProperty
(
qn
,
tss
.
getToolStateFile
());}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
tss
.
getToolStateFile
()+
", e="
+
e
);}
qn
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_CURRENTSTATE_TOOLSTAMP
+
state
);
try
{
project
.
setPersistentProperty
(
qn
,
tss
.
getToolStamp
());}
catch
(
CoreException
e
)
{
System
.
out
.
println
(
project
+
"Failed setPersistentProperty("
+
qn
+
", "
+
tss
.
getToolStamp
()+
", e="
+
e
);}
DEBUG_PRINT
(
"Saving state "
+
state
+
" to project:"
+
project
.
toString
()+
", toolName="
+
tss
.
getToolName
()+
", toolStateFile="
+
tss
.
getToolStateFile
()+
", toolStamp="
+
tss
.
getToolStamp
());
}
}
/**
* Restore tool states from the project persistent properites
* @param project - project to get properties from
*/
public
void
restoreCurrentStates
(
IProject
project
)
{
if
((
project
==
null
)
||
!
project
.
exists
())
{
System
.
out
.
println
(
"Can not read persistent properties from the non-existent project "
+
project
);
return
;
}
Map
<
QualifiedName
,
String
>
pp
;
try
{
pp
=
project
.
getPersistentProperties
();
}
catch
(
CoreException
e
){
System
.
out
.
println
(
project
+
": Failed getPersistentProperties(), e="
+
e
);
return
;
}
currentStates
.
clear
();
setStateProvides
();
// Can be called just once - during initialization?
for
(
String
state:
stateProviders
.
keySet
()){
QualifiedName
qn_toolName
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_CURRENTSTATE_TOOLNAME
+
state
);
if
(
pp
.
containsKey
(
qn_toolName
)){
QualifiedName
qn_stateFile
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_CURRENTSTATE_STATEFILE
+
state
);
QualifiedName
qn_toolStamp
=
new
QualifiedName
(
VDT
.
ID_VDT
,
PROJECT_CURRENTSTATE_TOOLSTAMP
+
state
);
currentStates
.
put
(
state
,
new
ToolStateStamp
(
pp
.
get
(
qn_toolName
),
pp
.
get
(
qn_stateFile
),
pp
.
get
(
qn_toolStamp
)
));
DEBUG_PRINT
(
"Restoring state "
+
state
+
" from project "
+
project
.
toString
()+
", toolName="
+
pp
.
get
(
qn_toolName
)+
", toolStateFile="
+
pp
.
get
(
qn_stateFile
)+
", toolStamp="
+
pp
.
get
(
qn_toolStamp
));
}
}
// Set all tool dirty flags according to restored states and tools dependencies
// updateContextOptions(project); // Fill in parameters - it parses here too - at least some parameters? (not in menu mode)
// setToolsDirtyFlag(true) initiates Verilog database rebuild, let's trigger it intentionally
//VerilogUtils.getTopModuleNames((IFile)resource);
// stToolsDirtyFlag(true); // recalculate each successful tool's parameters - moved to caller
}
public
void
saveCurrentStates
(
IMemento
memento
)
{
for
(
String
state:
currentStates
.
keySet
()){
ToolStateStamp
tss
=
currentStates
.
get
(
state
);
memento
.
putString
(
state
+
TAG_CURRENTSTATE_TOOLNAME
,
tss
.
getToolName
());
...
...
@@ -1295,6 +1374,8 @@ public class ToolSequence {
}
}
/**
* Restore states (snapshot files status) from persistent storage
* Should be called after tools are restored
...
...
@@ -1326,11 +1407,11 @@ public class ToolSequence {
", toolStamp="
+
memento
.
getString
(
state
+
TAG_CURRENTSTATE_TOOLSTAMP
));
}
}
// Set all tool dirty flags according to restored states and tools dendencies
// Set all tool dirty flags according to restored states and tools de
pe
ndencies
// updateContextOptions(project); // Fill in parameters - it parses here too - at least some parameters? (not in menu mode)
// setToolsDirtyFlag(true) initiates Verilog database rebuild, let's trigger it intentionally
//VerilogUtils.getTopModuleNames((IFile)resource);
setToolsDirtyFlag
(
true
);
// recalculate each successful tool's parameters
// stToolsDirtyFlag(true); // recalculate each successful tool's parameters - moved to caller
}
public
void
putCurrentState
(
Tool
tool
){
...
...
src/com/elphel/vdt/ui/variables/SelectedResourceManager.java
View file @
4ab58c67
...
...
@@ -244,20 +244,26 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
* @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
*/
public
void
selectionChanged
(
IWorkbenchPart
part
,
ISelection
selection
)
{
if
(
VerilogPlugin
.
getPreferenceBoolean
(
PreferenceStrings
.
DEBUG_OTHER
))
System
.
out
.
print
(
"$$$ Selection changed, fSelectedResource="
+
fSelectedResource
);
// System.out.println("SelectedResourceManager.selectionChanged()");
IWorkbenchWindow
window
=
part
.
getSite
().
getWorkbenchWindow
();
if
(
fWindowStack
.
isEmpty
()
||
!
fWindowStack
.
peek
().
equals
(
window
))
{
// selection is not in the active window
System
.
out
.
println
(
" - stray selection outside acrtive window"
);
return
;
}
IResource
selectedResource
=
getSelectedResource
(
part
,
selection
);
if
(
VerilogPlugin
.
getPreferenceBoolean
(
PreferenceStrings
.
DEBUG_OTHER
))
System
.
out
.
println
(
" New selection: "
+
selectedResource
);
if
(
selectedResource
!=
null
)
{
fSelectedResource
=
selectedResource
;
// System.out.println("SelectedResourceManager.selectionChanged(): fSelectedResource changed to "+fSelectedResource.getName());
if
((
selectedResource
.
getType
()==
IResource
.
FILE
)
&&
(
VerilogUtils
.
isHhdlFile
((
IFile
)
fSelectedResource
))){
fSelectedVerilogFile
=
selectedResource
;
/* Maybe same will work for vhdl too? */
// System.out.println("SelectedResourceManager.selectionChanged(): fSelectedVerilogFile changed to "+fSelectedVerilogFile.getName());
if
(
VerilogPlugin
.
getPreferenceBoolean
(
PreferenceStrings
.
DEBUG_OTHER
))
System
.
out
.
println
(
"Updated fSelectedVerilogFile: "
+
fSelectedVerilogFile
);
}
else
{
System
.
out
.
println
(
selectedResource
+
" is not a file or not an HDL file"
);
}
}
...
...
@@ -339,12 +345,34 @@ public class SelectedResourceManager implements IWindowListener, ISelectionListe
}
public
IResource
getChosenVerilogFile
()
{
return
(
fChosenVerilogFile
!=
null
)?
fChosenVerilogFile:
fSelectedVerilogFile
;
IProject
project
=
getSelectedProject
();
if
(
project
==
null
)
return
null
;
IResource
rslt
=(
fChosenVerilogFile
!=
null
)?
fChosenVerilogFile:
fSelectedVerilogFile
;
if
(
rslt
==
null
)
return
null
;
if
(
project
.
getFullPath
().
toPortableString
().
equals
(
rslt
.
getProject
().
getFullPath
().
toPortableString
())){
return
(
fChosenVerilogFile
!=
null
)?
fChosenVerilogFile:
fSelectedVerilogFile
;
}
else
{
System
.
out
.
println
(
"Wrong getChosenVerilogFile="
+
rslt
+
" for project "
+
project
);
if
(
fSelectedVerilogFile
==
null
)
return
null
;
if
(
project
.
getFullPath
().
toPortableString
().
equals
(
fSelectedVerilogFile
.
getProject
().
getFullPath
().
toPortableString
())){
System
.
out
.
println
(
"Using: "
+
fSelectedVerilogFile
);
return
fSelectedVerilogFile
;
}
else
{
System
.
out
.
println
(
"fSelectedVerilogFile is also wrong: "
+
fSelectedVerilogFile
);
}
return
fSelectedResource
;
}
}
// Used when restoring from memento
public
void
setChosenVerilogFile
(
IResource
file
)
{
fChosenVerilogFile
=
file
;
IProject
project
=
getSelectedProject
();
IProject
newProject
=
(
file
==
null
)?
null
:
file
.
getProject
();
// if file is different project than selectedResource
if
((
newProject
!=
null
)
&&
((
project
==
null
)
||
!
newProject
.
getFullPath
().
toPortableString
().
equals
(
project
.
getFullPath
().
toPortableString
()))){
fSelectedResource
=
file
;
}
if
(
fSelectedResource
==
null
)
fSelectedResource
=
file
;
}
...
...
src/com/elphel/vdt/ui/views/DesignFlowView.java
View file @
4ab58c67
This diff is collapsed.
Click to expand it.
tools/DesignMenu.xml
View file @
4ab58c67
...
...
@@ -31,13 +31,32 @@
label=
"Send a command to the remote Python session"
icon=
"my_tool.gif"
call=
"RemotePythonCommand"
/>
</menu>
</menu>
<menu
name=
"ISE"
label=
"ISE Tools"
icon=
"xilinx.png"
>
<menuitem
name=
"ISECopyUnisims"
label=
"Copy Xilinx ISE primitives library to the local project"
icon=
"copy.png"
call=
"ISEUnisims"
/>
<menuitem
name=
"ISE Server"
label=
"Start remote ISE session"
icon=
"door_in.png"
call=
"ISE"
/>
<menuitem
name=
"ISEPartgen"
label=
"Run ISE partgen"
icon=
"bitstream.png"
call=
"ISEPartgen"
/>
</menu>
<menu
name=
"Vivado"
label=
"Vivado Tools"
icon=
"xilinx.png"
>
<menuitem
name=
"CopyUnisims"
label=
"Copy Xilinx primitives library to the local project"
label=
"Copy Xilinx
Vivado
primitives library to the local project"
icon=
"copy.png"
call=
"VivadoUnisims"
/>
<menuitem
name=
"Vivado Server"
...
...
tools/FPGA_project.xml
View file @
4ab58c67
This diff is collapsed.
Click to expand it.
tools/Installation.xml
View file @
4ab58c67
...
...
@@ -24,6 +24,18 @@
format =
"Equation"
readonly=
"true"
/>
<parameter
id =
"TRUE"
type =
"Boolean"
default =
"true"
format =
"None"
visible=
"false"
/>
<parameter
id =
"FALSE"
type =
"Boolean"
default =
"false"
format =
"None"
visible=
"false"
/>
<input>
<group
name=
"General"
label=
"System properties"
>
"OSName"
...
...
tools/Xilinx_ISE/ise_interface.xml
0 → 100644
View file @
4ab58c67
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<interface
name=
"ISEInterface"
extends=
"FPGAPprojectInterface"
>
<syntax
name=
"GrepFilterProblemSyntax"
format=
'| grep --line-buffered -v "\[%%ParamName"'
/>
<syntax
name=
"GrepFilterProblemOtherSyntax"
format=
'%(| grep --line-buffered -v "\[%%ParamValue"%|\n%)'
/>
<typedef
name=
"intstyleType"
>
<paramtype
kind=
"enum"
base=
"String"
>
<item
value=
"ise"
label=
"Indicates the program is being run as part of an integrated design environment"
/>
<item
value=
"xflow"
label=
"Indicates the program is being run as part of an integrated batch flow"
/>
<item
value=
"silent"
label=
"Only errors and warnings are output"
/>
</paramtype>
</typedef>
<syntax
name=
"DashNamePart"
format=
"-%%ParamName %part"
/>
<!-- <syntax name="QuietSyntax" format=" -quiet" />
<syntax name="VerboseSyntax" format=" -verbose" />
<syntax name="DirectiveSyntax" format=" -directive %%ParamValue" /> -->
<!--
<syntax name="ProgramSyntax" format="%(%%ParamValue%|\n%)" />
<syntax name="read_xdc_syntax" format="%(read_xdc %%ParamValue%|\n%)" /> -->
</interface>
<!-- Abstract tools to be inherited by instances used for various ISE tools -->
<!-- Restore tool for ISE -->
<tool
name=
"RestoreISE"
label=
"Restore state after ISE tool"
project=
"FPGA_project"
interface=
"ISEInterface"
package=
"FPGA_package"
shell=
"/bin/bash"
abstract=
"true"
>
<output>
<line
name=
"ise_pre_restore"
>
"-c"
<!-- Create project directory on remote server if it did not exist -->
"ssh"
"-oBatchMode=yes"
"-l %RemoteUser %RemoteHost"
"'"
"mkdir -p"
"%ISEProjectRoot"
"' ;"
<!-- Copy snapshot generated after synthesis from local to remote -->
"rsync -avrR -e ssh"
<!-- from: -->
"%ISELocalDir/%%StateFile"
<!-- to: -->
"%RemoteUser@%RemoteHost:%ISEProjectRoot"
";"
</line>
<line
name=
"ise_restore"
dest=
"ISEConsole"
mark=
"``"
sep=
" "
failure=
"ERROR"
prompt=
"@@FINISH@@"
log=
""
>
"cd ~/%ISEProjectRoot\n"
"set outputDir ~/%ISEProjectRoot/%ISERemoteDir\n"
"file mkdir $outputDir\n"
"open_checkpoint %ISERemoteDir/%%StateFile\n"
"puts \"@@FINISH@@\"\n"
</line>
</output>
</tool>
<!-- Save tool for ISE tool -->
<tool
name=
"SaveISE"
label=
"SaveISE"
project=
"FPGA_project"
interface=
"ISEInterface"
package=
"FPGA_package"
shell=
"/bin/bash"
abstract=
"true"
>
<output>
<line
name=
"ise_save"
dest=
"ISEConsole"
mark=
"``"
sep=
" "
prompt=
"@@FINISH@@"
failure=
"ERROR"
log=
""
>
"cd ~/%ISEProjectRoot\n"
"set outputDir ~/%ISEProjectRoot/%ISERemoteDir\n"
"file mkdir $outputDir\n"
"write_checkpoint -force %ISERemoteDir/%%StateFile\n"
"puts \"@@FINISH@@\"\n"
</line>
<line
name=
"ise_copy_after_save"
>
"-c"
"mkdir -p %ISELocalDir ;"
"rsync -avr -e ssh"
"%RemoteUser@%RemoteHost:%ISEProjectRoot/%ISERemoteDir/%%StateFile"
"%%StateDir/"
</line>
</output>
</tool>
</vdt-project>
tools/Xilinx_ISE/ise_launch.xml
0 → 100644
View file @
4ab58c67
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<!-- name should be the same as VivadoConsole parameter -->
<!-- name should be the same as ISEConsole parameter -->
<tool
name=
"ISE"
label=
"Launch ISE"
project=
"FPGA_project"
package=
"FPGA_package"
shell=
"/bin/bash"
interface=
"ISEInterface"
description=
"Launching remote Xilinx ISE console"
>
<action-menu>
<action
label=
"Launch ISE shell on remote"
resource=
""
icon=
"shell.png"
/>
<action
label=
"Generate public key"
resource=
""
icon=
"key.png"
/>
<action
label=
"Setup connection to"
resource=
"%RemoteUser@%RemoteHost"
check-extension=
"false"
check-existence=
"false"
icon=
"setup.png"
/>
</action-menu>
<parameter
id=
"command"
label=
"Shell command"
default=
"bash"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"false"
/>
<parameter
id=
"actionIndex"
default=
"%%ChosenActionIndex"
type=
"String"
format=
"CopyValue"
visible=
"false"
/>
<input>
<group
name=
"General"
>
"RemoteCommand"
</group>
<group
name=
"Shell"
>
- "command"
</group>
</input>
<output>
<if
actionIndex=
"0"
>
<line
name=
"ISE"
timeout=
"1"
keep-open=
"true"
>
"%ISEShellSwitches"
"%ISEPreSSH"
"ssh"
"-oBatchMode=yes"
<if
ISETerminalMode =
"true"
>
"-t -t"
</if>
"%ISESSHSwitches"
"-l"
"%RemoteUser"
"%RemoteHost"
"'"
"%ISERemoteCommand"
"'"
"%ISESSHExtra"
"|| { echo '*** ssh connection to the server %RemoteUser@%RemoteHost failed ***';"
"echo 'You may need to configure connection - it is done in \"Package Setup\"';"
"echo 'Then generate a public key (if it is not done already), and post it to';"
"echo 'the remote server (currently set as %RemoteUser@%RemoteHost)';"
"exit 1; } ;"
</line>
<line
name=
"ise_check"
dest=
"ISEConsole"
mark=
"``"
sep=
""
success=
"@@FINISH@@"
prompt=
"@@FINISH@@"
>
"echo \"@@FINISH@@\"\n"
</line>
</if>
<if
actionIndex=
"1"
>
<line
name=
"Keygen"
>
"%ShellSwitches"
"echo \"Generating public key with command:\";"
"echo \"ssh-keygen -t rsa -q -f ~/.ssh/id_rsa -N ''\";"
"ssh-keygen -t rsa -q -f ~/.ssh/id_rsa -N ''"
</line>
</if>
<if
actionIndex=
"2"
>
<line
name=
"SSHCopyID"
>
"%ShellSwitches"
"echo \"*********************************************\";"
"echo \"** **\";"
"echo \"** This command requires you to be able **\";"
"echo \"** to login to the remote system and enter **\";"
"echo \"** a password once to post your public key **\";"
"echo \"** there. **\";"
"echo \"** **\";"
"echo \"** For this you need 'ssh-askpass' to be **\";"
"echo \"** installed in your system. **\";"
"echo \"** **\";"
"echo \"** If the command will fail, you need to **\";"
"echo \"** install 'ssh-askpass' and try again or **\";"
"echo \"** just manually run: **\";"
"echo \"\n ssh-copy-id %RemoteUser@%RemoteHost\n\";"
"echo \"** from the system terminal and enter your **\";"
"echo \"** password when prompted. **\";"
"echo \"** **\";"
"echo \"** If you see nothing below this box, that **\";"
"echo \"** likely means that Eclipse is launched **\";"
"echo \"** from the terminal, and the system asks **\";"
"echo \"** your password (or permission to add **\";"
"echo \"** key of the remote host first) in that **\";"
"echo \"** terminal - just switch to it and **\";"
"echo \"** complete the setup. **\";"
"echo \"** **\";"
"echo \"*********************************************\";"
"ssh-copy-id %RemoteUser@%RemoteHost;"
</line>
</if>
</output>
</tool>
</vdt-project>
tools/Xilinx_ISE/ise_partgen.xml
0 → 100644
View file @
4ab58c67
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<interface
name=
"ISEPartgenInterface"
extends=
"ISEInterface"
>
</interface>
<tool
name=
"ISEPartgen"
label=
"run partgen"
project=
"FPGA_project"
interface=
"ISEPartgenInterface"
package=
"FPGA_package"
shell=
"/bin/bash"
description=
"Run ISE partgen"
log-dir=
"ISELogDir"
state-dir=
"ISELocalDir"
disable=
"TRUE"
inherits=
"ISEToolPrototype"
>
<action-menu>
<action
label=
"Partgen"
resource=
""
icon=
"bitstream.png"
/>
</action-menu>
<parameter
id=
"p_option"
outid=
"p"
label=
"include part"
tooltip=
"Include -p <part> option"
default=
"false"
visible=
"true"
omit=
"false"
type=
"Boolean"
format=
"DashNamePart"
/>
<parameter
id=
"v_option"
outid=
"v"
label=
"include verbose part"
tooltip=
"Include -v <part> option"
default=
"false"
visible=
"true"
omit=
"false"
type=
"Boolean"
format=
"DashNamePart"
/>
<parameter
id=
"arch"
label=
"architecture"
tooltip=
"Output information for the specified architecture"
default=
""
visible=
"true"
omit=
""
type=
"String"
format=
"Dash"
/>
<parameter
id=
"nopkgfile"
label=
"no package file"
tooltip=
"Do not generate package file"
default=
"false"
visible=
"true"
omit=
"false"
type=
"Boolean"
format=
"DashName"
/>
<parameter
id=
"info"
outid=
"i"
label=
"list devices"
tooltip=
"Output list of devices, packages, speeds"
default=
"false"
visible=
"true"
omit=
"false"
type=
"Boolean"
format=
"DashName"
/>
<parameter
id=
"redirect"
label=
"redirect output"
tooltip=
"Redirect output to file (for info and arch options)"
default=
"partgen.out"
visible=
"true"
omit=
""
type=
"String"
format=
"CopyValue"
/>
<!-- common parameters form the base tool -->
<parameter
id=
"intstyle"
/>
<parameter
id=
"command_files"
/>
<parameter
id=
"speed_grade"
/>
<!-- hidden (calculated) parameters -->
<parameter
id=
"useRedirect"
label=
"debug condition"
default=
"?(%info = true | %arch # ) ^ %redirect # : true , false"
visible=
"true"
omit=
"false"
type=
"Boolean"
format=
"None"
/>
<input>
<group
name=
"Partgen options"
>
"p_option"
"v_option"
"arch"
"nopkgfile"
"info"
"redirect"
"useRedirect"
</group>
</input>
<output>
<line
name=
"ise_run_partgen"
dest=
"ISEConsole"
mark=
"``"
sep=
" "
prompt=
"@@FINISH@@"
success=
"@@FINISH@@"
failure=
"ERROR"
log=
""
stdout=
"parser_ISE"
>
"mkdir -p"
"~/%ISEProjectRoot"
"\n"
"cd ~/%ISEProjectRoot\n"
"%ISEBinAbsolutePath/partgen"
"%p_option"
"%v_option"
"%arch"
"%nopkgfile"
"%info"
"%intstyle"
<if
useRedirect=
"true"
>
"
>
%redirect"
</if>
"\n"
"echo \"@@FINISH@@\"\n"
</line>
<!-- TODO: copy results -->
</output>
</tool>
</vdt-project>
tools/Xilinx_ISE/ise_proto.xml
0 → 100644
View file @
4ab58c67
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<tool
name=
"ISEToolPrototype"
label=
"ISEToolPrototype"
project=
"FPGA_project"
interface=
"ISEInterface"
package=
"FPGA_package"
shell=
"/bin/bash"
description=
"ISE tool prototype"
abstract=
"true"
>
<!-- Parameters common to all tools -->
<!-- Not clear what is the default value for intstyle so using always -->
<parameter
id=
"intstyle"
label=
"Integration Style"
tooltip=
"Defines screen output"
default=
"xflow"
visible=
"true"
omit=
""
type=
"intstyleType"
format=
"Dash"
/>
<parameter
id=
"command_files"
outid=
"f"
label=
"command files"
tooltip=
"Include command files"
default=
""
visible=
"true"
omit=
""
type=
"Stringlist"
format=
"DashListIndividual"
/>
<!-- <parameter id="part_num" outid="p" label="part number" tooltip= "Device part number"
default="%part" visible="true" omit="" type="String" format="Dash"/> -->
<parameter
id=
"speed_grade"
outid=
"s"
label=
"speed grade"
tooltip=
"Device speed grade"
default=
""
visible=
"true"
omit=
""
type=
"String"
format=
"Dash"
/>
<!-- parser parameters -->
<!-- TODO: parser is temporarily copied from Vivado, change to ISE -->
<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=
"ISE_Tcl"
label=
"ISE_Tcl"
tooltip=
"Enable problems with [ISE_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"
/>
<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=
"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"
/>
<parameter
id=
"ShowWarnings"
label=
"Show Warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Show info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<input>
<group
name=
"Common options"
weight=
"9"
>
"intstyle"
"command_files"
<!-- "part_num" -->
"speed_grade"
</group>
<group
name=
"Parser"
weight=
"10"
>
"ShowWarnings"
"ShowInfo"
"GrepEWI"
"---"
"NoFileProblem"
"Drc"
"ISE_Tcl"
"Route"
"Memdata"
"Synth"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line
name=
"parser_ISE"
errors=
"PatternErrors"
warnings=
"PatternWarnings"
info=
"PatternInfo"
>
"-c"
"%GrepEWI"
"| %ISESedPaths"
<if
NoBabyTalk=
"true"
>
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%ISE_Tcl"
"%Route"
"%Memdata"
"%Synth"
"%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@^[^\[]*\[[^\[]*$@
&
\[%%ToolName:0000\]@'"
</if>
</line>
</output>
</tool>
</vdt-project>
tools/Xilinx_ISE/ise_unisims.xml
0 → 100644
View file @
4ab58c67
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<tool
name=
"ISEUnisims"
label=
"Get Xilinx ISE unisims"
project=
"FPGA_project"
interface=
"ISEInterface"
package=
"FPGA_package"
shell=
"/bin/bash"
description=
"Copy ISE unisims library to the project directory"
>
<action-menu>
<action
label=
"Copy ISE unisims"
resource=
""
icon=
"copy.png"
/>
</action-menu>
<input>
<group
name=
"General"
>
"ISEUnisimsAbsolutePath"
</group>
</input>
<output>
<line
name=
"copy_unisims"
>
"-c"
"rsync -avr -e ssh"
"%RemoteUser@%RemoteHost:%ISEUnisimsAbsolutePath/unisims"
"./;"
</line>
</output>
</tool>
</vdt-project>
tools/Xilinx_Vivado/vivado_bitstream.xml
View file @
4ab58c67
...
...
@@ -23,23 +23,6 @@
</depends-list>
<parameter
id=
"SkipPreBitstream"
label=
"Skip pre-bitstream"
tooltip=
"Do not run pre bitstream TCL commands"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<parameter
id=
"PreBitstreamTCL"
label=
"Pre-bitstream TCL commands"
tooltip=
"TCL commands to run before write_bitstream"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
...
...
@@ -86,6 +69,11 @@
<parameter
id=
"Timing"
/>
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- hidden (calculated) parameters -->
...
...
@@ -97,9 +85,6 @@
<input>
<group
name=
"General"
>
"SkipPreBitstream"
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"Pre-bitstream commands"
>
"PreBitstreamTCL"
...
...
tools/Xilinx_Vivado/vivado_opt.xml
View file @
4ab58c67
...
...
@@ -42,23 +42,6 @@
<parameter
id=
"SkipOptimization"
label=
"Skip optimize"
tooltip=
"Do not run opt_design"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<parameter
id=
"PreOptTCL"
label=
"Pre-optimize TCL commands"
tooltip=
"TCL commands to run before opt_design"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
...
...
@@ -102,6 +85,13 @@
<parameter
id=
"Timing"
/>
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter
id=
"VivadoOptActionIndex"
default=
"%%ChosenActionIndex"
...
...
@@ -115,9 +105,6 @@
"SkipOptimization"
"---"
"SnapshotOpt"
<!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"Pre-optimization commands"
>
"PreOptTCL"
...
...
tools/Xilinx_Vivado/vivado_opt_phys.xml
View file @
4ab58c67
...
...
@@ -45,23 +45,6 @@
<parameter
id=
"SkipSnapshotOptPhys"
label=
"Skip snapshot save"
tooltip=
"Do not create snapshot after physical optimization"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<parameter
id=
"PreOptTCL"
label=
"Pre-optimize TCL commands"
tooltip=
"TCL commands to run before opt_design"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
...
...
@@ -115,6 +98,11 @@
<parameter
id=
"Timing"
/>
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
...
...
@@ -131,9 +119,6 @@
"SkipSnapshotOptPhys"
"---"
"SnapshotOptPhys"
<!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"Pre-optimization commands"
>
"PreOptTCL"
...
...
tools/Xilinx_Vivado/vivado_opt_place.xml
View file @
4ab58c67
...
...
@@ -61,7 +61,7 @@
disable=
"DisableVivadoOptPlace"
autosave=
"AutosaveVivadoOptPlace"
save=
"SaveVivadoOptPlace"
inherits=
"VivadoToolPrototype"
>
<action-menu>
<action
label=
"Optimize and Place"
resource=
""
icon=
"mondrian2x2.png"
/>
...
...
@@ -83,23 +83,6 @@
<parameter
id=
"SkipSnapshotPlace"
label=
"Skip snapshot save"
tooltip=
"Do not create snapshot after placement"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<parameter
id=
"PreOptTCL"
label=
"Pre-optimize TCL commands"
tooltip=
"TCL commands to run before opt_design"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
...
...
@@ -181,36 +164,28 @@
<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"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- hidden (calculated) parameters -->
...
...
@@ -232,9 +207,6 @@
"SkipSnapshotPlace"
"---"
"SnapshotOptPlace"
<!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"Pre-optimization commands"
>
"PreOptTCL"
...
...
@@ -286,23 +258,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>
...
...
@@ -391,7 +346,7 @@
info=
"PatternInfo"
>
"-c"
"%GrepEWI"
"| %SedPaths"
"| %
Vivado
SedPaths"
<if
NoBabyTalk=
"true"
>
"| grep --line-buffered -v \"license\""
</if>
...
...
tools/Xilinx_Vivado/vivado_opt_power.xml
View file @
4ab58c67
...
...
@@ -29,23 +29,6 @@
default=
"false"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"SkipPowerOptimization"
label=
"skip power optimize"
tooltip=
"Do not run power_opt_design"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<parameter
id=
"PreOptTCL"
label=
"Pre-optimize TCL commands"
tooltip=
"TCL commands to run before power_opt_design"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
readonly=
"false"
visible=
"true"
/>
...
...
@@ -71,6 +54,11 @@
<parameter
id=
"Timing"
/>
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
...
...
@@ -85,9 +73,6 @@
"SkipPowerOptimization"
"---"
"SnapshotOptPower"
<!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"Pre-optimization commands"
>
"PreOptTCL"
...
...
tools/Xilinx_Vivado/vivado_place.xml
View file @
4ab58c67
...
...
@@ -55,23 +55,6 @@
<parameter
id=
"SkipSnapshotPlace"
label=
"Skip snapshot save"
tooltip=
"Do not create snapshot after placement"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<parameter
id=
"PreOptTCL"
label=
"Pre-placement TCL commands"
tooltip=
"TCL commands to run before place_design"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
...
...
@@ -111,6 +94,11 @@
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
...
...
@@ -125,9 +113,6 @@
"SkipPlacement"
"---"
"SnapshotPlace"
<!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"Pre-optimization commands"
>
"PreOptTCL"
...
...
tools/Xilinx_Vivado/vivado_proto.xml
View file @
4ab58c67
...
...
@@ -8,7 +8,6 @@
shell=
"/bin/bash"
description=
"Vivado tool prototype"
abstract=
"true"
parser=
"true"
>
<!-- parser parameters -->
<parameter
id=
"PatternErrors"
label=
"Errors"
tooltip=
"Regular expression for error messages"
...
...
@@ -44,9 +43,31 @@
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"
/>
<parameter
id=
"ShowWarnings"
label=
"Show Warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Show info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<input>
<group
name=
"Parser"
weight=
"10"
>
"ShowWarnings"
"ShowInfo"
"GrepEWI"
"---"
"NoFileProblem"
"Drc"
"Vivado_Tcl"
...
...
@@ -72,7 +93,7 @@
info=
"PatternInfo"
>
"-c"
"%GrepEWI"
"| %SedPaths"
"| %
Vivado
SedPaths"
<if
NoBabyTalk=
"true"
>
"| grep --line-buffered -v \"license\""
</if>
...
...
tools/Xilinx_Vivado/vivado_route.xml
View file @
4ab58c67
...
...
@@ -42,23 +42,6 @@
<parameter
id=
"SkipSnapshotRoute"
label=
"Skip snapshot save"
tooltip=
"Do not create snapshot after route"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<parameter
id=
"PreRouteTCL"
label=
"Pre-route TCL commands"
tooltip=
"TCL commands to run before route_design"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
...
...
@@ -116,6 +99,12 @@
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<parameter
id=
"AutosaveVivadoRoute"
default=
"?%%ChosenActionIndex=0 ^ %SkipSnapshotRoute=false : true, false"
visible=
"false"
type=
"Boolean"
format=
"None"
/>
...
...
@@ -129,9 +118,6 @@
"SkipPreRoute"
"SkipSnapshotRoute"
"SnapshotRoute"
<!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"Pre-routing commands"
>
"PreRouteTCL"
...
...
tools/Xilinx_Vivado/vivado_synthesis.xml
View file @
4ab58c67
...
...
@@ -97,22 +97,7 @@
<parameter
id=
"ResetProject"
label=
"Reset project"
tooltip=
"Reset project before loading source files"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowWarnings"
label=
"Show Warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Show info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<!-- synth_design arguments -->
...
...
@@ -190,6 +175,13 @@
<parameter
id=
"Timing"
/>
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- invisible/calculated parameters -->
<parameter
id=
"AutosaveVivadoSynthesis"
default=
"?%%ChosenActionIndex=0 ^ %SkipSnapshotSynth=false : true, false"
visible=
"false"
type=
"Boolean"
format=
"None"
/>
...
...
@@ -203,9 +195,6 @@
"SkipSnapshotSynth"
"SnapshotSynth"
<!-- same as in project -->
"ResetProject"
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"Synthesis"
>
"directive"
...
...
tools/Xilinx_Vivado/vivado_timing_proto.xml
View file @
4ab58c67
...
...
@@ -62,23 +62,6 @@
<parameter
id=
"SkipTCL"
label=
"Skip TCL commands"
tooltip=
"Do not run pre-timing summary TCL commands"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
<parameter
id=
"PreTCL"
label=
"Pre timing summary TCL commands"
tooltip=
"TCL commands to run before timing summary"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
...
...
@@ -214,6 +197,12 @@
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- 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"
/>
...
...
@@ -221,9 +210,6 @@
<group
name=
"General"
>
"DisableVivadoTiming"
"SkipTCL"
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"TCL commands"
>
"PreTCL"
...
...
tools/Xilinx_Vivado/vivado_timing_summary_proto.xml
View file @
4ab58c67
...
...
@@ -42,30 +42,13 @@
<action
label=
"Report timing summary"
resource=
""
icon=
"clock_sum.png"
/>
</action-menu>
<parameter
id=
"SkipTCL"
label=
"Skip TCL commands"
tooltip=
"Do not run pre-timing summary TCL commands"
<parameter
id=
"SkipTCL"
label=
"Skip TCL commands"
tooltip=
"Do not run pre-timing summary TCL commands"
default=
"false"
type=
"Boolean"
format=
"None"
/>
<!--
<parameter id="SkipTCL" label="Skip TCL commands" tooltip="Do not run pre-timing summary TCL commands"
default="false" type= "Boolean" format="None"/>
<!-- left from synthesis, may need update-->
<parameter
id=
"ShowWarnings"
label=
"Parse warnings"
tooltip=
"Parse warning messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"ShowInfo"
label=
"Parse info"
tooltip=
"Parse info messages"
default=
"true"
type=
"Boolean"
format=
"None"
/>
<parameter
id=
"PreGrepW"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowWarnings=true: |WARNING, "
/>
<parameter
id=
"PreGrepI"
visible=
"false"
type=
"String"
format=
"None"
default=
"?%ShowInfo=true: |INFO, "
/>
<parameter
id=
"GrepEWI"
label=
"Grep filter"
tooltip=
"Calculated grep filter"
default=
"grep --line-buffered -E 'ERROR%PreGrepW%PreGrepI'"
type=
"String"
format=
"CopyValue"
visible=
"true"
readonly=
"true"
/>
-->
<parameter
id=
"PreTCL"
label=
"Pre timing summary TCL commands"
tooltip=
"TCL commands to run before timing summary"
type=
"Stringlist"
format=
"ProgramSyntax"
default=
""
omit=
""
readonly=
"false"
visible=
"true"
/>
...
...
@@ -134,6 +117,13 @@
<parameter
id=
"Timing"
/>
<parameter
id=
"Pwropt"
/>
<parameter
id=
"OtherProblems"
/>
<parameter
id=
"ShowWarnings"
/>
<parameter
id=
"ShowInfo"
/>
<parameter
id=
"PreGrepW"
/>
<parameter
id=
"PreGrepI"
/>
<parameter
id=
"GrepEWI"
/>
<!-- 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"
/>
...
...
@@ -141,9 +131,6 @@
<input>
<group
name=
"General"
>
"SkipTCL"
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group
name=
"TCL commands"
>
"PreTCL"
...
...
tools/Xilinx_Vivado/vivado_unisims.xml
View file @
4ab58c67
...
...
@@ -8,7 +8,7 @@
shell=
"/bin/bash"
description=
"Copy unisims library to the project directory"
>
<action-menu>
<action
label=
"Copy unisims"
resource=
""
icon=
"
door_in
.png"
/>
<action
label=
"Copy unisims"
resource=
""
icon=
"
copy
.png"
/>
</action-menu>
<input>
<group
name=
"General"
>
...
...
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