Commit 284d0f69 authored by Andrey Filippov's avatar Andrey Filippov

new tool description files

parent c21075db
...@@ -205,10 +205,10 @@ ...@@ -205,10 +205,10 @@
</line> </line>
<line name="vivado_copy_after_bitstream"> <line name="vivado_copy_after_bitstream">
"-c" "-c"
"mkdir -p %VivadoLocalDir ;" "mkdir -p %VivadoLocalResultDir ;"
"rsync -avr -e ssh" "rsync -avr -e ssh"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/build/%filename.*" "%RemoteUser@%RemoteHost:%VivadoProjectRoot/build/%filename.*"
"%VivadoLocalDir/" "%VivadoLocalResultDir/"
</line> </line>
<line name="parser_VivadoBitstream" <line name="parser_VivadoBitstream"
errors= "PatternErrors" errors= "PatternErrors"
......
...@@ -8,13 +8,13 @@ ...@@ -8,13 +8,13 @@
shell="/bin/bash" interface="VivadoInterface" description="Launching remote Xilinx Vivado in console"> shell="/bin/bash" interface="VivadoInterface" description="Launching remote Xilinx Vivado in console">
<action-menu> <action-menu>
<action label="Launch Vivado" resource="" icon="door_in.png" /> <action label="Launch Vivado" resource="" icon="door_in.png" />
<action label="Generate public key" resource="" icon="gnu.png" /> <action label="Generate public key" resource="" icon="key.png" />
<action label="Setup connection to" resource="%RemoteUser@%RemoteHost" <action label="Setup connection to" resource="%RemoteUser@%RemoteHost"
check-extension="false" check-existence="false" icon="gnu.png" /> check-extension="false" check-existence="false" icon="setup.png" />
<action label="Launch shell on remote" resource="" icon="xilinx.png" /> <action label="Launch shell on remote" resource="" icon="shell.png" />
</action-menu> </action-menu>
<parameter id="command" label="Shell command" default="" <parameter id="command" label="Shell command" default="bash"
type="String" format="CopyValue" visible="true" readonly="false" /> type="String" format="CopyValue" visible="true" readonly="false" />
<parameter id="actionIndex" default="%%ChosenActionIndex" <parameter id="actionIndex" default="%%ChosenActionIndex"
......
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<interface name="VivadoOptInterface" extends="VivadoInterface">
<typedef name="OptDirectiveType">
<paramtype kind= "enum" base="String">
<item value="Explore" label="Run multiple passes of optimization to improve results."/>
<item value="ExploreArea" label="Run multiple passes of optimization, with an emphasis on reducing area."/>
<item value="ExploreSequentialArea" label="Run multiple passes of optimization, with an emphasis on reducing registers and related combinational logic."/>
<item value="AddRemap" label="Run the default optimization, and include LUT remapping to reduce logic levels."/>
<item value="RuntimeOptimized" label="Run the fewest iterations, trading optimization results for faster runtime."/>
<item value="Default" label=" Run the default optimization."/>
</paramtype>
</typedef>
</interface>
<tool name="VivadoOpt" label="Optimize design"
project="FPGA_project"
interface="VivadoOptInterface"
package="FPGA_package"
shell="/bin/bash"
description="Vivado optimize design"
result="SnapshotOpt"
log-dir="VivadoLogDir"
state-dir="VivadoLocalDir"
restore="RestoreVivadoOpt"
disable="DisableVivadoOpt"
autosave="AutosaveVivadoOpt"
save="SaveVivadoOpt"
>
<action-menu>
<action label="Optimize" resource="" icon="opt_blue.png" />
</action-menu>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
default="false" type= "Boolean" format="None"/>
<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=""
readonly="false" visible="true" />
<!-- opt_design arguments -->
<parameter id="directive_opt" outid="directive" label="Directive" tooltip= "Mode of behaviour for opt_design command, not compatible with individual optimization settings."
default="Default" visible="true" omit="Default" type="OptDirectiveType" format="Dash"/>
<parameter id="retarget" label="Retarget" tooltip= "Retarget block types when using different part"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="propconst" label="Propagate constants" tooltip= "Propagate constants across leaf-level instances"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="sweep" label="Remove unconnected instances" tooltip= "Remove unconnected leaf-level instances"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="bram_power_opt" label="Optimize BRAM" tooltip= "Power optimization of BRAM cells - changes WRITE_MODE and clock gating"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="remap" label="Remap LUTs" tooltip= "Remap logic optimally in LUTs"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="resynth_area" label="Re-synthesis in area mode" tooltip= " Perform re-synthesis in area mode to reduce the number of LUTs."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="resynth_seq_area" label="Re-synthesis with sequential" tooltip= "Re-synthesis with both combinatorial and sequential optimizations)."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="quiet_opt" outid="quiet" label="Quiet" tooltip= "Ignore errors, return TCL_OK in any case"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="verbose_opt" outid="verbose" label="verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="False" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter id="VivadoOptActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
<!-- invisible/calculated parameters -->
<parameter id="AutosaveVivadoOpt" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotOpt=false : true, false"
visible="false" type="Boolean" format="None"/>
<input>
<group name="General">
"SkipPreOptimization"
"SkipOptimization"
"---"
"SnapshotOpt" <!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group name="Pre-optimization commands">
"PreOptTCL"
</group>
<group name="Optimization">
"directive_opt"
"---"
"retarget"
"propconst"
"sweep"
"bram_power_opt"
"remap"
"resynth_area"
"resynth_seq_area"
"---"
"quiet_opt"
"verbose_opt"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"Vivado_Tcl"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_opt"
dest="VivadoConsole"
mark="``"
sep=""
prompt="@@FINISH@@"
success="opt_design completed successfully"
log=""
stdout="parser_VivadoOpt">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
<if-not PreOptTCL="">
"%PreOptTCL\n"
</if-not>
<if PreOptTCL="">
"puts \"No pre-optimization TCL commands specified\"\n"'
</if>
</if>
<if SkipOptimization="false">
<!-- Run optimization -->
"opt_design"
"%retarget"
"%propconst"
"%sweep"
"%bram_power_opt"
"%remap"
"%resynth_area"
"%resynth_seq_area"
"%directive_opt"
"%quiet_opt"
"%verbose_opt"
"\n"
</if>
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoOpt"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%Vivado_Tcl"
"%OtherProblems"
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Optimization:0000\]@'"
</if>
</line>
</output>
</tool>
<!-- Restore tool for VivadoOptPlace -->
<tool name="RestoreVivadoOpt"
project="FPGA_project"
interface="VivadoInterface"
package="FPGA_package"
inherits="RestoreVivado"/>
<!-- Save tool for VivadoOptPlace -->
<tool name="SaveVivadoOpt"
project="FPGA_project"
interface="VivadoInterface"
package="FPGA_package"
inherits="SaveVivado"/>
</vdt-project>
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<interface name="VivadoOptPhysInterface" extends="VivadoInterface">
<typedef name="PhysOptDirectiveType">
<paramtype kind= "enum" base="String">
<item value= "Explore" label="Run different algorithms in multiple passes of optimization, including replication for very high fanout nets."/>
<item value= "ExploreWithHoldFix" label="Same as Explore with addition of hold violation fixing."/>
<item value= "AggressiveExplore" label="Similar to Explore but with different more aggressive optimization algorithms."/>
<item value= "AlternateReplication" label="Use different algorithms for performing critical cell replication."/>
<item value= "AggressiveFanoutOpt" label="Uses different and more aggressiver algorithms for fanout-related optimizations."/>
<item value= "AlternateDelayModeling" label="Performs all optimizations using alternate algorithms for estimating net delays."/>
<item value= "AddRetime" label="Deafault optimization with additional register re-timing."/>
<item value= "Default" label="Run the default physical optimization."/>
</paramtype>
</typedef>
</interface>
<tool name="VivadoOptPhys" label="Physical (post-placement) design optimization"
project="FPGA_project"
interface="VivadoOptPhysInterface"
package="FPGA_package"
shell="/bin/bash"
description="Vivado physical optimize design"
result="SnapshotOptPhys"
log-dir="VivadoLogDir"
state-dir="VivadoLocalDir"
restore="RestoreVivadoOptPhys"
disable="DisableVivadoOptPhys"
autosave="AutosaveVivadoOptPhys"
save="SaveVivadoOptPhys"
>
<action-menu>
<action label="Post placement optimize" resource="" icon="opt_yellow.png" />
</action-menu>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipPhysOpt" label="Skip physical optimize" tooltip="Do not run phys_opt_design"
default="false" type= "Boolean" format="None"/>
<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=""
readonly="false" visible="true" />
<!-- phys_opt_design arguments -->
<!-- TODO: Make a separate command with several different settings sets -->
<parameter id="directive_phys_opt" outid="directive" label="Directive" tooltip= "Placement algorithm mode (not compatible with other specific options)"
default="Default" visible="true" omit="Default" type="PhysOptDirectiveType" format="Dash"/>
<parameter id="fanout_opt" label="Fanout optimization" tooltip= "Delay-driven optimization on high-fanout timing critical nets by replicating drivers."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="placement_opt" label="Placement optimization" tooltip= "Move cells to reduce delay on timing-critical nets."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="rewire" label="Rewire" tooltip= "Refactor logic cones to reduce logic levels and reduce delay on critical signals."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="critical_cell_opt" label="Replicate cells" tooltip= "Replicate cells on timing critical nets to reduce delays."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="dsp_register_opt" label="DSP register optimization" tooltip= "Improve critical path delay by moving registers from slices to DSP or from DSP to slices."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="bram_register_opt" label="BRAM register optimization" tooltip= "Improve critical path delay by moving registers from slices to BRAM or from BRAM to slices."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="bram_enable_opt" label="BRAM clock enable optimization" tooltip= "Selectively reverses power optimization for enable logic of BRAMs."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="shift_register_opt" label="Shift register optimization" tooltip= "Eextract beginnning/end FF from SLR to improve timing"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="hold_fix" label="Hold violations fix" tooltip= "Insert data path delay to fix hold time violations."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="retime" label="Move registers" tooltip= "Move registers through combinatorial fabric."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- TODO: Implement force_replication_on_nets args (requires? get_nets command ) -->
<parameter id="critical_pin_opt" label="Swap LUT pins" tooltip= "Swap LUT pins to improve critical path timimg."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="quiet_phys_opt" outid="quiet" label="Quiet" tooltip= "Ignore errors, return TCL_OK in any case"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<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"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter id="VivadoOptPhysActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
<!-- invisible/calculated parameters -->
<parameter id="AutosaveVivadoOptPhys" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotOptPhys=false : true, false"
visible="false" type="Boolean" format="None"/>
<input>
<group name="General">
"SkipPreOptimization"
"SkipPhysOpt"
"SkipSnapshotOptPhys"
"---"
"SnapshotOptPhys" <!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group name="Pre-optimization commands">
"PreOptTCL"
</group>
<group name="Physical Optimization">
"directive_phys_opt"
"---"
"fanout_opt"
"placement_opt"
"rewire"
"critical_cell_opt"
"dsp_register_opt"
"bram_register_opt"
"bram_enable_opt"
"shift_register_opt"
"hold_fix"
"retime"
<!-- TODO: Implement force_replication_on_nets args (requires? get_nets command ) -->
"critical_pin_opt"
"---"
"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>
<!-- Set sep="", so all new lines should be specified as \n -->
<line name="vivado_run_opt_phys"
dest="VivadoConsole"
mark="``"
sep=""
prompt="@@FINISH@@"
success="phys_opt_design completed successfully"
log=""
stdout="parser_VivadoOptPhys">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
<if-not PreOptTCL="">
"%PreOptTCL\n"
</if-not>
<if PreOptTCL="">
"puts \"No pre-optimization TCL commands specified\"\n"'
</if>
</if>
<if SkipPhysOpt="false">
<!-- Run physical optimization -->
<!-- TODO: make an extra command to run several optimizations -->
"phys_opt_design"
"%directive_phys_opt"
"%fanout_opt"
"%placement_opt"
"%rewire"
"%critical_cell_opt"
"%dsp_register_opt"
"%bram_register_opt"
"%bram_enable_opt"
"%shift_register_opt"
"%hold_fix"
"%retime"
<!-- TODO: Implement force_replication_on_nets args (requires? get_nets command ) -->
"%critical_pin_opt"
"%quiet_phys_opt"
"%verbose_phys_opt"
"\n"
</if>
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoOptPhys"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%Vivado_Tcl"
"%OtherProblems"
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[PhysOpt:0000\]@'"
</if>
</line>
</output>
</tool>
<!-- Restore tool for VivadoOptPlace -->
<tool name="RestoreVivadoOptPhys"
project="FPGA_project"
interface="VivadoInterface"
package="FPGA_package"
inherits="RestoreVivado"/>
<!-- Save tool for VivadoOptPlace -->
<tool name="SaveVivadoOptPhys"
project="FPGA_project"
interface="VivadoInterface"
package="FPGA_package"
inherits="SaveVivado"/>
</vdt-project>
...@@ -215,7 +215,7 @@ ...@@ -215,7 +215,7 @@
<parameter id="VivadoOptPlaceActionIndex" default="%%ChosenActionIndex" <parameter id="VivadoOptPlaceActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" /> type="String" format="CopyValue" visible="false" />
<!-- invisible/calculated parameters --> <!-- invisible/calculated parameters -->
<parameter id="AutosaveVivadoOptPlace" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotSynth=false : true, false" <parameter id="AutosaveVivadoOptPlace" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotOptPlace=false : true, false"
visible="false" type="Boolean" format="None"/> visible="false" type="Boolean" format="None"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<interface name="VivadoOptPowerInterface" extends="VivadoInterface">
</interface>
<tool name="VivadoOptPower" label="Power optimize design"
project="FPGA_project"
interface="VivadoOptPowerInterface"
package="FPGA_package"
shell="/bin/bash"
description="Power optimize design"
result="SnapshotOptPower"
log-dir="VivadoLogDir"
state-dir="VivadoLocalDir"
restore="RestoreVivadoOptPower"
disable="DisableVivadoOptPower"
autosave="AutosaveVivadoOptPower"
save="SaveVivadoOptPower"
>
<action-menu>
<action label="Power optimize" resource="" icon="fire.png" />
</action-menu>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
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" />
<!-- power_opt_design arguments -->
<parameter id="quiet_pwr_opt" outid="quiet" label="Quiet" tooltip= "Ignore errors, return TCL_OK in any case"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="verbose_pwr_opt" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter id="VivadoOptPowerActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
<!-- invisible/calculated parameters -->
<parameter id="AutosaveVivadoOptPower" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotOptPower=false : true, false"
visible="false" type="Boolean" format="None"/>
<input>
<group name="General">
"SkipPreOptimization"
"SkipPowerOptimization"
"---"
"SnapshotOptPower" <!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group name="Pre-optimization commands">
"PreOptTCL"
</group>
<group name="Power Optimization">
"quiet_pwr_opt"
"verbose_pwr_opt"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"Vivado_Tcl"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_opt_pwr"
dest="VivadoConsole"
mark="``"
sep=""
prompt="@@FINISH@@"
success="power_opt_design completed successfully"
log=""
stdout="parser_VivadoOptPwr">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
<if-not PreOptTCL="">
"%PreOptTCL\n"
</if-not>
<if PreOptTCL="">
"puts \"No pre-optimization TCL commands specified\"\n"'
</if>
</if>
<if SkipPowerOptimization="false">
<!-- Run power optimization -->
"power_opt_design"
"%quiet_pwr_opt"
"%verbose_pwr_opt"
"\n"
</if>
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoOptPwr"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%Vivado_Tcl"
"%OtherProblems"
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Power:0000\]@'"
</if>
</line>
</output>
</tool>
<!-- Restore tool for VivadoOptPlace -->
<tool name="RestoreVivadoOptPower"
project="FPGA_project"
interface="VivadoInterface"
package="FPGA_package"
inherits="RestoreVivado"/>
<!-- Save tool for VivadoOptPlace -->
<tool name="SaveVivadoOptPower"
project="FPGA_project"
interface="VivadoInterface"
package="FPGA_package"
inherits="SaveVivado"/>
</vdt-project>
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<interface name="VivadoPlaceInterface" extends="VivadoInterface">
<typedef name="PlaceDirectiveType">
<paramtype kind= "enum" base="String">
<item value= "Explore" label="Increased placer effort in detail placement and post-placement optimization."/>
<item value= "WLDrivenBlockPlacement" label="Wirelength-driven placement of RAM and DSP blocks."/>
<item value= "LateBlockPlacement" label="Defer detailed placement of RAMB and DSP blocks to the final stages of placement."/>
<item value= "ExtraNetDelay_high" label="Increases estimated delay of high fanout and long-distance nets. High pessimism option"/>
<item value= "ExtraNetDelay_medium" label="Increases estimated delay of high fanout and long-distance nets. Medium pessimism option"/>
<item value= "ExtraNetDelay_low" label="Increases estimated delay of high fanout and long-distance nets. Low pessimism option"/>
<item value= "SpreadLogic_high" label="Distribute logic across the device - highest level of distribution."/>
<item value= "SpreadLogic_medium" label="Distribute logic across the device - medium level of distribution."/>
<item value= "SpreadLogic_low" label="Distribute logic across the device - lowest level of distribution."/>
<item value= "ExtraPostPlacementOpt" label="Increased placer effort in post-placement optimization."/>
<item value= "SSI_ExtraTimingOpt" label="Use an alternate algorithm for timing-driven partitioning across SLRs."/>
<item value= "SSI_SpreadSLLs" label="Partition across SLRs and allocate extra area for regions of higher connectivity."/>
<item value= "SSI_BalanceSLLs" label="Partition across SLRs while attempting to balance SLLs between SLRs."/>
<item value= "SSI_BalanceSLRs" label="Partition across SLRs to balance number of cells between SLRs."/>
<item value= "SSI_HighUtilSLRs" label="Direct the placer to attempt to place logic closer together in each SLR."/>
<item value= "RuntimeOptimized" label="Run fewest iterations, trade higher design performance for faster run time"/>
<item value= "Quick " label="Fastest runtime, non-timing-driven, performs the minimum required placement for the design."/>
<item value= "Default" label="Run the default placement."/>
</paramtype>
</typedef>
</interface>
<tool name="VivadoPlace" label="Place design"
project="FPGA_project"
interface="VivadoPlaceInterface"
package="FPGA_package"
shell="/bin/bash"
description="Vivado place design"
result="SnapshotPlace"
log-dir="VivadoLogDir"
state-dir="VivadoLocalDir"
restore="RestoreVivadoPlace"
disable="DisableVivadoPlace"
autosave="AutosaveVivadoPlace"
save="SaveVivadoPlace"
>
<action-menu>
<action label="Place" resource="" icon="mondrian2x2.png" />
</action-menu>
<parameter id="SkipPreOptimization" label="Skip pre-optimization" tooltip="Do not run pre optimization TCL commands"
default="false" type= "Boolean" format="None"/>
<parameter id="SkipPlacement" label="Skip place" tooltip="Do not run place_design"
default="false" type= "Boolean" format="None"/>
<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=""
readonly="false" visible="true" />
<!-- place_design arguments -->
<!-- No support yet for "-cells" to limit placement to selected cells. Will require multiple runs with
different settings. Can probably create several pages of parameters alternatives for that purpose
and then run "placement - alt1", "placement - alt2", ... -->
<parameter id="directive_place" outid="directive" label="Directive" tooltip= "Placement algorithm mode (not compatible with other specific options)"
default="Default" visible="true" omit="Default" type="PlaceDirectiveType" format="Dash"/>
<parameter id="no_timing_driven" label="No timing-driven" tooltip= "Disables the default timing driven placement algorithm."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="unplace" label="Unplace" tooltip= "Unplace all the instances which are not locked by constraints."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="post_place_opt" label="Post-placement" tooltip= "Run optimization after placement to improve critical path timing."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="quiet_place" outid="quiet" label="Quiet" tooltip= "Ignore errors, return TCL_OK in any case"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="verbose_place" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter id="VivadoPlaceActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
<!-- invisible/calculated parameters -->
<parameter id="AutosaveVivadoPlace" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotPlace=false : true, false"
visible="false" type="Boolean" format="None"/>
<input>
<group name="General">
"SkipPreOptimization"
"SkipPlacement"
"---"
"SnapshotPlace" <!-- same as in project -->
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group name="Pre-optimization commands">
"PreOptTCL"
</group>
<group name="Placement">
"directive_place"
"---"
"no_timing_driven"
"unplace"
"post_place_opt"
"---"
"quiet_place"
"verbose_place"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"Vivado_Tcl"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_place"
dest="VivadoConsole"
mark="``"
sep=""
prompt="@@FINISH@@"
success="place_design completed successfully"
log=""
stdout="parser_VivadoPlace">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"file mkdir $outputDir\n"
<!-- Run pre-optimization TCL commands (if specified) -->
<if SkipPreOptimization="false">
<if-not PreOptTCL="">
"%PreOptTCL\n"
</if-not>
<if PreOptTCL="">
"puts \"No pre-optimization TCL commands specified\"\n"'
</if>
</if>
<if SkipPlacement="false">
<!-- Run placement -->
"place_design"
"%directive_place"
"%no_timing_driven"
"%unplace"
"%post_place_opt"
"%quiet_place"
"%verbose_place"
"\n"
</if>
"puts \"@@FINISH@@\"\n"
</line>
<line name="parser_VivadoPlace"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%Vivado_Tcl"
"%OtherProblems"
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[Placement:0000\]@'"
</if>
</line>
</output>
</tool>
<!-- Restore tool for VivadoOptPlace -->
<tool name="RestoreVivadoPlace"
project="FPGA_project"
interface="VivadoInterface"
package="FPGA_package"
inherits="RestoreVivado"/>
<!-- Save tool for VivadoOptPlace -->
<tool name="SaveVivadoPlace"
project="FPGA_project"
interface="VivadoInterface"
package="FPGA_package"
inherits="SaveVivado"/>
</vdt-project>
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)" <parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/> default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<parameter id="AutosaveVivadoRoute" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotSynth=false : true, false" <parameter id="AutosaveVivadoRoute" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotRoute=false : true, false"
visible="false" type="Boolean" format="None"/> visible="false" type="Boolean" format="None"/>
<!-- hidden (calculated) parameters --> <!-- hidden (calculated) parameters -->
......
<?xml version="1.0" encoding="UTF-8"?>
<vdt-project>
<interface name="VivadoReportTimingSummaryInterface" extends="VivadoInterface">
<typedef name = "Cardinal_0_3">
<paramtype kind="number" lo="0" hi="3" format="%d" />
</typedef>
<typedef name="DelayTypeType">
<paramtype kind= "enum" base="String">
<item value="min" label="Analyse minimal times"/>
<item value="max" label="Analyze maximal times"/>
<item value="min_max" label="Analyze both minimal and maximal times"/>
</paramtype>
</typedef>
<typedef name="PathTypeType">
<paramtype kind= "enum" base="String">
<item value="end" label="Shows the endpoint of the path only, with calculated timing values."/>
<item value="summary" label="Displays the startpoints and endpoints with slack calculation."/>
<item value="short" label="Displays the startpoints and endpoints with calculated timing values."/>
<item value="full" label="Displays the full timing path, including startpoints, through points, and endpoints."/>
<item value="full_clock" label="Displays full clock paths in addition to the full timing path."/>
<item value="full_clock_expanded" label=" Displays full clock paths between a master clock and generated clocks in addition to the full_clock timing path."/>
</paramtype>
</typedef>
</interface>
<tool name="VivadoReportTimingSummary" label="Report Timimg Summary"
project="FPGA_project"
interface="VivadoReportTimingSummaryInterface"
package="FPGA_package"
shell="/bin/bash"
description="Report timing summary"
log-dir="VivadoLogDir"
state-dir="VivadoLocalDir"
abstract="true"
>
<action-menu>
<action label="Report timing summary" resource="" icon="clock.png" />
</action-menu>
<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" />
<!-- report_timing_summary arguments -->
<parameter id="check_timing_verbose" label="Verbose summary" tooltip= "Output a verbose timing summary report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="delay_type" label="Delay type" tooltip= "Delay types to analyze."
default="min_max" visible="true" omit="min_max" type="DelayTypeType" format="Dash"/>
<parameter id="no_detailed_paths" label="No detailed paths"
tooltip= "Do not report the full timing path for each clock or path group analyzed."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="setup" label="Check for setup violations" tooltip= "Same as -delay_type max."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="hold" label="Check for hold violations" tooltip= "Same as -delay_type min."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="max_paths" label="Number of paths per group"
tooltip= "Maximal number of paths to report per group."
default="1" visible="true" omit="1" type="Cardinal_1" format="Dash"/>
<parameter id="nworst" label="Number of paths" tooltip= "Maximal number of paths per endpoint."
default="1" visible="true" omit="1" type="Cardinal_1" format="Dash"/>
<parameter id="unique_pins" label="One path per unique set"
tooltip= "Only report timing paths through each unique set of pins, reporting one path per path group."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="path_type" label="Path type" tooltip= " Specify the path data to output in the timing summary report."
default="full_clock_expanded" visible="true" omit="full_clock_expanded" type="PathTypeType" format="Dash"/>
<parameter id="slack_lesser_than" label="Slack lesser than"
tooltip= " Report timing on paths with a calculated slack value less than the specified value."
default="" visible="true" omit="" type="String" format="Dash"/>
<parameter id="slack_greater_than" label="Slack greater than"
tooltip= " Report timing on paths with a calculated slack value greater than the specified value."
default="" visible="true" omit="" type="String" format="Dash"/>
<parameter id="report_unconstrained" label="Report unconstrained paths"
tooltip= "Report timing on unconstrained paths in the design."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="significant_digits" label="Number of digits" tooltip= "Number of significat digits ion the output."
default="3" visible="true" omit="1" type="Cardinal_0_3" format="Dash"/>
<parameter id="no_header" label="No header" tooltip= "Do not add header information to the report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="file" label="Result filename" tooltip= "Write report to the specified file."
default="%%ProjectName.timing_summary" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="append" label="Append to file" tooltip= "Append to the output file."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="return_string" label="Return string" tooltip= "Write result to TCL to be captured into variable."
default="" visible="true" omit="" type="String" format="CopyValue"/>
<parameter id="datasheet" label="Datasheet info" tooltip= "Generate datasheet information for the report."
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="quiet" outid="quiet" label="Quiet" tooltip= "Ignore errors, return TCL_OK in any case"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<parameter id="verbose" outid="verbose" label="Verbose" tooltip= "Temporarily override message limits set with set_msg_config"
default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
<!-- parser parameters -->
<parameter id="PatternErrors" label="Errors" tooltip= "Regular expression for error messages"
default=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternWarnings" label="Warnings" tooltip= "Regular expression for warnings messages"
default=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="PatternInfo" label="Info" tooltip= "Regular expression for info messages"
default=".*INFO: (\[.*\].*)\[(.*):([0-9]+)\]"
visible="true" type="String" format="CopyValue"/>
<parameter id="NoFileProblem" label="No-file problems" tooltip= "Report problems that do not specify particular source file/line"
default="true" visible="true" omit="false" type="Boolean" format="None"/>
<parameter id="Drc" label="Drc" tooltip= "Enable problems with [Drc to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Vivado_Tcl" label="Vivado_Tcl" tooltip= "Enable problems with [Vivado_Tcl to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Route" label="Route" tooltip= "Enable problems with [Route to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<!-- Other patterns copied from other commands, maybe not applicablwe here -->
<parameter id="Memdata" label="Memdata" tooltip= "Enable problems with [Memdata to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Netlist" label="Netlist" tooltip= "Enable problems with [Netlist to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Opt" label="Opt" tooltip= "Enable problems with [Opt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Project" label="Project" tooltip= "Enable problems with [Project to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Timing" label="Timing" tooltip= "Enable problems with [Timing to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="Pwropt" label="Pwropt" tooltip= "Enable problems with [Pwropt to be reported"
default="true" visible="true" omit="true" type="Boolean" format="GrepFilterProblemSyntax"/>
<parameter id="OtherProblems" label="Other problems" tooltip= "Other problem patterns (after opening '[') to be suppressed)"
default="" visible="true" omit="" type="Stringlist" format="GrepFilterProblemOtherSyntax"/>
<!-- hidden (calculated) parameters -->
<!-- not really used now, always "0" -->
<parameter id="VivadoTimingSummaryActionIndex" default="%%ChosenActionIndex"
type="String" format="CopyValue" visible="false" />
<input>
<group name="General">
"SkipTCL"
"ShowWarnings"
"ShowInfo"
"GrepEWI"
</group>
<group name="TCL commands">
"PreTCL"
</group>
<group name="Timing Summary">
"check_timing_verbose"
"delay_type"
"no_detailed_paths"
"setup"
"hold"
"max_paths"
"nworst"
"unique_pins"
"path_type"
"slack_lesser_than"
"slack_greater_than"
"report_unconstrained"
"significant_digits"
"no_header"
"file"
"append"
"return_string"
"datasheet"
"---"
"quiet"
"verbose"
</group>
<group name="Parser">
"NoFileProblem"
"Drc"
"Vivado_Tcl"
"Route"
"Memdata"
"Netlist"
"Opt"
"Project"
"Timing"
"Pwropt"
"OtherProblems"
"---"
"PatternErrors"
"PatternWarnings"
"PatternInfo"
</group>
</input>
<output>
<line name="vivado_run_timing_summary"
dest="VivadoConsole"
mark="``"
sep=""
prompt="@@FINISH@@"
success="report_timing_summary completed successfully"
log=""
stdout="parser_VivadoTimingSummary">
"cd ~/%VivadoProjectRoot\n"
"set outputDir ~/%VivadoProjectRoot/build\n"
"file mkdir $outputDir\n"
<!-- Run pre-bitstream TCL commands (if specified) -->
<if SkipTCL="false">
<if-not PreTCL="">
"%PreTCL\n"
</if-not>
<if PreTCL="">
"puts \"No TCL commands specified\"\n"'
</if>
</if>
<!-- Run routing -->
"report_timing_summary "
"%check_timing_verbose"
"%delay_type"
"%no_detailed_paths"
"%setup"
"%hold"
"%max_paths"
"%nworst"
"%unique_pins"
"%path_type"
"%slack_lesser_than"
"%slack_greater_than"
"%report_unconstrained"
"%significant_digits"
"%no_header"
"%file"
"%append"
"%return_string"
"%datasheet"
"%quiet"
"%verbose"
"\n"
"puts \"@@FINISH@@\"\n"
</line>
<line name="vivado_copy_after_bitstream">
"-c"
"mkdir -p %VivadoLocalResultDir ;"
"rsync -avr -e ssh"
"%RemoteUser@%RemoteHost:%VivadoProjectRoot/build/%file"
"%VivadoLocalResultDir/"
</line>
<line name="parser_VivadoTimingSummary"
errors= "PatternErrors"
warnings= "PatternWarnings"
info= "PatternInfo">
"-c"
"%GrepEWI"
"| %SedPaths"
<if NoBabyTalk="true">
"| grep --line-buffered -v \"license\""
</if>
"%Drc"
"%Vivado_Tcl"
"%Route"
"%Memdata"
"%Netlist"
"%Opt"
"%Project"
"%Timing"
"%Pwropt"
"%OtherProblems"
<!-- TODO: change Placement to Routing? or such -->
<if NoFileProblem="true">
<!-- Add [Placement:0000] to lines that do not have [file:line] - then "Placement" will appear in "Problems" location-->
"| sed -u 's@^[^\[]*\[[^\[]*$@&amp;\[TimingSummary:0000\]@'"
</if>
</line>
</output>
</tool>
</vdt-project>
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