Commit 3dba8dd6 authored by Andrey Filippov's avatar Andrey Filippov
Browse files

Split installation parameters, added copying primitives library to local

project directory
parent 52ced914
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -35,6 +35,11 @@
        <menu name="Vivado" 
        <menu name="Vivado" 
              label="Vivado Tools"
              label="Vivado Tools"
              icon="xilinx.png">
              icon="xilinx.png">
              
                <menuitem name="CopyUnisims"
                          label="Copy Xilinx primitives library to the local project"
                          icon="xilinx.png"
                          call="VivadoUnisims"/>
                <menuitem name="Vivado Server"
                <menuitem name="Vivado Server"
                          label="Run remote Vivado session"
                          label="Run remote Vivado session"
                          icon="xilinx.png"
                          icon="xilinx.png"
+39 −4
Original line number Original line Diff line number Diff line
@@ -29,10 +29,35 @@
		<parameter id="SSHSwitches" label="Other ssh switches"
		<parameter id="SSHSwitches" label="Other ssh switches"
			type="String" format="CopyValue" default="" readonly="false" visible="true" />
			type="String" format="CopyValue" default="" readonly="false" visible="true" />



		<parameter id="VivadoRelease" label="Vivado release number (part of the path)"
			type="String" format="CopyValue" default="2013.4" readonly="false"
			visible="true" />

		<parameter id="VivadoInstallationRoot" label="Vivado Installation Root"
			type="String" format="CopyValue" default="/opt/Xilinx/Vivado" readonly="false"
			visible="true" />
			
		<parameter id="VivadoRelativeExeOptions" label="Vivado relative executable path and options"
			type="String" format="CopyValue" default="bin/vivado -mode tcl" readonly="false"
			visible="true" />

		<parameter id="VivadoUnisimsPath" label="Relative location of Xilinx unisims library"
			type="String" format="CopyValue" default="data/verilog/src" readonly="false"
			visible="true" />
<!-- /opt/Xilinx/Vivado/2013.4/bin/vivado -mode tcl -->
		<parameter id="RemoteCommand" label="Remote ssh command"
		<parameter id="RemoteCommand" label="Remote ssh command"
			type="String" format="CopyValue" default="/opt/Xilinx/Vivado/2013.4/bin/vivado -mode tcl" readonly="false"
			type="String" format="CopyValue"
			default="%VivadoInstallationRoot/%VivadoRelease/%VivadoRelativeExeOptions"
			readonly="true"
			visible="true" />
		<parameter id="VivadoUnisimsAbsolutePath" label="Full path of Xilinx unisims primitives library"
			type="String" format="CopyValue"
			default="%VivadoInstallationRoot/%VivadoRelease/%VivadoUnisimsPath"
			readonly="true"
			visible="true" />
			visible="true" />
			
			

		<parameter id="SSHExtra" label="ssh extra parameters" type="String"
		<parameter id="SSHExtra" label="ssh extra parameters" type="String"
			format="CopyValue" default="" readonly="false" visible="true" />
			format="CopyValue" default="" readonly="false" visible="true" />


@@ -51,9 +76,14 @@
				"ShellSwitches"
				"ShellSwitches"
				"PreSSH"
				"PreSSH"
				"SSHSwitches"
				"SSHSwitches"
				"RemoteCommand"
				"SSHExtra"
				"SSHExtra"
				"VivadoConsole"
				"VivadoConsole"
				"VivadoRelease"
				"VivadoInstallationRoot"
				"VivadoRelativeExeOptions"
				"VivadoUnisimsPath"
				"RemoteCommand"
				"VivadoUnisimsAbsolutePath"
			</group>
			</group>
		</input>
		</input>
	              
	              
@@ -65,14 +95,17 @@
		interface="FPGAPprojectInterface">
		interface="FPGAPprojectInterface">
		<!--  Simulation parameters  -->
		<!--  Simulation parameters  -->
		<parameter id="SimulationTopFile" label="Project top simulation file"
		<parameter id="SimulationTopFile" label="Project top simulation file"
			type="Filename" default="default_top (testing)" format="CopyValue"
			type="Filename" default="" format="CopyValue"
			readonly="false" />
			readonly="false" />
		<parameter id="SimulationTopModule" label="Project top simulation module"
		<parameter id="SimulationTopModule" label="Project top simulation module"
			type="String" default="" format="CopyValue" readonly="false" />
			type="String" default="" format="CopyValue" readonly="false" />
		<parameter id="ImplementationTopFile" label="Project file with top implementation module"
			type="Filename" default="" format="CopyValue" readonly="false" />
		<parameter id="SimulDir" label="project simulation directory"
		<parameter id="SimulDir" label="project simulation directory"
			type="Pathname" default="simulation" format="CopyValue" readonly="false" />
			type="Pathname" default="simulation" format="CopyValue" readonly="false" />
		<!--  Vivado parameters  -->
		<!--  Vivado parameters  -->
			
		<parameter	id="part"             label= "Xilinx device to use"
        		default="" visible="true" omit="" type="String" format="Dash"/>
		<parameter id="VivadoProjectRoot" label="Relative (to user home directory) path of the workspace on Vivado server"
		<parameter id="VivadoProjectRoot" label="Relative (to user home directory) path of the workspace on Vivado server"
			type="String" default="vdt" format="RemoteRootSyntax" readonly="false" />
			type="String" default="vdt" format="RemoteRootSyntax" readonly="false" />


@@ -102,9 +135,11 @@
			<group name="Simulation" label="Simulation properties">
			<group name="Simulation" label="Simulation properties">
				"SimulationTopFile"
				"SimulationTopFile"
				"SimulationTopModule"
				"SimulationTopModule"
				"ImplementationTopFile"
				"SimulDir"
				"SimulDir"
			</group>
			</group>
			<group name="Vivado" label="Vivado general properties">
			<group name="Vivado" label="Vivado general properties">
			    "part"
				"VivadoProjectRoot"
				"VivadoProjectRoot"
				"VivadoLocalDir"
				"VivadoLocalDir"
				"VivadoIgnoreSource"
				"VivadoIgnoreSource"
+1 −1
Original line number Original line Diff line number Diff line
@@ -15,7 +15,7 @@
		</input>
		</input>


		<output>
		<output>
			<line name="vivado_launch"
			<line name="Vivado"
			      interrupt="\x03">
			      interrupt="\x03">
				"%ShellSwitches"
				"%ShellSwitches"
				"%PreSSH"
				"%PreSSH"
+93 −63
Original line number Original line Diff line number Diff line
@@ -5,46 +5,46 @@
			<syntax name="read_xdc_syntax" format="%(read_xdc %%ParamValue%|\n%)" />
			<syntax name="read_xdc_syntax" format="%(read_xdc %%ParamValue%|\n%)" />
	    <typedef name="FlattenHierarchyType">
	    <typedef name="FlattenHierarchyType">
      		<paramtype kind= "enum" base="String">
      		<paramtype kind= "enum" base="String">
      			<item value="rebuilt" label="rebuilt: Attempt to rebuild hierarchy after synthesis is completed"/>
      			<item value="rebuilt" label="Attempt to rebuild hierarchy after synthesis is completed"/>
      			<item value="full"    label="full: Flatten hierarchy of the design"/>
      			<item value="full"    label="Flatten hierarchy of the design"/>
      			<item value="none"    label="none: Preserve hierarchy (prevents optimization)"/>
      			<item value="none"    label="Preserve hierarchy (prevents optimization)"/>
      		</paramtype>
      		</paramtype>
    	</typedef>
    	</typedef>


	    <typedef name="GatedClockConversionType">
	    <typedef name="GatedClockConversionType">
      		<paramtype kind= "enum" base="String">
      		<paramtype kind= "enum" base="String">
      			<item value="off"    label="off: No conversion of the gated FF clocks"/>
      			<item value="off"    label="No conversion of the gated FF clocks"/>
      			<item value="on"     label="on: Convert gated clocks to use FF enables where possible"/>
      			<item value="on"     label="Convert gated clocks to use FF enables where possible"/>
      			<item value="auto"   label="auto: Convert gated clocks to use FF enables where beneficial"/>
      			<item value="auto"   label="Convert gated clocks to use FF enables where beneficial"/>
      		</paramtype>
      		</paramtype>
    	</typedef>
    	</typedef>
	    <typedef name="DirectiveType">
	    <typedef name="DirectiveType">
      		<paramtype kind= "enum" base="String">
      		<paramtype kind= "enum" base="String">
      			<item value="default"           label="default: Full optimization"/>
      			<item value="default"           label="Full optimization"/>
      			<item value="runtimeoptimized"  label="runtimeoptimized: Some optimization skipped"/>
      			<item value="runtimeoptimized"  label="Some optimization skipped"/>
      		</paramtype>
      		</paramtype>
    	</typedef>
    	</typedef>
	    <typedef name="ModeType">
	    <typedef name="ModeType">
      		<paramtype kind= "enum" base="String">
      		<paramtype kind= "enum" base="String">
      			<item value="default"           label="default: Insert buffers around imaginary property modules"/>
      			<item value="default"           label="Insert buffers around ImgP (imaginary property) modules"/>
      			<item value="out_of_context"    label="out_of_context: Mark Imaginary Property as OOC, do not insert buffers"/>
      			<item value="out_of_context"    label="Mark ImgP (imaginary property) as OOC, do not insert buffers"/>
      		</paramtype>
      		</paramtype>
    	</typedef>
    	</typedef>
	    <typedef name="FSMType">
	    <typedef name="FSMType">
      		<paramtype kind= "enum" base="String">
      		<paramtype kind= "enum" base="String">
      			<item value="off"       label="off: No FSM extraction"/>
      			<item value="off"       label="No FSM extraction"/>
      			<item value="one_hot"   label="one_hot: Extract one-hot FSM"/>
      			<item value="one_hot"   label="Extract one-hot FSM"/>
      			<item value="sequntial" label="sequntial:Extract Sequential FSM"/>
      			<item value="sequntial" label="Extract Sequential FSM"/>
      			<item value="johnson"   label="johnson: Extract Johnson FSM"/>
      			<item value="johnson"   label="Extract Johnson FSM"/>
      			<item value="gray"      label="gray: Extract Gray FSM"/>
      			<item value="gray"      label="Extract Gray FSM"/>
      			<item value="auto"      label="auto: Automatically decide on the FSM type to extract"/>
      			<item value="auto"      label="Automatically decide on the FSM type to extract"/>
      		</paramtype>
      		</paramtype>
    	</typedef>
    	</typedef>
	    <typedef name="ResourceSharingType">
	    <typedef name="ResourceSharingType">
      		<paramtype kind= "enum" base="String">
      		<paramtype kind= "enum" base="String">
      			<item value="off"    label="off: No sharing of adders and such between different signals"/>
      			<item value="off"    label="No sharing of adders and such between different signals"/>
      			<item value="on"     label="on: Enable sharing of adders and such between different signals"/>
      			<item value="on"     label="Enable sharing of adders and such between different signals"/>
      			<item value="auto"   label="auto: Automaticxally enable sharing of adders and such between different signals where beneficial"/>
      			<item value="auto"   label="Automatically enable sharing of adders and such between different signals where beneficial"/>
      		</paramtype>
      		</paramtype>
    	</typedef>
    	</typedef>
	</interface>
	</interface>
@@ -62,11 +62,18 @@
		</extensions-list>
		</extensions-list>


		<action-menu>
		<action-menu>
			<action label="Vivado Synthesis" resource="" icon="xilinx.png" />
			<action label="Synthesise with Vivado:" resource="%ImplementationTopFile"
			        check-extension="false" check-existence="true"  icon="xilinx.png" />
			<action label="Check by Vivado Synthesis:" resource="%%SelectedFile"
			        check-extension="true" check-existence="true" icon="sample.gif" />
		</action-menu>
		</action-menu>
		
		<parameter id="ConstraintsFiles" type="Filelist" format="ParamListSyntax"
		<parameter id="ConstraintsFiles" type="Filelist" format="ParamListSyntax"
			default="" label="Select constraint files to load to Vivado" readonly="false"
			default="" label="Select constraint files to load to Vivado" readonly="false"
			visible="true" />
			visible="true" />
		<parameter id="SkipSnapshotSynth" label="Do not create snapshot after synthesis"
		           default="false"
		           type= "Boolean" format="None"/>
		<parameter id="ResetProject" label="Reset project before loading source files"
		<parameter id="ResetProject" label="Reset project before loading source files"
		           default="true"
		           default="true"
		           type= "Boolean" format="None"/>
		           type= "Boolean" format="None"/>
@@ -91,17 +98,21 @@


        <parameter 	id="name"             label= "Design to open after synth"
        <parameter 	id="name"             label= "Design to open after synth"
         			default="" visible="true" omit="" type="String" format="Dash"/>
         			default="" visible="true" omit="" type="String" format="Dash"/>
        <parameter	id="part"             label= "Xilinx device to use"
<!-- part is defined in "FPGA_project" -->         			
         			default="" visible="true" omit="" type="String" format="Dash"/>
<!--         <parameter	id="part"             label= "Xilinx device to use"
         			default="" visible="true" omit="" type="String" format="Dash"/>  -->
        <parameter	id="constrset"        label= "Constraints set to use"
        <parameter	id="constrset"        label= "Constraints set to use"
       				 default="" visible="true" omit="" type="String" format="Dash"/>
       				 default="" visible="true" omit="" type="String" format="Dash"/>
        <parameter	id="top"              label= "Top module of the design"
       				 
        			default="%%TopModule" visible="true" omit="" type="String" format="Dash"/>
        			
<!--    <parameter	id="top"              label= "Top module of the design (you may set in in project properties)"
        			default="%ImplementationTopModule" visible="true" omit="" type="String" format="Dash"/> -->
        			
        <parameter	id="include_dirs"     label= "Include directories for Verilog `include"
        <parameter	id="include_dirs"     label= "Include directories for Verilog `include"
        			default="" visible="true" omit="" type="Stringlist" format="DashList"/>
        			default="" visible="true" omit="" type="Stringlist" format="DashList"/>
        <parameter	id="generic"          label= "name=value list of VHDL generic entity or Verilog parameter"
        <parameter	id="generic"          label= '"name=value" list of VHDL generic entity or Verilog parameter'
        			default="" visible="true" omit="" type="Stringlist" format="DashList"/>
        			default="" visible="true" omit="" type="Stringlist" format="DashList"/>
        <parameter	id="verilog_define"   label= "Verilog macro=text definitions"
        <parameter	id="verilog_define"   label= 'Verilog "macro=text" definitions'
        			default="" visible="true" omit="" type="Stringlist" format="DashList"/>
        			default="" visible="true" omit="" type="Stringlist" format="DashList"/>
        <parameter	id="flatten_hierarchy" label= "Flatten Hierarchy during LUT mapping"
        <parameter	id="flatten_hierarchy" label= "Flatten Hierarchy during LUT mapping"
        			default="rebuilt" visible="true" omit="rebuilt" type="FlattenHierarchyType" format="Dash"/>
        			default="rebuilt" visible="true" omit="rebuilt" type="FlattenHierarchyType" format="Dash"/>
@@ -129,30 +140,37 @@
        			default="4"  visible="true" omit="4" type="Cardinal_1" format="Dash"/>
        			default="4"  visible="true" omit="4" type="Cardinal_1" format="Dash"/>
        <parameter	id="quiet"    label= "Ignore errors, return TCL_OK in any case"
        <parameter	id="quiet"    label= "Ignore errors, return TCL_OK in any case"
        			default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
        			default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
        <parameter	id="verbose"   label= "Temporarily override mesage limits set with set_msg_config"
        <parameter	id="verbose"   label= "Temporarily override message limits set with set_msg_config"
        			default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
        			default="false" visible="true" omit="false" type="Boolean" format="DashName"/>
                   	           
                   	           
<!-- hidden (calculated) parameters -->			
<!-- hidden (calculated) parameters -->			
	   <parameter id="FilteredSourceList" type="Stringlist"
	   <parameter id="FilteredSourceList" type="Stringlist"
			format="FilteredSourceListSyntax" default="" readonly="true" visible="false" />
			format="FilteredSourceListSyntax" default="" readonly="true" visible="false" />
			
	<!-- Parameter read_xdc just copies parameter ConstraintsFiles, but they have different syntax (output representation) -->		
	   <parameter id="read_xdc" type="Filelist" format="read_xdc_syntax" label="read_xdc"
	   <parameter id="read_xdc" type="Filelist" format="read_xdc_syntax" label="read_xdc"
			default="%ConstraintsFiles" visible="true" readonly="false" />
			default="%ConstraintsFiles" visible="false" />
       <parameter	id="top"              label= "Top module of the design"
        			default="%%TopModule" visible="false" omit="" type="String" format="Dash"/>
   	   <parameter   id="VivadoSynthActionIndex" default="%%ChosenActionIndex"
					type="String" format="CopyValue" visible="false"  />
        			
			
			
		<input>
		<input>
			<group name="General">
			<group name="General">
				"ConstraintsFiles"
				"ConstraintsFiles"
				"SkipSnapshotSynth"
 				"SnapshotSynth" <!--  same as in project -->
 				"SnapshotSynth" <!--  same as in project -->
				"read_xdc"
				"ResetProject"
				"ResetProject"
				"ShowWarnings"
				"ShowWarnings"
				"ShowInfo"
				"ShowInfo"
				"GrepEWI"
				"GrepEWI"
			</group>
			</group>
			<group name="Synthesis">
			<group name="Synthesis">
	 	        "top"
		        "name"
		        "name"
		        "part"
		        "part"
		        "constrset"
		        "constrset"
		        "top"
		        "include_dirs"
		        "include_dirs"
		        "generic"
		        "generic"
		        "verilog_define"
		        "verilog_define"
@@ -186,7 +204,9 @@
				"' ;"
				"' ;"
				"rsync -avrR -e ssh"
				"rsync -avrR -e ssh"
				"%FilteredSourceList"
				"%FilteredSourceList"
			    <if VivadoSynthActionIndex="0">
					"%ConstraintsFiles"
					"%ConstraintsFiles"
				</if>
				"%RemoteUser@%RemoteHost:%VivadoProjectRoot"
				"%RemoteUser@%RemoteHost:%VivadoProjectRoot"
			</line>
			</line>
<!-- TODO: Make it OK to use just strings, not parameters in dest (for console names) -->			
<!-- TODO: Make it OK to use just strings, not parameters in dest (for console names) -->			
@@ -203,17 +223,20 @@
			      </if>
			      </if>
			      "file mkdir $outputDir\n"
			      "file mkdir $outputDir\n"
			      "read_verilog %FilteredSourceList\n"
			      "read_verilog %FilteredSourceList\n"
			      <if VivadoSynthActionIndex="0">
				      <if ConstraintsFiles="">
				      <if ConstraintsFiles="">
			          "puts 'No constraints files specified, skipping read_xdc command'\n"
				          'puts "No constraints files specified, skipping read_xdc command"\n'
				      </if>
				      </if>
				      <if-not ConstraintsFiles="">
				      <if-not ConstraintsFiles="">
	                          "%read_xdc\n"
	                          "%read_xdc\n"
				      </if-not>
				      </if-not>
			      </if>
			      "synth_design"
			      "synth_design"
		          "%top"
			      <if VivadoSynthActionIndex="0">
		 		      "%name"
		 		      "%name"
			          "%part"
			          "%part"
			          "%constrset"
			          "%constrset"
		          "%top"
			          "%include_dirs"
			          "%include_dirs"
			          "%generic"
			          "%generic"
			          "%verilog_define"
			          "%verilog_define"
@@ -229,13 +252,19 @@
			          "%keep_equivalent_registers"
			          "%keep_equivalent_registers"
			          "%resource_sharing"
			          "%resource_sharing"
			          "%control_set_opt_thershold"
			          "%control_set_opt_thershold"
		          </if>
		          "%quiet"
		          "%quiet"
		          "%verbose"
		          "%verbose"
			      "\n"
			      "\n"
			      <if-and SkipSnapshotSynth="false"
			              VivadoSynthActionIndex="0">
				      		"write_checkpoint -force %SnapshotSynth\n"
				      		"write_checkpoint -force %SnapshotSynth\n"
			      </if-and>
				"puts '@@FINISH@@'\n"
				"puts '@@FINISH@@'\n"
			</line>
			</line>
<!-- 			       -top npmtest -part xc7k70tfbg484-2 -flatten rebuilt\n"  -->			
<!-- 			       -top npmtest -part xc7k70tfbg484-2 -flatten rebuilt\n"  -->			
			<if-and SkipSnapshotSynth="false"
			        VivadoSynthActionIndex="0">
				<line name="vivado_copy_after_synth">
				<line name="vivado_copy_after_synth">
					"-c"
					"-c"
					"mkdir -p %VivadoLocalDir ;"
					"mkdir -p %VivadoLocalDir ;"
@@ -243,6 +272,7 @@
					"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%SnapshotSynth"
					"%RemoteUser@%RemoteHost:%VivadoProjectRoot/%SnapshotSynth"
					"%VivadoLocalDir/"
					"%VivadoLocalDir/"
				</line>
				</line>
	        </if-and>
			<line name="parser_VivadoSynth"
			<line name="parser_VivadoSynth"
			    errors=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
			    errors=".*ERROR: (\[.*\].*)\[(.*):([0-9]+)\]"
				warnings=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"
				warnings=".*WARNING: (\[.*\].*)\[(.*):([0-9]+)\]"