Commit 16c5f208 authored by Andrey Filippov's avatar Andrey Filippov

Added per-tool configuration of the hierarchical name parsers,

implemented some parsing of the ISE output
parent adef049e
#!/usr/bin/env python
##/usr/bin/python -u
import sys
import re
patternBit=re.compile("_\d+$")
START_REF="<"
END_REF=">"
#PREFIX_REF="@{"
#SUFFIX_REF="}@"
PREFIX_REF=""
SUFFIX_REF=""
MODE_IMMED=0
MODE_SINGLE=1
MODE_ONCE=2
MODE_POSTPONE=3
tool="EXTERNAL_TOOL"
if len(sys.argv)>1:
tool=sys.argv[1]
try:
global_top_module=int(sys.argv[2])
except:
global_top_module=""
try:
global_mode=int(sys.argv[3])
except:
global_mode=MODE_POSTPONE # MODE_SINGLE
global_db={}
global_pRef=()
def isProblem(string):
if string.startswith("ERROR:") or string.startswith("WARNING:") or string.startswith("INFO:"):
......@@ -13,7 +39,97 @@ def hasLine(string):
if '" Line ' in string:
return True
return False
def addTool(string,tool):
def getLineSignalBitISE(string):
# sys.stdout.write(START_REF)
if START_REF in string:
start1 = string.find(START_REF)
end1 = string.find(END_REF,start1)
if end1 <0:
return None
line=string[:start1]+PREFIX_REF+"%s"+SUFFIX_REF+string[end1+len(END_REF):]
ref=string[start1+len(START_REF):end1]
# Assuming <...> in block <...>
start2= string.find(START_REF,end1)
if start2>=0 :
end2 = string.find(END_REF,start2)
if end2>=0:
ref=string[start2+len(START_REF):end2]+"/"+ref
else:
pass # Use global_top_module ?
# replace "/" (used in Xilinx ISE) with "." for Verilog
ref=ref.replace("/",".")
#Extract bit number - onluy apply to the last segment?
#pattern.search("outreg_29").start()
match = patternBit.search(ref)
if match:
pos=match.start()
bit=int(ref[pos+1:])
ref=ref[:pos]+"[%s]"
else:
bit=-1
return (line,ref,bit)
else:
return None
def addRef(pRef):
global global_db
#TODO: put try on all
if pRef:
if not pRef[0] in global_db:
global_db[pRef[0]]={}
line_type=global_db[pRef[0]]
if not pRef[1] in line_type:
line_type[pRef[1]]=set()
line_type[pRef[1]].add(pRef[2])
def getRanges(pRef):
global global_db
try:
s=global_db[pRef[0]][pRef[1]]
except:
s=set();
ranges=[];
while s:
l=min(s)
s.remove(l)
h=l+1
while h in s:
s.remove(h)
h=h+1
ranges.append((l,h))
return ranges
def printLineRef(pRef): # modified from Vivado, no global_top_module
global global_pRef
global global_mode
global global_db
global global_top_module
if pRef:
ranges=getRanges(pRef)
if ranges:
# line=pRef[0]
ref=pRef[1];
# if global_top_module:
# ref= global_top_module+"."+ref
for rng in ranges:
if (rng[0]<0):
sys.stdout.write(pRef[0]%(ref))
elif (rng[1]<=(rng[0]+1)):
sys.stdout.write(pRef[0]%(ref%(rng[0])))
else:
sys.stdout.write(pRef[0]%(ref%("%d:%d"%(rng[1]-1,rng[0]))))
if (global_mode == MODE_ONCE):
for rng in ranges:
try:
global_db[pRef[0]][pRef[1]] -= set(range(rng[0],rng[1]))
if not global_db[pRef[0]][pRef[1]]:
global_db[pRef[0]].pop(pRef[1])
if not global_db[pRef[0]]:
global_db.pop(pRef[0])
except:
pass
def addTool0(string,tool):
if hasLine(string):
return string
else:
......@@ -21,16 +137,50 @@ def addTool(string,tool):
return string[:index]+(" \"%s\" Line 0000:"%tool)+string[index:]
# return string[:len(string)-1]+(" \"%s\" Line 0000:"%tool)+"\n"
def addToolISE(string,tool):
global global_pRef
global global_mode
if " line " in string:
string=string.replace (" line "," Line ")
if hasLine(string):
if ((global_mode == MODE_SINGLE) or (global_mode == MODE_ONCE)) and global_pRef:
printLineRef(global_pRef)
global_pRef=None
return string
else:
# return string[:len(string)-1]+"[%s:0000]"%tool+string[len(string)-1]
if (string):
index=string.find(" - ")+3
string=string[:index]+(" \"%s\" Line 0000:"%tool)+string[index:]
if global_mode != MODE_IMMED:
parseRef=getLineSignalBitISE(string)
if (global_mode != MODE_IMMED) and parseRef:
addRef(parseRef)
if ((global_mode != MODE_POSTPONE) and global_pRef and
((parseRef[0] != global_pRef[0]) or(parseRef[1] != global_pRef[1]))) :
printLineRef(global_pRef)
global_pRef=parseRef
return ""
else:
if ((global_mode == MODE_SINGLE) or (global_mode == MODE_ONCE)) and global_pRef:
printLineRef(global_pRef)
global_pRef=None
return string
pline=""
for line in iter(sys.stdin.readline,''):
if isProblem(pline):
if line.startswith(" ") :
if line.startswith(" ") and False : #This was taken from Vivado to merge lines, not so in ISE
pline = pline[:len(pline)-1]+line[2:]
else:
sys.stdout.write(addTool(pline,tool))
sys.stdout.write(addToolISE(pline,tool))
pline = line
else:
pline = line
if isProblem(pline):
sys.stdout.write(addTool(pline,tool))
sys.stdout.write(addToolISE(pline,tool))
addToolISE("",tool)
if global_mode == MODE_POSTPONE:
for line in global_db:
for ref in global_db[line]:
printLineRef((line,ref,0)) # will not add
......@@ -11,24 +11,26 @@ PREFIX_REF=""
SUFFIX_REF=""
MODE_IMMED=0
MODE_SINGLE=1
MODE_ONCE=1
MODE_ONCE=2
MODE_POSTPONE=3
tool="EXTERNAL_TOOL"
if len(sys.argv)>1:
tool=sys.argv[1]
try:
global_top_module=int(sys.argv[2])
except:
global_top_module=""
try:
global_mode=int(sys.argv[2])
global_mode=int(sys.argv[3])
except:
global_mode=MODE_POSTPONE # MODE_SINGLE
global_db={}
global_pRef=()
try:
global_top_module=int(sys.argv[3])
except:
global_top_module="test_ps7"
sys.stdout.write("Running: %s %s %s %s\n" % (sys.argv[0],sys.argv[1],sys.argv[2],sys.argv[3]))
def isProblem(string):
if string.startswith("ERROR:") or string.startswith("WARNING:") or string.startswith("INFO:"):
......@@ -77,7 +79,7 @@ def addRef(pRef):
global_db[pRef[0]]={}
line_type=global_db[pRef[0]]
if not pRef[1] in line_type:
line_type[pRef[1]]=set()
line_type[pRef[1]]=set()
line_type[pRef[1]].add(pRef[2])
def getRanges(pRef):
global global_db
......@@ -102,13 +104,12 @@ def printLineRef(pRef):
global global_db
global global_top_module
if pRef:
# add(pRef) # just in case
ranges=getRanges(pRef)
if ranges:
line=pRef[0]
# line=pRef[0]
ref=pRef[1];
if global_top_module:
ref= global_top_module+"."+ref
ref= global_top_module+"."+ref
for rng in ranges:
if (rng[0]<0):
sys.stdout.write(pRef[0]%(ref))
......@@ -123,7 +124,7 @@ def printLineRef(pRef):
if not global_db[pRef[0]][pRef[1]]:
global_db[pRef[0]].pop(pRef[1])
if not global_db[pRef[0]]:
global_db.pop(pRef[0])
global_db.pop(pRef[0])
except:
pass
......@@ -149,7 +150,7 @@ def addTool(string,tool):
addRef(parseRef)
if ((global_mode != MODE_POSTPONE) and global_pRef and
((parseRef[0] != global_pRef[0]) or(parseRef[1] != global_pRef[1]))) :
printLineRef(global_pRef)
printLineRef(global_pRef)
global_pRef=parseRef
return ""
else:
......@@ -159,6 +160,14 @@ def addTool(string,tool):
return string
def debugSize():
l=0
for line in global_db:
for ref in global_db[line]:
l+=len(global_db[line][ref])
return l
#### Start
pline=""
for line in iter(sys.stdin.readline,''):
......@@ -167,6 +176,7 @@ for line in iter(sys.stdin.readline,''):
pline = pline[:len(pline)-1]+line[2:]
else:
pline=addTool(pline,tool)
# sys.stdout.write("*"+str(debugSize())+pline)
sys.stdout.write(pline)
pline = line
else:
......@@ -178,5 +188,6 @@ if isProblem(pline):
if global_mode == MODE_POSTPONE:
for line in global_db:
for ref in global_db[line]:
printLineRef((line,ref,0)) # will not add
printLineRef((line,ref,0)) # will not add
# printLineRef((line,ref,0)) # will not add
......@@ -108,7 +108,8 @@ public class ComboComponent extends GeneralComponent {
item = param.getDefaultValue(null).get(0); // null for topFormatProcessor
ParamTypeEnum type = (ParamTypeEnum)param.getType();
int pos = type.getLabelIndex(item);
// int pos = type.getLabelIndex(item);
int pos = type.getValueIndex(item);
String[] values = type.getValues();
return values[pos];
......
......@@ -93,6 +93,23 @@
<parameter id="intstyle"/> <!-- USED Bitgen -->
<parameter id="command_files"/> <!-- USED Bitgen-->
<parameter id="speed_grade"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- calculated parameters -->
<parameter id="ISEBitgenActionIndex" default="%%ChosenActionIndex"
......
......@@ -40,6 +40,14 @@
<typedef name = "Cardinal_M1_100">
<paramtype kind="number" lo="-1" hi="100" format="%d" />
</typedef>
<typedef name="ParserModeType">
<paramtype kind= "enum" base="String">
<item value="0" label="Tool output is parsed immediately"/>
<item value="1" label="Tool output is delayed by not more than 1 line when consolidating bits"/>
<item value="2" label="As '1', but do not show same bits again"/>
<item value="3" label="All tool output containg hierarchical output is delayed to the very end"/>
</paramtype>
</typedef>
<syntax name="DashNamePart" format="-%%ParamName %part" />
......
......@@ -231,6 +231,23 @@
<parameter id="intstyle"/> <!-- USED -->
<parameter id="command_files"/> <!-- USED -->
<parameter id="speed_grade"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- calculated parameters -->
<parameter id="ISEMapActionIndex" default="%%ChosenActionIndex"
......
......@@ -111,6 +111,23 @@
<parameter id="intstyle"/>
<parameter id="command_files"/>
<parameter id="speed_grade"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- calculated parameters -->
<parameter id="ISENGDBuildActionIndex" default="%%ChosenActionIndex"
......
......@@ -137,6 +137,23 @@
<parameter id="intstyle"/> <!-- USED PAR -->
<parameter id="command_files"/> <!-- USED PAR-->
<parameter id="speed_grade"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- calculated parameters -->
<parameter id="ISEPARActionIndex" default="%%ChosenActionIndex"
......
......@@ -67,6 +67,23 @@
<parameter id="intstyle"/>
<parameter id="command_files"/>
<parameter id="speed_grade"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- hidden (calculated) parameters -->
<parameter id= "useRedirect" label="debug condition"
default="?(%info = true | %arch # ) ^ %redirect # : true , false" visible="true" omit="false" type="Boolean" format="None"/>
......
......@@ -60,7 +60,21 @@
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default='INFO:(\S*).*"(.*)"\s*Line\s*([0-9]+):\s*(\S.*)'
visible="true" type="String" format="CopyValue"/>
visible="true" type="String" format="CopyValue"/>
<parameter id="InstanceCapture" label="Instance capture"
tooltip= "Regular expression to extract hierarchical instance name (outer '()' enclose the hierarchical name itself)"
default="((([a-zA-Z_]([a-zA-Z_0-9]|\[[0-9:]+\])*)\.)+([a-zA-Z_]([a-zA-Z_0-9]|\[[0-9:]+\])*))"
visible="true" type="String" format="CopyValue"/>
<parameter id="InstanceSeparator" label="Instance separator"
tooltip= "Regular expression to extract hierarchical name separator, for literal '.' it is '\.'"
default="\."
visible="true" type="String" format="CopyValue"/>
<parameter id="InstanceSuffix" label="Instance suffix"
tooltip= "Regular expression to match/remove name suffixes automatically added by the tools"
default="_reg"
visible="true" type="String" format="CopyValue"/>
<parameter id="parser_mode" label="Parser mode" tooltip= "Parser mode (consolidation of bits of the same instance)"
default="1" visible="true" omit="" type="ParserModeType" 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"
......@@ -140,15 +154,22 @@
"PatternErrors"
"PatternWarnings"
"PatternInfo"
"InstanceCapture"
"InstanceSeparator"
"InstanceSuffix"
"parser_mode"
</group>
</input>
<output>
<line name= "parser_ISE"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
info= "PatternInfo"
instance-capture= "InstanceCapture"
instance-separator="InstanceSeparator"
instance-suffix= "InstanceSuffix">
"-c"
"python -u %parsers_path%parser_name %%ToolName | "
"python -u %parsers_path%parser_name %%ToolName %%TopModule %parser_mode| "
"%GrepEWI"
"| %ISESedPaths"
<if NoBabyTalk="true">
......
......@@ -65,7 +65,24 @@
<!-- common parameters from the base tool -->
<parameter id="intstyle"/>
<parameter id="command_files"/>
<parameter id="speed_grade"/>
<parameter id="speed_grade"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- calculated parameters -->
<parameter id="ISETraceActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
......
......@@ -66,6 +66,23 @@
<parameter id="intstyle"/>
<parameter id="command_files"/>
<parameter id="speed_grade"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- calculated parameters -->
<parameter id="ISETraceActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
......
......@@ -104,6 +104,23 @@
<parameter id="intstyle"/> <!-- USED Trace -->
<parameter id="command_files"/> <!-- USED Trace-->
<parameter id="speed_grade"/> <!-- USED Trace-->
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- calculated parameters -->
<parameter id="ISETraceActionIndex" default="%%ChosenActionIndex"
......
......@@ -475,6 +475,23 @@
<parameter id="intstyle"/>
<parameter id="command_files"/>
<parameter id="speed_grade"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<!-- calculated parameters -->
<parameter id="FilteredSourceListPar" type="Filelist" label="FilteredSourceListPar"
......
......@@ -85,6 +85,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -102,6 +106,7 @@
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- hidden (calculated) parameters -->
......
......@@ -30,15 +30,17 @@
<interface name="VivadoInterface" extends="FPGAPprojectInterface">
<syntax name="GrepFilterProblemSyntax" format='| grep --line-buffered -v "\[%%ParamName"' />
<syntax name="GrepFilterProblemOtherSyntax" format='%(| grep --line-buffered -v "\[%%ParamValue"%|\n%)' />
<typedef name="ParserModeType">
<paramtype kind= "enum" base="String">
<item value="0" label="Tool output is parsed immediately"/>
<item value="1" label="Tool output is delayed by not more than 1 line when consolidating bits"/>
<item value="2" label="As '1', but do not show same bits again"/>
<item value="3" label="All tool output containg hierarchical output is delayed to the very end"/>
</paramtype>
</typedef>
<!-- <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 Vivado tools -->
......
......@@ -101,6 +101,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -113,12 +117,12 @@
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
......
......@@ -114,6 +114,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -131,6 +135,7 @@
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
......
......@@ -196,6 +196,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -208,12 +212,12 @@
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- hidden (calculated) parameters -->
......
......@@ -70,6 +70,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -87,6 +91,7 @@
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
......
......@@ -109,6 +109,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -121,12 +125,12 @@
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
......
......@@ -58,8 +58,9 @@
tooltip= "Regular expression to match/remove name suffixes automatically added by the tools"
default="_reg"
visible="true" type="String" format="CopyValue"/>
<parameter id="parser_mode" label="Parser mode" tooltip= "Parser mode (consolidation of bits of the same instance)"
default="1" visible="true" omit="" type="ParserModeType" 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"/>
......@@ -110,7 +111,7 @@
<parameter id="MaxMsg" outid="set_param messaging.defaultLimit"
label="Maximal messages" tooltip= "Maximum number of messages to output (per type)"
default="100" visible="true" omit="100" type="Cardinal" format="NameValue"/>
default="1000" visible="true" omit="100" type="Cardinal" format="NameValue"/>
<input>
......@@ -143,6 +144,7 @@
"InstanceCapture"
"InstanceSeparator"
"InstanceSuffix"
"parser_mode"
</group>
</input>
<output>
......@@ -154,7 +156,7 @@
instance-separator="InstanceSeparator"
instance-suffix= "InstanceSuffix">
"-c"
"python -u %parsers_path%parser_name %%ToolName | "
"python -u %parsers_path%parser_name %%ToolName %%TopModule %parser_mode| "
"%GrepEWI"
"| %VivadoSedPaths"
<if NoBabyTalk="true">
......
......@@ -114,6 +114,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -126,12 +130,12 @@
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<parameter id="AutosaveVivadoRoute" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotRoute=false : true, false"
visible="false" type="Boolean" format="None"/>
......
......@@ -195,6 +195,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -207,7 +211,6 @@
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
......
......@@ -66,6 +66,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -78,6 +82,7 @@
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="MaxMsg"/>
</tool>
</vdt-project>
......@@ -212,6 +212,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -224,12 +228,12 @@
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
......
......@@ -59,6 +59,29 @@
<!-- 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"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<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="MaxMsg"/>
</tool>
......
......@@ -137,6 +137,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -149,12 +153,12 @@
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="ShowWarnings"/>
<parameter id="ShowInfo"/>
<parameter id="PreGrepW"/>
<parameter id="PreGrepI"/>
<parameter id="GrepEWI"/>
<parameter id="MaxMsg"/>
<!-- Invisible (calculated) parameters -->
<!-- same value as %file, but will appear withou "-file" prefix -->
......
......@@ -61,6 +61,29 @@
<!-- 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"/>
<!-- parser parameters - will have different values than the base tool -->
<parameter id="parsers_path"/>
<parameter id="parser_name"/>
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<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="MaxMsg"/>
</tool>
</vdt-project>
......@@ -67,6 +67,10 @@
<parameter id="PatternErrors"/>
<parameter id="PatternWarnings"/>
<parameter id="PatternInfo"/>
<parameter id="InstanceCapture"/>
<parameter id="InstanceSeparator"/>
<parameter id="InstanceSuffix"/>
<parameter id="parser_mode"/>
<parameter id="NoFileProblem"/>
<parameter id="Drc"/>
<parameter id="Vivado_Tcl"/>
......@@ -78,6 +82,7 @@
<parameter id="Project"/>
<parameter id="Timing"/>
<parameter id="Pwropt"/>
<parameter id="OtherProblems"/>
<parameter id="OtherProblems"/>
<parameter id="MaxMsg"/>
</tool>
</vdt-project>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment