ise_ngdbuild.xml 10.4 KB
Newer Older
1 2 3 4
<?xml version="1.0" encoding="UTF-8"?>
<!-- 
 /*******************************************************************************
 * Copyright (c) 2014 Elphel, Inc.
5 6
 * This file is a part of VDT plug-in.
 * VDT plug-in is free software; you can redistribute it and/or modify
7 8 9 10
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
11
 * VDT plug-in is distributed in the hope that it will be useful,
12 13 14 15 16 17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
Andrey Filippov's avatar
Andrey Filippov committed
18 19 20 21 22 23 24 25 26
 * 
 *  Additional permission under GNU GPL version 3 section 7:
 * If you modify this Program, or any covered work, by linking or combining it
 * with Eclipse or Eclipse plugins (or a modified version of those libraries),
 * containing parts covered by the terms of EPL/CPL, the licensors of this
 * Program grant you additional permission to convey the resulting work.
 * {Corresponding Source for a non-source form of such a combination shall
 * include the source code for the parts of Eclipse or Eclipse plugins used
 * as well as that of the covered work.}
27 28 29
 *******************************************************************************/
 -->
<vdt-project>
Andrey Filippov's avatar
Andrey Filippov committed
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
	<interface name="ISENGDBuildInterface" extends="ISEInterface">
	 	 <typedef name="NTType">
      		<paramtype kind= "enum" base="String">
      			<item value= "timestamp" label="Normal timestamp check/update NGO"/>
      			<item value= "on"        label="Rebuild NGO regardless of the timestamps"/>
      			<item value= "off"       label="Does not rebuild NGO (if it exists) regardless of the timestamps"/>
      		</paramtype>
    	 </typedef>
	
	</interface>

	<tool name="ISENGDBuild" label="run NGDBuild"
	    project="FPGA_project"
		interface="ISENGDBuildInterface"
		package="FPGA_package"
		shell="/bin/bash"
		ignore="%ISEIgnoreSource"
		description="Run NGDBuild"
		result="ISESnapshotNGDBuild"
		log-dir="ISELogDir"
		state-dir="ISELocalDir"
		restore="RestoreISENGDBuild"
		autosave="AutosaveISENGDBuild"
		save="SaveISENGDBuild"
		inherits="ISEToolPrototype"
		>
		<action-menu>
			<action label="Run NGDBuild" resource="" icon="opt_blue.png" />
		</action-menu>

		<depends-list>
			<depends state="ISESnapshotSynth"/>
<!-- 		<depends files="constraints"/>-->
		</depends-list>
		
		<parameter id="SkipSnapshotNGDBuild" label="Skip snapshot" tooltip="Do not create snapshot after NGDBuild"
		           default="false" type= "Boolean" format="None"/>
        <parameter	id="design_file" label="Design file name" tooltip= "Top level design file name"
        			default="%%ProjectName.ngc" visible="true" type="String" format="CopyValue"/>
		           
		<parameter	id="extra_input_files" label="extra files" tooltip= "Extra input files to copy to the top directory before running NGDBuild"
        			default="" omit="" visible="true" type="Filelist" format="ParamListSyntax"/>
        <parameter	id="output_file" label="Output file name" tooltip= "Output file name"
        			default="%%ProjectName.ngd" visible="true" omit="" type="String" format="CopyValue"/>
        			

<!-- NGDBuild options -->
		<parameter id="add_pads" outid="a" label="Add pads" tooltip="Add PADs to top-level port signals (EDIF only)"
		           default="false" omit="false" type= "Boolean" format="DashName"/>
		<parameter id="allow_unmatched_loc" outid="aul" label="Allow unmatched LOCs" tooltip="Warning instead of error if no pin/net/port matches LOC constraint."
		           default="false" omit="false" type= "Boolean" format="DashName"/>
		<parameter id="allow_unmatched_timegroups" outid="aut" label="Allow unmatched timegroups" tooltip="Warning instead of error if specified timegroup does not exist."
		           default="false" omit="false" type= "Boolean" format="DashName"/>
        <parameter id="bmm_file" outid="bm" label="Specify BMM file" tooltip= "Specify BMM file(*.bmm)"
        			default="" visible="true" omit="" type="String" format="Dash"/>
        <parameter id="destination_directory" outid="dd" label="Destination directory" tooltip= "Destination directory for *.ngo and netlist files"
        			default="" visible="true" omit="" type="String" format="Dash"/>
		<parameter id="ignore_ucf" outid="i" label="Ignore UCF" tooltip="Ignore UCF files."
		           default="false" omit="false" type= "Boolean" format="DashName"/>
		<parameter id="insert_keep_hierarchy"  label="Insert keep hierarchy" tooltip="Attach KEEP_HIERARCHY constraint to each netlist"
		           default="false" omit="false" type= "Boolean" format="DashName"/>
        <parameter id="libraries" outid="l" label="Librarioes to search" tooltip= "Valid names: 'xilinxun', 'synopsys'"
        			default="" visible="true" omit="" type="Stringlist" format="DashListIndividual"/>
        <parameter	id="netlist_translation_type" outid="nt" label="Netlist translation type" tooltip= "Treating timestamps when rebuilding NGO files"
        			default="timestamp" visible="true" omit="timestamp" type="NTType" format="Dash"/>
		<parameter id="ignore_loc" outid="r" label="Ignore LOC constraints"
				   tooltip="Ignore LOC constraints in found UCF files."
		           default="false" omit="false" type= "Boolean" format="DashName"/>
        <parameter id="search_directories" outid="sd" label="Search directories" tooltip= "Search directories to resolve dependencies"
        			default="" visible="true" omit="" type="Stringlist" format="DashListIndividual"/>
        <parameter id="user_constraints" outid="uc" label="User constraints files" tooltip= "Specify user constraints files (*.ucf) to read"
        			default="" visible="true" omit="" type="Stringlist" format="DashListIndividual"/>
        <parameter id="user_rules" outid="ur" label="User rules file" tooltip= "Specify user rules file (*.urf) to read"
        			default="" visible="true" omit="" type="String" format="Dash"/>
		<parameter id="verbose"  label="Verbose mode" tooltip="Generate more detailed output"
		           default="false" omit="false" type= "Boolean" format="DashName"/>
        <parameter	id="target_device" outid="p"  label="Target device" tooltip= "Target device part number"
        			default="%part" visible="true" omit="" type="String" format="Dash"/>
		           
		           
<!--  common parameters from the base tool -->
		<parameter	id="intstyle"/>
        <parameter	id="command_files"/>
        <parameter	id="speed_grade"/>
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
<!-- 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"/>
Andrey Filippov's avatar
Andrey Filippov committed
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182

<!-- calculated parameters -->        			
   	    <parameter   id="ISENGDBuildActionIndex" default="%%ChosenActionIndex"
					type="String" format="CopyValue" visible="false"  />
			
<!-- hidden (calculated) parameters -->
        <parameter	id="AutosaveISENGDBuild" default="?%%ChosenActionIndex=0 ^ %SkipSnapshotNGDBuild=false : true, false"
                    visible="false" type="Boolean" format="None"/>
		<input>
		    <group name="General options">
				"SkipSnapshotNGDBuild"
				"design_file"
				"output_file"
		        "extra_input_files"	
		        "add_pads"
		        "allow_unmatched_loc"
		        "allow_unmatched_timegroups"
		        "bmm_file"
		        "destination_directory"
		        "ignore_ucf"
		        "insert_keep_hierarchy"
		        "libraries"
		        "netlist_translation_type"
		        "ignore_loc"
		        "search_directories"
		        "user_constraints"
		        "user_rules"
		        "verbose"
		        "target_device"
		        "---"
		        "ISEProjectRoot"
		        "ISERemoteDir"
		    </group>
		    <group name ="NGCBuild Options">
			    
		    </group>
		</input>
		<output>
		    <if-not extra_input_files="">
			  <line name="ise_copy_pre_ngdbuild">
				"-c"
				"rsync -avrR -e ssh"
				"%extra_input_files"
				"%RemoteUser@%RemoteHost:%ISEProjectRoot"
			  </line>
		    </if-not>
			<line name="ise_run_ngdbuild"
			      dest="ISEConsole"
			      mark="``" 
			      sep=" "
			      prompt="@@FINISH@@"
			      success="@@FINISH@@"
183
			      failure="ERROR:"
Andrey Filippov's avatar
Andrey Filippov committed
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
			      log=""
			      stdout="parser_ISE">
			      "mkdir -p"
			      "~/%ISEProjectRoot/%ISERemoteDir"
			      "\n"
			      "cd ~/%ISEProjectRoot\n"
			      "%ISEBinAbsolutePath/ngdbuild"
			      <!-- ngdbuild command options -->
			      "%add_pads"
			      "%allow_unmatched_loc"
			      "%allow_unmatched_timegroups"
			      "%bmm_file"
			      "%destination_directory"
			      "%ignore_ucf"
			      "%insert_keep_hierarchy"
			      "%libraries"
			      "%netlist_translation_type"
			      "%ignore_loc"
			      "%search_directories"
			      "%user_constraints"
			      "%user_rules"
			      "%verbose"
			      "%target_device"
			      <!-- ngdbuild design name -->
			      "%design_file"
			      <!-- ngdbuild output name -->
			      "%output_file"
			      "\n"
			      "echo \"@@FINISH@@\"\n"
			</line>
<!-- TODO: copy results -->	
			<line name="ise_copy_after_ngdbuild">
				"-c"
				"mkdir -p %ISELocalResultDir ;"
				"rsync -avr -e ssh"
<!-- 			"%RemoteUser@%RemoteHost:%ISEProjectRoot/%ISERemoteDir/*.bld"  -->	
				"%RemoteUser@%RemoteHost:%ISEProjectRoot/*.bld"
				"%ISELocalResultDir/"
			</line>
		</output>
	</tool>
	<!--  Restore tool for ISESynthesis -->
	<tool name="RestoreISENGDBuild"
		project="FPGA_project"
		interface="ISEInterface"
		package="FPGA_package"
		inherits="RestoreISE"/>

	<!--  Save tool for ISESynthesis -->
	<tool name="SaveISENGDBuild"
		project="FPGA_project"
		interface="ISEInterface"
		package="FPGA_package"
		inherits="SaveISE"/>
	
</vdt-project>