ruby-ise 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+
2
+ source "https://rubygems.org"
3
+ gem "inifile"
4
+ gem "nokogiri"
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Binghamton University & Kyle J. Temkin
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Ruby::Ise
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'ruby-ise'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install ruby-ise
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/xoptimize ADDED
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'ise'
4
+ require 'highline'
5
+ require 'smart_colored/extend'
6
+
7
+ include ISE
8
+
9
+ prompt = HighLine.new
10
+
11
+ #TODO: Parse command-line flags with trollop.
12
+
13
+ #Read in the project specified on the command line,
14
+ begin
15
+ project = Project.load(ARGV.first) unless ARGV.empty?
16
+ project ||= ProjectNavigator::most_recent_project
17
+ rescue
18
+ puts
19
+ puts "Oops!".bold.red + " I couldn't open the file specified. Check your file-name and try again.".red
20
+ puts
21
+ exit
22
+ end
23
+
24
+ puts
25
+ puts "You're about to move the working directory for #{project.filename.bold} to RAM.".yellow
26
+ puts "This will dramatically speed up synthesis and save disk space, but you'll need to re-run 'Generate Programming Files' after each reboot."
27
+ puts
28
+ exit unless prompt.agree('Do you want to continue? [y/n]'.bold + " ")
29
+
30
+ #Minimize the project's runtime, and save it.
31
+ project.minimize_runtime!
32
+ project.save
33
+
34
+ puts
35
+ puts "Success!".green.bold + " Generated files (including bitfiles) will be created in: #{project.working_directory.underline}/.".green
36
+ puts "If Project Navigator asks you if you'd like to reload the project file, select " + "yes".bold + "."
37
+ puts
@@ -0,0 +1,122 @@
1
+
2
+ require 'cgi'
3
+ require 'inifile'
4
+
5
+ module ISE
6
+
7
+ #
8
+ # Represents a set of ISE Project Navigator Preferences.
9
+ #
10
+ class PreferenceFile < IniFile
11
+
12
+ #
13
+ # Determines the location of the ISE preferences file.
14
+ #
15
+ def self.ise_preference_file_path
16
+ "~/.config/Xilinx/ISE.conf"
17
+ end
18
+
19
+ #
20
+ # Loads an ISE preference file.
21
+ #
22
+ def self.load(filename=nil, opts={})
23
+
24
+ #If no filename was specified, use the default ISE preference file.
25
+ filename ||= File.expand_path(ise_preference_file_path)
26
+
27
+ #Parse the preference file as an INI file.
28
+ super
29
+
30
+ end
31
+
32
+ #
33
+ # Sets the value of a key in a hash-of-hashes via a unix-style path.
34
+ #
35
+ # path: The path to the target key, in a unix-style path structure. See example below.
36
+ # value: The value to put into the key.
37
+ # target: The hash to operate on. If target isn't provided, we work with the base INI.
38
+ #
39
+ # Example:
40
+ #
41
+ # set_by_path('foo/bar/tab', 3, a) would set
42
+ # a[foo][bar][tab] = 3; setting foo and bar to
43
+ #
44
+ #
45
+ def set_by_path(path, value, target=@ini)
46
+
47
+ #Split the path into its components.
48
+ keys = path.split('/')
49
+
50
+ #Traverse the path, creating any "folders" necessary along the way.
51
+ until keys.one?
52
+ target[keys.first] = {} unless target[keys.first].respond_to?(:[])
53
+ target = target[keys.shift]
54
+ end
55
+
56
+ #And finally, place the value into the appropriate "leaf".
57
+ target[keys.shift] = value
58
+
59
+ end
60
+
61
+ #
62
+ # Gets the value of a key in a hash-of-hashes via a unix-style path.
63
+ #
64
+ # path: The path to the target key, in a unix-style path structure. See example below.
65
+ # target: The hash to operate on. If target isn't provided, we work with the base INI.
66
+ #
67
+ # Example:
68
+ #
69
+ # set_by_path('foo/bar/tab', 3, a) would set
70
+ # a[foo][bar][tab] = 3; setting foo and bar to
71
+ #
72
+ #
73
+ def get_by_path(path, target=@ini)
74
+
75
+ #Split the path into its components...
76
+ keys = path.split('/')
77
+
78
+ #And traverse the hasn until we've fully navigated the path.
79
+ target = target[keys.shift] until keys.empty?
80
+
81
+ #Returns the final value.
82
+ target
83
+
84
+ end
85
+
86
+ #
87
+ # Processes a given name-value pair, adding them
88
+ # to the current INI database.
89
+ #
90
+ # Code taken from the 'inifile' gem.
91
+ #
92
+ def process_property(property, value)
93
+
94
+ value.chomp!
95
+
96
+ #If either the property or value are empty (or contain invalid whitespace),
97
+ #abort.
98
+ return if property.empty? and value.empty?
99
+ return if value.sub!(%r/\\\s*\z/, '')
100
+
101
+ #Strip any leading/trailing characters.
102
+ property.strip!
103
+ value.strip!
104
+
105
+ #Raise an error if we have an invalid property name.
106
+ parse_error if property.empty?
107
+
108
+ #Parse ISE's value into a path.
109
+ set_by_path(CGI::unescape(property), unescape_value(value.dup), current_section)
110
+
111
+ #And continue processing the property and value.
112
+ property.slice!(0, property.length)
113
+ value.slice!(0, value.length)
114
+
115
+ #Return nil.
116
+ nil
117
+
118
+ end
119
+
120
+ end
121
+
122
+ end
@@ -0,0 +1,146 @@
1
+
2
+ require 'ise'
3
+ require 'cgi'
4
+ require 'nokogiri'
5
+ require 'tmpdir'
6
+
7
+ module ISE
8
+
9
+ class Project
10
+
11
+ GoalProperty = 'Last Applied Goal'
12
+ ShortNameProperty = 'PROP_DesignName'
13
+ OutputNameProperty = 'Output File Name'
14
+ TopLevelFileProperty = 'Implementation Top File'
15
+ WorkingDirectoryProperty = 'Working Directory'
16
+
17
+ attr_reader :filename
18
+
19
+
20
+ #
21
+ # Creates a new ISE Project from an XML string or file object.
22
+ #
23
+ def initialize(xml, filename)
24
+ @xml = Nokogiri.XML(xml)
25
+ @filename = filename
26
+ @base_path = File.dirname(filename)
27
+ end
28
+
29
+
30
+ #
31
+ # Factory method which creates a new Project from a project file.
32
+ #
33
+ def self.load(file_path)
34
+ new(File::read(file_path), file_path)
35
+ end
36
+
37
+ #
38
+ # Writes the project to disk, saving any changes.
39
+ #
40
+ def save(file_path=@filename)
41
+ File::write(file_path, @xml)
42
+ end
43
+
44
+ #
45
+ # Returns the value of a project property.
46
+ #
47
+ def get_property(name)
48
+
49
+ #Retreive the value of the node with the given property.
50
+ node = get_property_node(name)
51
+ node.attribute("value").value
52
+
53
+ end
54
+
55
+ #
56
+ # Sets the value of an ISE project property.
57
+ #
58
+ def set_property(name, value, mark_non_default=true)
59
+
60
+ #Set the node's property, as specified.
61
+ node = get_property_node(name)
62
+ node.attribute("value").value = value
63
+
64
+ #If the mark non-default option is set, mark the state is not a default value.
65
+ node.attribute("valueState").value = 'non-default' if mark_non_default
66
+
67
+ end
68
+
69
+ #
70
+ # Attempts to minimize synthesis runtime of a _single run_.
71
+ #
72
+ # This will place all intermediary files in RAM- which means that synthesis
73
+ # results won't be preserved between reboots!
74
+ #
75
+ def minimize_runtime!
76
+
77
+ #Compute the path in which temporary synthesis files should be created.
78
+ shortname = CGI::escape(get_property(ShortNameProperty))
79
+ temp_path = Dir::mktmpdir([shortname, ''])
80
+
81
+ #Synthesize from RAM.
82
+ set_property(WorkingDirectoryProperty, temp_path)
83
+
84
+ #Ask the project to focus on runtime over performance.
85
+ set_property(GoalProperty, 'Minimum Runtime')
86
+
87
+ end
88
+
89
+ #
90
+ # Returns a path to the top-level file in the given project.
91
+ #
92
+ # absoulute_path: If set when the project file's path is known, an absolute path will be returned.
93
+ #
94
+ def top_level_file(absolute_path=true)
95
+
96
+ path = get_property(TopLevelFileProperty)
97
+
98
+ #If the absolute_path flag is set, and we know how, expand the file path.
99
+ if absolute_path
100
+ path = File.expand_path(path, @base_path)
101
+ end
102
+
103
+ #Return the relevant path.
104
+ path
105
+
106
+ end
107
+
108
+ #
109
+ # Returns the project's working directory.
110
+ #
111
+ def working_directory
112
+ File.expand_path(get_property(WorkingDirectoryProperty), @base_path)
113
+ end
114
+
115
+ #
116
+ # Returns the best-guess path to the most recently generated bit file,
117
+ # or nil if we weren't able to find one.
118
+ #
119
+ def bit_file
120
+
121
+ #Determine ISE's working directory.
122
+ working_directory = get_property(WorkingDirectoryProperty)
123
+
124
+ #Find an absolute path at which the most recently generated bit file should reside.
125
+ name = get_property(OutputNameProperty)
126
+ name = File.expand_path("#{working_directory}/#{name}.bit", @base_path)
127
+
128
+ #If it exists, return it.
129
+ File::exists?(name) ? name : nil
130
+
131
+ end
132
+
133
+ private
134
+
135
+ #
136
+ # Retreives the node with the given property name.
137
+ #
138
+ def get_property_node(name)
139
+ @xml.at_css("property[xil_pn|name=\"#{name}\"]")
140
+ end
141
+
142
+
143
+ end
144
+
145
+
146
+ end
@@ -0,0 +1,73 @@
1
+
2
+ require 'ise'
3
+
4
+ module ISE
5
+
6
+ #
7
+ # Module which handles manipulating the ISE Project Navigator.
8
+ #
9
+ module ProjectNavigator
10
+ extend self
11
+
12
+ RecentProjectsPath = 'Project Navigator/Recent Project List1'
13
+
14
+ #
15
+ # Loads preferences.
16
+ # By default, preferences are only loaded once.
17
+ #
18
+ def load_preferences(force_reload=false)
19
+ @preferences = nil if force_reload
20
+ @preferences ||= PreferenceFile.load
21
+ end
22
+
23
+ #
24
+ # Returns the current ISE version.
25
+ #
26
+ def version
27
+ load_preferences
28
+ @preferences.sections.first
29
+ end
30
+
31
+ #
32
+ #
33
+ #
34
+ def preferences
35
+ load_preferences
36
+ return @preferences[version]
37
+ end
38
+
39
+ #
40
+ # Returns the preference with the given path.
41
+ #
42
+ def preference(path, prefix="#{version}/")
43
+ return @preferences.get_by_path(prefix + path)
44
+ end
45
+
46
+
47
+ #
48
+ # Returns most recently open project. If Project Navigator has a project open,
49
+ # that project will be used. This function re-loads the preferences file upon each call,
50
+ # to ensure we don't have stale data.
51
+ #
52
+ def most_recent_project_path
53
+
54
+ #Re-load the preference file, so we have the most recent project.
55
+ @preferences = PreferenceFile.load
56
+
57
+ #And retrieve the first project in the recent projects list.
58
+ project = preference(RecentProjectsPath).split(', ').first
59
+
60
+ #If the project exists, return it; otherwise, return nil.
61
+ File::exists?(project) ? project : nil
62
+
63
+ end
64
+
65
+ #
66
+ # Returns a project object representing the most recently open project.
67
+ #
68
+ def most_recent_project
69
+ Project.load(most_recent_project_path)
70
+ end
71
+
72
+ end
73
+ end
@@ -0,0 +1,5 @@
1
+ module Ruby
2
+ module Ise
3
+ VERSION = "0.4.0"
4
+ end
5
+ end
data/lib/ise.rb ADDED
@@ -0,0 +1,5 @@
1
+
2
+ require 'ise/project_navigator'
3
+ require 'ise/preference_set'
4
+ require 'ise/project'
5
+
data/ruby-ise.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ require 'ise/version'
6
+
7
+ Gem::Specification.new do |gem|
8
+ gem.name = "ruby-ise"
9
+ gem.version = Ruby::Ise::VERSION
10
+ gem.authors = ["Kyle J. Temkin"]
11
+ gem.email = ["ktemkin@binghamton.edu"]
12
+ gem.description = %q{Simple gem which extracts meta-data from Xilinx ISE files. Intended to simplify using Rake with ruby-adept, and with ISE/XST.}
13
+ gem.summary = %q{Simple gem which extracts metadata from Xilinx ISE files.}
14
+ gem.homepage = "http://www.github.com/ktemkin/ruby-ise"
15
+
16
+ gem.files = `git ls-files`.split($/)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.require_paths = ["lib"]
20
+
21
+ gem.add_runtime_dependency "inifile"
22
+ gem.add_runtime_dependency "nokogiri"
23
+ gem.add_runtime_dependency "highline"
24
+ gem.add_runtime_dependency "smart_colored"
25
+
26
+ end
@@ -0,0 +1,530 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
2
+ <project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
3
+
4
+ <header>
5
+ <!-- ISE source project file created by Project Navigator. -->
6
+ <!-- -->
7
+ <!-- This file contains project source information including a list of -->
8
+ <!-- project source files, project and process properties. This file, -->
9
+ <!-- along with the project source files, is sufficient to open and -->
10
+ <!-- implement in ISE Project Navigator. -->
11
+ <!-- -->
12
+ <!-- Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. -->
13
+ </header>
14
+
15
+ <version xil_pn:ise_version="14.1" xil_pn:schema_version="2"/>
16
+
17
+ <files>
18
+ <file xil_pn:name="../../sources/CommonPacks/AVRuCPackage.vhd" xil_pn:type="FILE_VHDL">
19
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="1"/>
20
+ <association xil_pn:name="Implementation" xil_pn:seqID="6"/>
21
+ </file>
22
+ <file xil_pn:name="../../sources/CommonPacks/SynthCtrlPack.vhd" xil_pn:type="FILE_VHDL">
23
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="2"/>
24
+ <association xil_pn:name="Implementation" xil_pn:seqID="1"/>
25
+ </file>
26
+ <file xil_pn:name="../../sources/Core/AVR_Core_CompPack.vhd" xil_pn:type="FILE_VHDL">
27
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="3"/>
28
+ <association xil_pn:name="Implementation" xil_pn:seqID="20"/>
29
+ </file>
30
+ <file xil_pn:name="../../sources/Core/alu_avr.vhd" xil_pn:type="FILE_VHDL">
31
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="4"/>
32
+ <association xil_pn:name="Implementation" xil_pn:seqID="21"/>
33
+ </file>
34
+ <file xil_pn:name="../../sources/Core/avr_core.vhd" xil_pn:type="FILE_VHDL">
35
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="5"/>
36
+ <association xil_pn:name="Implementation" xil_pn:seqID="37"/>
37
+ </file>
38
+ <file xil_pn:name="../../sources/Core/bit_processor.vhd" xil_pn:type="FILE_VHDL">
39
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="6"/>
40
+ <association xil_pn:name="Implementation" xil_pn:seqID="19"/>
41
+ </file>
42
+ <file xil_pn:name="../../sources/Core/io_adr_dec.vhd" xil_pn:type="FILE_VHDL">
43
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="7"/>
44
+ <association xil_pn:name="Implementation" xil_pn:seqID="18"/>
45
+ </file>
46
+ <file xil_pn:name="../../sources/Core/io_reg_file.vhd" xil_pn:type="FILE_VHDL">
47
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="8"/>
48
+ <association xil_pn:name="Implementation" xil_pn:seqID="17"/>
49
+ </file>
50
+ <file xil_pn:name="../../sources/Core/pm_fetch_dec.vhd" xil_pn:type="FILE_VHDL">
51
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="9"/>
52
+ <association xil_pn:name="Implementation" xil_pn:seqID="16"/>
53
+ </file>
54
+ <file xil_pn:name="../../sources/Core/reg_file.vhd" xil_pn:type="FILE_VHDL">
55
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="10"/>
56
+ <association xil_pn:name="Implementation" xil_pn:seqID="15"/>
57
+ </file>
58
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/JTAGCompPack.vhd" xil_pn:type="FILE_VHDL">
59
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="11"/>
60
+ <association xil_pn:name="Implementation" xil_pn:seqID="14"/>
61
+ </file>
62
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/JTAGDataPack.vhd" xil_pn:type="FILE_VHDL">
63
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="12"/>
64
+ <association xil_pn:name="Implementation" xil_pn:seqID="5"/>
65
+ </file>
66
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/JTAGOCDPrgTop.vhd" xil_pn:type="FILE_VHDL">
67
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="13"/>
68
+ <association xil_pn:name="Implementation" xil_pn:seqID="36"/>
69
+ </file>
70
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/JTAGPack.vhd" xil_pn:type="FILE_VHDL">
71
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="14"/>
72
+ <association xil_pn:name="Implementation" xil_pn:seqID="4"/>
73
+ </file>
74
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/JTAGProgrammerPack.vhd" xil_pn:type="FILE_VHDL">
75
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="15"/>
76
+ <association xil_pn:name="Implementation" xil_pn:seqID="3"/>
77
+ </file>
78
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/JTAGTAPCtrlSMPack.vhd" xil_pn:type="FILE_VHDL">
79
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="16"/>
80
+ <association xil_pn:name="Implementation" xil_pn:seqID="2"/>
81
+ </file>
82
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/OCDProgcp2.vhd" xil_pn:type="FILE_VHDL">
83
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="17"/>
84
+ <association xil_pn:name="Implementation" xil_pn:seqID="13"/>
85
+ </file>
86
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/OCDProgTCK.vhd" xil_pn:type="FILE_VHDL">
87
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="18"/>
88
+ <association xil_pn:name="Implementation" xil_pn:seqID="12"/>
89
+ </file>
90
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/Resync1b_cp2.vhd" xil_pn:type="FILE_VHDL">
91
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="19"/>
92
+ <association xil_pn:name="Implementation" xil_pn:seqID="11"/>
93
+ </file>
94
+ <file xil_pn:name="../../sources/JTAG_OCD_Prg/Resync1b_TCK.vhd" xil_pn:type="FILE_VHDL">
95
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="20"/>
96
+ <association xil_pn:name="Implementation" xil_pn:seqID="10"/>
97
+ </file>
98
+ <file xil_pn:name="../../sources/MemArbAndMux/ArbiterAndMux.vhd" xil_pn:type="FILE_VHDL">
99
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="21"/>
100
+ <association xil_pn:name="Implementation" xil_pn:seqID="35"/>
101
+ </file>
102
+ <file xil_pn:name="../../sources/MemArbAndMux/MemAccessCompPack.vhd" xil_pn:type="FILE_VHDL">
103
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="22"/>
104
+ <association xil_pn:name="Implementation" xil_pn:seqID="34"/>
105
+ </file>
106
+ <file xil_pn:name="../../sources/MemArbAndMux/MemAccessCtrlPack.vhd" xil_pn:type="FILE_VHDL">
107
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="23"/>
108
+ <association xil_pn:name="Implementation" xil_pn:seqID="9"/>
109
+ </file>
110
+ <file xil_pn:name="../../sources/MemArbAndMux/MemRdMux.vhd" xil_pn:type="FILE_VHDL">
111
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="24"/>
112
+ <association xil_pn:name="Implementation" xil_pn:seqID="33"/>
113
+ </file>
114
+ <file xil_pn:name="../../sources/MemArbAndMux/RAMAdrDcd.vhd" xil_pn:type="FILE_VHDL">
115
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="25"/>
116
+ <association xil_pn:name="Implementation" xil_pn:seqID="32"/>
117
+ </file>
118
+ <file xil_pn:name="../../sources/Memory/XMemCompPack.vhd" xil_pn:type="FILE_VHDL">
119
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="26"/>
120
+ <association xil_pn:name="Implementation" xil_pn:seqID="30"/>
121
+ </file>
122
+ <file xil_pn:name="../../sources/Memory/XPM8Kx16.vhd" xil_pn:type="FILE_VHDL">
123
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="27"/>
124
+ <association xil_pn:name="Implementation" xil_pn:seqID="29"/>
125
+ </file>
126
+ <file xil_pn:name="../../sources/Peripheral/SynchronizerCompPack.vhd" xil_pn:type="FILE_VHDL">
127
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="29"/>
128
+ <association xil_pn:name="Implementation" xil_pn:seqID="7"/>
129
+ </file>
130
+ <file xil_pn:name="../../sources/Peripheral/Timer_Counter.vhd" xil_pn:type="FILE_VHDL">
131
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="32"/>
132
+ <association xil_pn:name="Implementation" xil_pn:seqID="27"/>
133
+ </file>
134
+ <file xil_pn:name="../../sources/Peripheral/uart.vhd" xil_pn:type="FILE_VHDL">
135
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="33"/>
136
+ <association xil_pn:name="Implementation" xil_pn:seqID="26"/>
137
+ </file>
138
+ <file xil_pn:name="../../sources/uC/AVR_uC_CompPack.vhd" xil_pn:type="FILE_VHDL">
139
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="34"/>
140
+ <association xil_pn:name="Implementation" xil_pn:seqID="25"/>
141
+ </file>
142
+ <file xil_pn:name="../../sources/uC/BusMastCompPack.vhd" xil_pn:type="FILE_VHDL">
143
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="35"/>
144
+ <association xil_pn:name="Implementation" xil_pn:seqID="0"/>
145
+ </file>
146
+ <file xil_pn:name="../../sources/uC/external_mux.vhd" xil_pn:type="FILE_VHDL">
147
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="36"/>
148
+ <association xil_pn:name="Implementation" xil_pn:seqID="24"/>
149
+ </file>
150
+ <file xil_pn:name="../../sources/uC/RAMDataReg.vhd" xil_pn:type="FILE_VHDL">
151
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="37"/>
152
+ <association xil_pn:name="Implementation" xil_pn:seqID="23"/>
153
+ </file>
154
+ <file xil_pn:name="../../sources/uC/ResetGenerator.vhd" xil_pn:type="FILE_VHDL">
155
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="38"/>
156
+ <association xil_pn:name="Implementation" xil_pn:seqID="22"/>
157
+ </file>
158
+ <file xil_pn:name="../../sources/Memory/XDM4Kx8.vhd" xil_pn:type="FILE_VHDL">
159
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="41"/>
160
+ <association xil_pn:name="Implementation" xil_pn:seqID="31"/>
161
+ </file>
162
+ <file xil_pn:name="testbench.vhd" xil_pn:type="FILE_VHDL">
163
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="42"/>
164
+ <association xil_pn:name="PostMapSimulation" xil_pn:seqID="42"/>
165
+ <association xil_pn:name="PostRouteSimulation" xil_pn:seqID="42"/>
166
+ <association xil_pn:name="PostTranslateSimulation" xil_pn:seqID="42"/>
167
+ </file>
168
+ <file xil_pn:name="../../sources/Memory/prog_mem_init.vhd" xil_pn:type="FILE_VHDL">
169
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="45"/>
170
+ <association xil_pn:name="Implementation" xil_pn:seqID="8"/>
171
+ </file>
172
+ <file xil_pn:name="../../sources/uC/Basys_AVR8.vhd" xil_pn:type="FILE_VHDL">
173
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="47"/>
174
+ <association xil_pn:name="Implementation" xil_pn:seqID="39"/>
175
+ </file>
176
+ <file xil_pn:name="ipcore_dir/DCM50to16.xaw" xil_pn:type="FILE_XAW">
177
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="48"/>
178
+ <association xil_pn:name="Implementation" xil_pn:seqID="38"/>
179
+ </file>
180
+ <file xil_pn:name="Basys2.ucf" xil_pn:type="FILE_UCF">
181
+ <association xil_pn:name="Implementation" xil_pn:seqID="0"/>
182
+ </file>
183
+ <file xil_pn:name="Basys_AVR8.bmm" xil_pn:type="FILE_BMM">
184
+ <association xil_pn:name="Implementation" xil_pn:seqID="0"/>
185
+ </file>
186
+ <file xil_pn:name="../../sources/Peripheral/gpio_port.vhd" xil_pn:type="FILE_VHDL">
187
+ <association xil_pn:name="BehavioralSimulation" xil_pn:seqID="196"/>
188
+ <association xil_pn:name="Implementation" xil_pn:seqID="28"/>
189
+ </file>
190
+ </files>
191
+
192
+ <properties>
193
+ <property xil_pn:name="Add I/O Buffers" xil_pn:value="true" xil_pn:valueState="default"/>
194
+ <property xil_pn:name="Allow Logic Optimization Across Hierarchy" xil_pn:value="false" xil_pn:valueState="default"/>
195
+ <property xil_pn:name="Allow SelectMAP Pins to Persist" xil_pn:value="false" xil_pn:valueState="default"/>
196
+ <property xil_pn:name="Allow Unexpanded Blocks" xil_pn:value="false" xil_pn:valueState="default"/>
197
+ <property xil_pn:name="Allow Unmatched LOC Constraints" xil_pn:value="false" xil_pn:valueState="default"/>
198
+ <property xil_pn:name="Allow Unmatched Timing Group Constraints" xil_pn:value="false" xil_pn:valueState="default"/>
199
+ <property xil_pn:name="Asynchronous To Synchronous" xil_pn:value="false" xil_pn:valueState="default"/>
200
+ <property xil_pn:name="Auto Implementation Compile Order" xil_pn:value="true" xil_pn:valueState="default"/>
201
+ <property xil_pn:name="Auto Implementation Top" xil_pn:value="true" xil_pn:valueState="default"/>
202
+ <property xil_pn:name="Automatic BRAM Packing" xil_pn:value="false" xil_pn:valueState="default"/>
203
+ <property xil_pn:name="Automatically Insert glbl Module in the Netlist" xil_pn:value="true" xil_pn:valueState="default"/>
204
+ <property xil_pn:name="Automatically Run Generate Target PROM/ACE File" xil_pn:value="false" xil_pn:valueState="default"/>
205
+ <property xil_pn:name="BRAM Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/>
206
+ <property xil_pn:name="Bring Out Global Set/Reset Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/>
207
+ <property xil_pn:name="Bring Out Global Tristate Net as a Port" xil_pn:value="false" xil_pn:valueState="default"/>
208
+ <property xil_pn:name="Bus Delimiter" xil_pn:value="&lt;>" xil_pn:valueState="default"/>
209
+ <property xil_pn:name="CLB Pack Factor Percentage" xil_pn:value="100" xil_pn:valueState="default"/>
210
+ <property xil_pn:name="Case" xil_pn:value="Maintain" xil_pn:valueState="default"/>
211
+ <property xil_pn:name="Case Implementation Style" xil_pn:value="None" xil_pn:valueState="default"/>
212
+ <property xil_pn:name="Change Device Speed To" xil_pn:value="-4" xil_pn:valueState="default"/>
213
+ <property xil_pn:name="Change Device Speed To Post Trace" xil_pn:value="-4" xil_pn:valueState="default"/>
214
+ <property xil_pn:name="Combinatorial Logic Optimization" xil_pn:value="false" xil_pn:valueState="default"/>
215
+ <property xil_pn:name="Compile EDK Simulation Library" xil_pn:value="true" xil_pn:valueState="non-default"/>
216
+ <property xil_pn:name="Compile SIMPRIM (Timing) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
217
+ <property xil_pn:name="Compile UNISIM (Functional) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
218
+ <property xil_pn:name="Compile XilinxCoreLib (CORE Generator) Simulation Library" xil_pn:value="true" xil_pn:valueState="default"/>
219
+ <property xil_pn:name="Compile for HDL Debugging" xil_pn:value="true" xil_pn:valueState="default"/>
220
+ <property xil_pn:name="Configuration Name" xil_pn:value="Default" xil_pn:valueState="default"/>
221
+ <property xil_pn:name="Configuration Pin Done" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
222
+ <property xil_pn:name="Configuration Pin Program" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
223
+ <property xil_pn:name="Configuration Rate" xil_pn:value="Default (1)" xil_pn:valueState="default"/>
224
+ <property xil_pn:name="Correlate Output to Input Design" xil_pn:value="false" xil_pn:valueState="default"/>
225
+ <property xil_pn:name="Create ASCII Configuration File" xil_pn:value="false" xil_pn:valueState="default"/>
226
+ <property xil_pn:name="Create Binary Configuration File" xil_pn:value="false" xil_pn:valueState="default"/>
227
+ <property xil_pn:name="Create Bit File" xil_pn:value="true" xil_pn:valueState="default"/>
228
+ <property xil_pn:name="Create I/O Pads from Ports" xil_pn:value="false" xil_pn:valueState="default"/>
229
+ <property xil_pn:name="Create IEEE 1532 Configuration File" xil_pn:value="false" xil_pn:valueState="default"/>
230
+ <property xil_pn:name="Create Logic Allocation File" xil_pn:value="false" xil_pn:valueState="default"/>
231
+ <property xil_pn:name="Create Mask File" xil_pn:value="false" xil_pn:valueState="default"/>
232
+ <property xil_pn:name="Create ReadBack Data Files" xil_pn:value="false" xil_pn:valueState="default"/>
233
+ <property xil_pn:name="Cross Clock Analysis" xil_pn:value="false" xil_pn:valueState="default"/>
234
+ <property xil_pn:name="Data Flow window" xil_pn:value="false" xil_pn:valueState="default"/>
235
+ <property xil_pn:name="Decoder Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
236
+ <property xil_pn:name="Delay Values To Be Read from SDF" xil_pn:value="Setup Time" xil_pn:valueState="default"/>
237
+ <property xil_pn:name="Delay Values To Be Read from SDF ModelSim" xil_pn:value="Setup Time" xil_pn:valueState="default"/>
238
+ <property xil_pn:name="Device" xil_pn:value="xc3s250e" xil_pn:valueState="non-default"/>
239
+ <property xil_pn:name="Device Family" xil_pn:value="Spartan3E" xil_pn:valueState="non-default"/>
240
+ <property xil_pn:name="Device Speed Grade/Select ABS Minimum" xil_pn:value="-4" xil_pn:valueState="default"/>
241
+ <property xil_pn:name="Do Not Escape Signal and Instance Names in Netlist" xil_pn:value="false" xil_pn:valueState="default"/>
242
+ <property xil_pn:name="Done (Output Events)" xil_pn:value="Default (4)" xil_pn:valueState="default"/>
243
+ <property xil_pn:name="Drive Done Pin High" xil_pn:value="false" xil_pn:valueState="default"/>
244
+ <property xil_pn:name="Enable BitStream Compression" xil_pn:value="false" xil_pn:valueState="default"/>
245
+ <property xil_pn:name="Enable Cyclic Redundancy Checking (CRC)" xil_pn:value="true" xil_pn:valueState="default"/>
246
+ <property xil_pn:name="Enable Debugging of Serial Mode BitStream" xil_pn:value="false" xil_pn:valueState="default"/>
247
+ <property xil_pn:name="Enable Hardware Co-Simulation" xil_pn:value="false" xil_pn:valueState="default"/>
248
+ <property xil_pn:name="Enable Internal Done Pipe" xil_pn:value="false" xil_pn:valueState="default"/>
249
+ <property xil_pn:name="Enable Message Filtering" xil_pn:value="false" xil_pn:valueState="default"/>
250
+ <property xil_pn:name="Enable Outputs (Output Events)" xil_pn:value="Default (5)" xil_pn:valueState="default"/>
251
+ <property xil_pn:name="Equivalent Register Removal XST" xil_pn:value="true" xil_pn:valueState="default"/>
252
+ <property xil_pn:name="Evaluation Development Board" xil_pn:value="None Specified" xil_pn:valueState="default"/>
253
+ <property xil_pn:name="Exclude Compilation of Deprecated EDK Cores" xil_pn:value="true" xil_pn:valueState="default"/>
254
+ <property xil_pn:name="Exclude Compilation of EDK Sub-Libraries" xil_pn:value="false" xil_pn:valueState="default"/>
255
+ <property xil_pn:name="Extra Effort" xil_pn:value="None" xil_pn:valueState="default"/>
256
+ <property xil_pn:name="Extra Effort (Highest PAR level only)" xil_pn:value="None" xil_pn:valueState="default"/>
257
+ <property xil_pn:name="FPGA Start-Up Clock" xil_pn:value="JTAG Clock" xil_pn:valueState="non-default"/>
258
+ <property xil_pn:name="FSM Encoding Algorithm" xil_pn:value="Auto" xil_pn:valueState="default"/>
259
+ <property xil_pn:name="FSM Style" xil_pn:value="LUT" xil_pn:valueState="default"/>
260
+ <property xil_pn:name="Filter Files From Compile Order" xil_pn:value="true" xil_pn:valueState="default"/>
261
+ <property xil_pn:name="Flatten Output Netlist" xil_pn:value="false" xil_pn:valueState="default"/>
262
+ <property xil_pn:name="Functional Model Target Language ArchWiz" xil_pn:value="VHDL" xil_pn:valueState="default"/>
263
+ <property xil_pn:name="Functional Model Target Language Coregen" xil_pn:value="VHDL" xil_pn:valueState="default"/>
264
+ <property xil_pn:name="Functional Model Target Language Schematic" xil_pn:value="VHDL" xil_pn:valueState="default"/>
265
+ <property xil_pn:name="Generate Architecture Only (No Entity Declaration)" xil_pn:value="false" xil_pn:valueState="default"/>
266
+ <property xil_pn:name="Generate Asynchronous Delay Report" xil_pn:value="false" xil_pn:valueState="default"/>
267
+ <property xil_pn:name="Generate Clock Region Report" xil_pn:value="false" xil_pn:valueState="default"/>
268
+ <property xil_pn:name="Generate Constraints Interaction Report" xil_pn:value="false" xil_pn:valueState="default"/>
269
+ <property xil_pn:name="Generate Constraints Interaction Report Post Trace" xil_pn:value="false" xil_pn:valueState="default"/>
270
+ <property xil_pn:name="Generate Datasheet Section" xil_pn:value="true" xil_pn:valueState="default"/>
271
+ <property xil_pn:name="Generate Datasheet Section Post Trace" xil_pn:value="true" xil_pn:valueState="default"/>
272
+ <property xil_pn:name="Generate Detailed MAP Report" xil_pn:value="false" xil_pn:valueState="default"/>
273
+ <property xil_pn:name="Generate Multiple Hierarchical Netlist Files" xil_pn:value="false" xil_pn:valueState="default"/>
274
+ <property xil_pn:name="Generate Post-Place &amp; Route Power Report" xil_pn:value="false" xil_pn:valueState="default"/>
275
+ <property xil_pn:name="Generate Post-Place &amp; Route Simulation Model" xil_pn:value="false" xil_pn:valueState="default"/>
276
+ <property xil_pn:name="Generate RTL Schematic" xil_pn:value="Yes" xil_pn:valueState="default"/>
277
+ <property xil_pn:name="Generate SAIF File for Power Optimization/Estimation" xil_pn:value="false" xil_pn:valueState="default"/>
278
+ <property xil_pn:name="Generate SAIF File for Power Optimization/Estimation Par" xil_pn:value="false" xil_pn:valueState="default"/>
279
+ <property xil_pn:name="Generate Testbench File" xil_pn:value="false" xil_pn:valueState="default"/>
280
+ <property xil_pn:name="Generate Timegroups Section" xil_pn:value="false" xil_pn:valueState="default"/>
281
+ <property xil_pn:name="Generate Timegroups Section Post Trace" xil_pn:value="false" xil_pn:valueState="default"/>
282
+ <property xil_pn:name="Generate Verbose Library Compilation Messages" xil_pn:value="true" xil_pn:valueState="default"/>
283
+ <property xil_pn:name="Generics, Parameters" xil_pn:value="" xil_pn:valueState="default"/>
284
+ <property xil_pn:name="Global Optimization Goal" xil_pn:value="AllClockNets" xil_pn:valueState="default"/>
285
+ <property xil_pn:name="Global Set/Reset Port Name" xil_pn:value="GSR_PORT" xil_pn:valueState="default"/>
286
+ <property xil_pn:name="Global Tristate Port Name" xil_pn:value="GTS_PORT" xil_pn:valueState="default"/>
287
+ <property xil_pn:name="HDL Instantiation Template Target Language" xil_pn:value="VHDL" xil_pn:valueState="default"/>
288
+ <property xil_pn:name="Hierarchy Separator" xil_pn:value="/" xil_pn:valueState="default"/>
289
+ <property xil_pn:name="ISim UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/>
290
+ <property xil_pn:name="Ignore Pre-Compiled Library Warning Check" xil_pn:value="false" xil_pn:valueState="default"/>
291
+ <property xil_pn:name="Ignore User Timing Constraints Map" xil_pn:value="false" xil_pn:valueState="default"/>
292
+ <property xil_pn:name="Ignore User Timing Constraints Par" xil_pn:value="false" xil_pn:valueState="default"/>
293
+ <property xil_pn:name="Implementation Top" xil_pn:value="Architecture|basys_avr8|structure" xil_pn:valueState="non-default"/>
294
+ <property xil_pn:name="Implementation Top File" xil_pn:value="./toplevel.vhd" xil_pn:valueState="non-default"/>
295
+ <property xil_pn:name="Implementation Top Instance Path" xil_pn:value="/basys_avr8" xil_pn:valueState="non-default"/>
296
+ <property xil_pn:name="Include 'uselib Directive in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
297
+ <property xil_pn:name="Include SIMPRIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
298
+ <property xil_pn:name="Include UNISIM Models in Verilog File" xil_pn:value="false" xil_pn:valueState="default"/>
299
+ <property xil_pn:name="Include sdf_annotate task in Verilog File" xil_pn:value="true" xil_pn:valueState="default"/>
300
+ <property xil_pn:name="Incremental Compilation" xil_pn:value="true" xil_pn:valueState="default"/>
301
+ <property xil_pn:name="Insert Buffers to Prevent Pulse Swallowing" xil_pn:value="true" xil_pn:valueState="default"/>
302
+ <property xil_pn:name="Instantiation Template Target Language Xps" xil_pn:value="VHDL" xil_pn:valueState="default"/>
303
+ <property xil_pn:name="JTAG Pin TCK" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
304
+ <property xil_pn:name="JTAG Pin TDI" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
305
+ <property xil_pn:name="JTAG Pin TDO" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
306
+ <property xil_pn:name="JTAG Pin TMS" xil_pn:value="Pull Up" xil_pn:valueState="default"/>
307
+ <property xil_pn:name="Keep Hierarchy" xil_pn:value="No" xil_pn:valueState="default"/>
308
+ <property xil_pn:name="Language" xil_pn:value="VHDL" xil_pn:valueState="default"/>
309
+ <property xil_pn:name="Last Applied Goal" xil_pn:value="Balanced" xil_pn:valueState="default"/>
310
+ <property xil_pn:name="Last Applied Strategy" xil_pn:value="Xilinx Default (unlocked)" xil_pn:valueState="default"/>
311
+ <property xil_pn:name="Last Unlock Status" xil_pn:value="false" xil_pn:valueState="default"/>
312
+ <property xil_pn:name="Launch SDK after Export" xil_pn:value="true" xil_pn:valueState="default"/>
313
+ <property xil_pn:name="Library for Verilog Sources" xil_pn:value="" xil_pn:valueState="default"/>
314
+ <property xil_pn:name="List window" xil_pn:value="false" xil_pn:valueState="default"/>
315
+ <property xil_pn:name="Load glbl" xil_pn:value="true" xil_pn:valueState="default"/>
316
+ <property xil_pn:name="Log All Signals In Behavioral Simulation" xil_pn:value="false" xil_pn:valueState="default"/>
317
+ <property xil_pn:name="Log All Signals In Post-Map Simulation" xil_pn:value="false" xil_pn:valueState="default"/>
318
+ <property xil_pn:name="Log All Signals In Post-Par Simulation" xil_pn:value="false" xil_pn:valueState="default"/>
319
+ <property xil_pn:name="Log All Signals In Post-Translate Simulation" xil_pn:value="false" xil_pn:valueState="default"/>
320
+ <property xil_pn:name="Logical Shifter Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
321
+ <property xil_pn:name="Manual Implementation Compile Order" xil_pn:value="false" xil_pn:valueState="default"/>
322
+ <property xil_pn:name="Map Effort Level" xil_pn:value="High" xil_pn:valueState="default"/>
323
+ <property xil_pn:name="Map Slice Logic into Unused Block RAMs" xil_pn:value="false" xil_pn:valueState="default"/>
324
+ <property xil_pn:name="Max Fanout" xil_pn:value="500" xil_pn:valueState="default"/>
325
+ <property xil_pn:name="Maximum Number of Lines in Report" xil_pn:value="1000" xil_pn:valueState="default"/>
326
+ <property xil_pn:name="Maximum Signal Name Length" xil_pn:value="20" xil_pn:valueState="default"/>
327
+ <property xil_pn:name="ModelSim Post-Map UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/>
328
+ <property xil_pn:name="ModelSim Post-Par UUT Instance Name" xil_pn:value="UUT" xil_pn:valueState="default"/>
329
+ <property xil_pn:name="Move First Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/>
330
+ <property xil_pn:name="Move Last Flip-Flop Stage" xil_pn:value="true" xil_pn:valueState="default"/>
331
+ <property xil_pn:name="Multiplier Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
332
+ <property xil_pn:name="Mux Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/>
333
+ <property xil_pn:name="Mux Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
334
+ <property xil_pn:name="Netlist Hierarchy" xil_pn:value="As Optimized" xil_pn:valueState="default"/>
335
+ <property xil_pn:name="Netlist Translation Type" xil_pn:value="Timestamp" xil_pn:valueState="default"/>
336
+ <property xil_pn:name="Number of Clock Buffers" xil_pn:value="24" xil_pn:valueState="default"/>
337
+ <property xil_pn:name="Number of Paths in Error/Verbose Report" xil_pn:value="3" xil_pn:valueState="default"/>
338
+ <property xil_pn:name="Number of Paths in Error/Verbose Report Post Trace" xil_pn:value="3" xil_pn:valueState="default"/>
339
+ <property xil_pn:name="Optimization Effort" xil_pn:value="Normal" xil_pn:valueState="default"/>
340
+ <property xil_pn:name="Optimization Goal" xil_pn:value="Speed" xil_pn:valueState="default"/>
341
+ <property xil_pn:name="Optimization Strategy (Cover Mode)" xil_pn:value="Area" xil_pn:valueState="default"/>
342
+ <property xil_pn:name="Optimize Instantiated Primitives" xil_pn:value="false" xil_pn:valueState="default"/>
343
+ <property xil_pn:name="Other Bitgen Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
344
+ <property xil_pn:name="Other Compiler Options" xil_pn:value="" xil_pn:valueState="default"/>
345
+ <property xil_pn:name="Other Compiler Options Map" xil_pn:value="" xil_pn:valueState="default"/>
346
+ <property xil_pn:name="Other Compiler Options Par" xil_pn:value="" xil_pn:valueState="default"/>
347
+ <property xil_pn:name="Other Compiler Options Translate" xil_pn:value="" xil_pn:valueState="default"/>
348
+ <property xil_pn:name="Other Compxlib Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
349
+ <property xil_pn:name="Other Map Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
350
+ <property xil_pn:name="Other NETGEN Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
351
+ <property xil_pn:name="Other Ngdbuild Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
352
+ <property xil_pn:name="Other Place &amp; Route Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
353
+ <property xil_pn:name="Other Simulator Commands Behavioral" xil_pn:value="" xil_pn:valueState="default"/>
354
+ <property xil_pn:name="Other Simulator Commands Post-Map" xil_pn:value="" xil_pn:valueState="default"/>
355
+ <property xil_pn:name="Other Simulator Commands Post-Route" xil_pn:value="" xil_pn:valueState="default"/>
356
+ <property xil_pn:name="Other Simulator Commands Post-Translate" xil_pn:value="" xil_pn:valueState="default"/>
357
+ <property xil_pn:name="Other VCOM Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
358
+ <property xil_pn:name="Other VLOG Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
359
+ <property xil_pn:name="Other VSIM Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
360
+ <property xil_pn:name="Other XPWR Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
361
+ <property xil_pn:name="Other XST Command Line Options" xil_pn:value="" xil_pn:valueState="default"/>
362
+ <property xil_pn:name="Output Extended Identifiers" xil_pn:value="false" xil_pn:valueState="default"/>
363
+ <property xil_pn:name="Output File Name" xil_pn:value="toplevel" xil_pn:valueState="default"/>
364
+ <property xil_pn:name="Overwrite Compiled Libraries" xil_pn:value="false" xil_pn:valueState="default"/>
365
+ <property xil_pn:name="Pack I/O Registers into IOBs" xil_pn:value="Auto" xil_pn:valueState="default"/>
366
+ <property xil_pn:name="Pack I/O Registers/Latches into IOBs" xil_pn:value="Off" xil_pn:valueState="default"/>
367
+ <property xil_pn:name="Package" xil_pn:value="cp132" xil_pn:valueState="non-default"/>
368
+ <property xil_pn:name="Perform Advanced Analysis" xil_pn:value="false" xil_pn:valueState="default"/>
369
+ <property xil_pn:name="Perform Advanced Analysis Post Trace" xil_pn:value="false" xil_pn:valueState="default"/>
370
+ <property xil_pn:name="Perform Timing-Driven Packing and Placement" xil_pn:value="false" xil_pn:valueState="default"/>
371
+ <property xil_pn:name="Place &amp; Route Effort Level (Overall)" xil_pn:value="High" xil_pn:valueState="default"/>
372
+ <property xil_pn:name="Place And Route Mode" xil_pn:value="Normal Place and Route" xil_pn:valueState="default"/>
373
+ <property xil_pn:name="Placer Effort Level (Overrides Overall Level)" xil_pn:value="None" xil_pn:valueState="default"/>
374
+ <property xil_pn:name="Port to be used" xil_pn:value="Auto - default" xil_pn:valueState="default"/>
375
+ <property xil_pn:name="Post Map Simulation Model Name" xil_pn:value="basys_avr8_map.vhd" xil_pn:valueState="default"/>
376
+ <property xil_pn:name="Post Place &amp; Route Simulation Model Name" xil_pn:value="basys_avr8_timesim.vhd" xil_pn:valueState="default"/>
377
+ <property xil_pn:name="Post Synthesis Simulation Model Name" xil_pn:value="basys_avr8_synthesis.vhd" xil_pn:valueState="default"/>
378
+ <property xil_pn:name="Post Translate Simulation Model Name" xil_pn:value="basys_avr8_translate.vhd" xil_pn:valueState="default"/>
379
+ <property xil_pn:name="Power Reduction Map" xil_pn:value="false" xil_pn:valueState="default"/>
380
+ <property xil_pn:name="Power Reduction Par" xil_pn:value="false" xil_pn:valueState="default"/>
381
+ <property xil_pn:name="Preferred Language" xil_pn:value="VHDL" xil_pn:valueState="non-default"/>
382
+ <property xil_pn:name="Priority Encoder Extraction" xil_pn:value="Yes" xil_pn:valueState="default"/>
383
+ <property xil_pn:name="Process window" xil_pn:value="false" xil_pn:valueState="default"/>
384
+ <property xil_pn:name="Produce Verbose Report" xil_pn:value="false" xil_pn:valueState="default"/>
385
+ <property xil_pn:name="Project Description" xil_pn:value="" xil_pn:valueState="default"/>
386
+ <property xil_pn:name="Property Specification in Project File" xil_pn:value="Store all values" xil_pn:valueState="default"/>
387
+ <property xil_pn:name="RAM Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
388
+ <property xil_pn:name="RAM Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
389
+ <property xil_pn:name="ROM Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
390
+ <property xil_pn:name="ROM Style" xil_pn:value="Auto" xil_pn:valueState="default"/>
391
+ <property xil_pn:name="Read Cores" xil_pn:value="true" xil_pn:valueState="default"/>
392
+ <property xil_pn:name="Regenerate Core" xil_pn:value="Under Current Project Setting" xil_pn:valueState="default"/>
393
+ <property xil_pn:name="Register Balancing" xil_pn:value="No" xil_pn:valueState="default"/>
394
+ <property xil_pn:name="Register Duplication" xil_pn:value="Off" xil_pn:valueState="default"/>
395
+ <property xil_pn:name="Register Duplication Xst" xil_pn:value="true" xil_pn:valueState="default"/>
396
+ <property xil_pn:name="Release Write Enable (Output Events)" xil_pn:value="Default (6)" xil_pn:valueState="default"/>
397
+ <property xil_pn:name="Rename Design Instance in Testbench File to" xil_pn:value="UUT" xil_pn:valueState="default"/>
398
+ <property xil_pn:name="Rename Top Level Architecture To" xil_pn:value="Structure" xil_pn:valueState="default"/>
399
+ <property xil_pn:name="Rename Top Level Entity to" xil_pn:value="basys_avr8" xil_pn:valueState="default"/>
400
+ <property xil_pn:name="Rename Top Level Module To" xil_pn:value="" xil_pn:valueState="default"/>
401
+ <property xil_pn:name="Report Fastest Path(s) in Each Constraint" xil_pn:value="true" xil_pn:valueState="default"/>
402
+ <property xil_pn:name="Report Fastest Path(s) in Each Constraint Post Trace" xil_pn:value="true" xil_pn:valueState="default"/>
403
+ <property xil_pn:name="Report Paths by Endpoint" xil_pn:value="3" xil_pn:valueState="default"/>
404
+ <property xil_pn:name="Report Paths by Endpoint Post Trace" xil_pn:value="3" xil_pn:valueState="default"/>
405
+ <property xil_pn:name="Report Type" xil_pn:value="Verbose Report" xil_pn:valueState="default"/>
406
+ <property xil_pn:name="Report Type Post Trace" xil_pn:value="Verbose Report" xil_pn:valueState="default"/>
407
+ <property xil_pn:name="Report Unconstrained Paths" xil_pn:value="" xil_pn:valueState="default"/>
408
+ <property xil_pn:name="Report Unconstrained Paths Post Trace" xil_pn:value="" xil_pn:valueState="default"/>
409
+ <property xil_pn:name="Reset DCM if SHUTDOWN &amp; AGHIGH performed" xil_pn:value="false" xil_pn:valueState="default"/>
410
+ <property xil_pn:name="Reset On Configuration Pulse Width" xil_pn:value="100" xil_pn:valueState="default"/>
411
+ <property xil_pn:name="Resource Sharing" xil_pn:value="true" xil_pn:valueState="default"/>
412
+ <property xil_pn:name="Retain Hierarchy" xil_pn:value="true" xil_pn:valueState="default"/>
413
+ <property xil_pn:name="Router Effort Level (Overrides Overall Level)" xil_pn:value="None" xil_pn:valueState="default"/>
414
+ <property xil_pn:name="Run Design Rules Checker (DRC)" xil_pn:value="true" xil_pn:valueState="default"/>
415
+ <property xil_pn:name="Run for Specified Time" xil_pn:value="true" xil_pn:valueState="default"/>
416
+ <property xil_pn:name="Run for Specified Time Map" xil_pn:value="true" xil_pn:valueState="default"/>
417
+ <property xil_pn:name="Run for Specified Time Par" xil_pn:value="true" xil_pn:valueState="default"/>
418
+ <property xil_pn:name="Run for Specified Time Translate" xil_pn:value="true" xil_pn:valueState="default"/>
419
+ <property xil_pn:name="Safe Implementation" xil_pn:value="No" xil_pn:valueState="default"/>
420
+ <property xil_pn:name="Security" xil_pn:value="Enable Readback and Reconfiguration" xil_pn:valueState="default"/>
421
+ <property xil_pn:name="Selected Module Instance Name" xil_pn:value="/testbench" xil_pn:valueState="non-default"/>
422
+ <property xil_pn:name="Selected Simulation Root Source Node Behavioral" xil_pn:value="work.testbench" xil_pn:valueState="non-default"/>
423
+ <property xil_pn:name="Selected Simulation Root Source Node Post-Map" xil_pn:value="" xil_pn:valueState="default"/>
424
+ <property xil_pn:name="Selected Simulation Root Source Node Post-Route" xil_pn:value="" xil_pn:valueState="default"/>
425
+ <property xil_pn:name="Selected Simulation Root Source Node Post-Translate" xil_pn:value="" xil_pn:valueState="default"/>
426
+ <property xil_pn:name="Selected Simulation Source Node" xil_pn:value="UUT" xil_pn:valueState="default"/>
427
+ <property xil_pn:name="Shift Register Extraction" xil_pn:value="true" xil_pn:valueState="default"/>
428
+ <property xil_pn:name="Show All Models" xil_pn:value="false" xil_pn:valueState="default"/>
429
+ <property xil_pn:name="Signal window" xil_pn:value="true" xil_pn:valueState="default"/>
430
+ <property xil_pn:name="Simulation Model Target" xil_pn:value="VHDL" xil_pn:valueState="default"/>
431
+ <property xil_pn:name="Simulation Resolution" xil_pn:value="Default (1 ps)" xil_pn:valueState="default"/>
432
+ <property xil_pn:name="Simulation Run Time ISim" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
433
+ <property xil_pn:name="Simulation Run Time Map" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
434
+ <property xil_pn:name="Simulation Run Time Modelsim" xil_pn:value="1000ns" xil_pn:valueState="default"/>
435
+ <property xil_pn:name="Simulation Run Time Par" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
436
+ <property xil_pn:name="Simulation Run Time Translate" xil_pn:value="1000 ns" xil_pn:valueState="default"/>
437
+ <property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)" xil_pn:valueState="default"/>
438
+ <property xil_pn:name="Slice Packing" xil_pn:value="true" xil_pn:valueState="default"/>
439
+ <property xil_pn:name="Slice Utilization Ratio" xil_pn:value="100" xil_pn:valueState="default"/>
440
+ <property xil_pn:name="Source window" xil_pn:value="false" xil_pn:valueState="default"/>
441
+ <property xil_pn:name="Specify 'define Macro Name and Value" xil_pn:value="" xil_pn:valueState="default"/>
442
+ <property xil_pn:name="Specify Top Level Instance Names Behavioral" xil_pn:value="work.testbench" xil_pn:valueState="default"/>
443
+ <property xil_pn:name="Specify Top Level Instance Names Post-Map" xil_pn:value="Default" xil_pn:valueState="default"/>
444
+ <property xil_pn:name="Specify Top Level Instance Names Post-Route" xil_pn:value="Default" xil_pn:valueState="default"/>
445
+ <property xil_pn:name="Specify Top Level Instance Names Post-Translate" xil_pn:value="Default" xil_pn:valueState="default"/>
446
+ <property xil_pn:name="Speed Grade" xil_pn:value="-4" xil_pn:valueState="non-default"/>
447
+ <property xil_pn:name="Starting Placer Cost Table (1-100) Map" xil_pn:value="1" xil_pn:valueState="default"/>
448
+ <property xil_pn:name="Starting Placer Cost Table (1-100) Par" xil_pn:value="1" xil_pn:valueState="default"/>
449
+ <property xil_pn:name="Structure window" xil_pn:value="true" xil_pn:valueState="default"/>
450
+ <property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)" xil_pn:valueState="default"/>
451
+ <property xil_pn:name="Target Simulator" xil_pn:value="Please Specify" xil_pn:valueState="default"/>
452
+ <property xil_pn:name="Timing Mode Map" xil_pn:value="Non Timing Driven" xil_pn:valueState="default"/>
453
+ <property xil_pn:name="Timing Mode Par" xil_pn:value="Performance Evaluation" xil_pn:valueState="default"/>
454
+ <property xil_pn:name="Top-Level Module Name in Output Netlist" xil_pn:value="" xil_pn:valueState="default"/>
455
+ <property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL" xil_pn:valueState="default"/>
456
+ <property xil_pn:name="Trim Unconnected Signals" xil_pn:value="true" xil_pn:valueState="default"/>
457
+ <property xil_pn:name="Tristate On Configuration Pulse Width" xil_pn:value="0" xil_pn:valueState="default"/>
458
+ <property xil_pn:name="Unused IOB Pins" xil_pn:value="Pull Down" xil_pn:valueState="default"/>
459
+ <property xil_pn:name="Use 64-bit PlanAhead on 64-bit Systems" xil_pn:value="true" xil_pn:valueState="default"/>
460
+ <property xil_pn:name="Use Automatic Do File" xil_pn:value="true" xil_pn:valueState="default"/>
461
+ <property xil_pn:name="Use Clock Enable" xil_pn:value="Yes" xil_pn:valueState="default"/>
462
+ <property xil_pn:name="Use Configuration Name" xil_pn:value="false" xil_pn:valueState="default"/>
463
+ <property xil_pn:name="Use Custom Do File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/>
464
+ <property xil_pn:name="Use Custom Do File Map" xil_pn:value="false" xil_pn:valueState="default"/>
465
+ <property xil_pn:name="Use Custom Do File Par" xil_pn:value="false" xil_pn:valueState="default"/>
466
+ <property xil_pn:name="Use Custom Do File Translate" xil_pn:value="false" xil_pn:valueState="default"/>
467
+ <property xil_pn:name="Use Custom Project File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/>
468
+ <property xil_pn:name="Use Custom Project File Post-Map" xil_pn:value="false" xil_pn:valueState="default"/>
469
+ <property xil_pn:name="Use Custom Project File Post-Route" xil_pn:value="false" xil_pn:valueState="default"/>
470
+ <property xil_pn:name="Use Custom Project File Post-Translate" xil_pn:value="false" xil_pn:valueState="default"/>
471
+ <property xil_pn:name="Use Custom Simulation Command File Behavioral" xil_pn:value="false" xil_pn:valueState="default"/>
472
+ <property xil_pn:name="Use Custom Simulation Command File Map" xil_pn:value="false" xil_pn:valueState="default"/>
473
+ <property xil_pn:name="Use Custom Simulation Command File Par" xil_pn:value="false" xil_pn:valueState="default"/>
474
+ <property xil_pn:name="Use Custom Simulation Command File Translate" xil_pn:value="false" xil_pn:valueState="default"/>
475
+ <property xil_pn:name="Use Custom Waveform Configuration File Behav" xil_pn:value="false" xil_pn:valueState="default"/>
476
+ <property xil_pn:name="Use Custom Waveform Configuration File Map" xil_pn:value="false" xil_pn:valueState="default"/>
477
+ <property xil_pn:name="Use Custom Waveform Configuration File Par" xil_pn:value="false" xil_pn:valueState="default"/>
478
+ <property xil_pn:name="Use Custom Waveform Configuration File Translate" xil_pn:value="false" xil_pn:valueState="default"/>
479
+ <property xil_pn:name="Use Explicit Declarations Only" xil_pn:value="true" xil_pn:valueState="default"/>
480
+ <property xil_pn:name="Use LOC Constraints" xil_pn:value="true" xil_pn:valueState="default"/>
481
+ <property xil_pn:name="Use RLOC Constraints" xil_pn:value="Yes" xil_pn:valueState="default"/>
482
+ <property xil_pn:name="Use Smart Guide" xil_pn:value="false" xil_pn:valueState="default"/>
483
+ <property xil_pn:name="Use Synchronous Reset" xil_pn:value="Yes" xil_pn:valueState="default"/>
484
+ <property xil_pn:name="Use Synchronous Set" xil_pn:value="Yes" xil_pn:valueState="default"/>
485
+ <property xil_pn:name="Use Synthesis Constraints File" xil_pn:value="true" xil_pn:valueState="default"/>
486
+ <property xil_pn:name="User Browsed Strategy Files" xil_pn:value="" xil_pn:valueState="default"/>
487
+ <property xil_pn:name="UserID Code (8 Digit Hexadecimal)" xil_pn:value="0xFFFFFFFF" xil_pn:valueState="default"/>
488
+ <property xil_pn:name="VHDL Source Analysis Standard" xil_pn:value="VHDL-93" xil_pn:valueState="default"/>
489
+ <property xil_pn:name="VHDL Syntax" xil_pn:value="93" xil_pn:valueState="default"/>
490
+ <property xil_pn:name="Value Range Check" xil_pn:value="false" xil_pn:valueState="default"/>
491
+ <property xil_pn:name="Variables window" xil_pn:value="false" xil_pn:valueState="default"/>
492
+ <property xil_pn:name="Verilog 2001 Xst" xil_pn:value="true" xil_pn:valueState="default"/>
493
+ <property xil_pn:name="Verilog Macros" xil_pn:value="" xil_pn:valueState="default"/>
494
+ <property xil_pn:name="Wait for DLL Lock (Output Events)" xil_pn:value="Default (NoWait)" xil_pn:valueState="default"/>
495
+ <property xil_pn:name="Wave window" xil_pn:value="true" xil_pn:valueState="default"/>
496
+ <property xil_pn:name="Working Directory" xil_pn:value="." xil_pn:valueState="non-default"/>
497
+ <property xil_pn:name="Write Timing Constraints" xil_pn:value="false" xil_pn:valueState="default"/>
498
+ <property xil_pn:name="XOR Collapsing" xil_pn:value="true" xil_pn:valueState="default"/>
499
+ <!-- -->
500
+ <!-- The following properties are for internal use only. These should not be modified.-->
501
+ <!-- -->
502
+ <property xil_pn:name="PROP_BehavioralSimTop" xil_pn:value="Architecture|testbench|behavior" xil_pn:valueState="non-default"/>
503
+ <property xil_pn:name="PROP_DesignName" xil_pn:value="AVR_Core" xil_pn:valueState="non-default"/>
504
+ <property xil_pn:name="PROP_DevFamilyPMName" xil_pn:value="spartan3e" xil_pn:valueState="default"/>
505
+ <property xil_pn:name="PROP_FPGAConfiguration" xil_pn:value="FPGAConfiguration" xil_pn:valueState="default"/>
506
+ <property xil_pn:name="PROP_PostMapSimTop" xil_pn:value="" xil_pn:valueState="default"/>
507
+ <property xil_pn:name="PROP_PostParSimTop" xil_pn:value="" xil_pn:valueState="default"/>
508
+ <property xil_pn:name="PROP_PostSynthSimTop" xil_pn:value="" xil_pn:valueState="default"/>
509
+ <property xil_pn:name="PROP_PostXlateSimTop" xil_pn:value="" xil_pn:valueState="default"/>
510
+ <property xil_pn:name="PROP_PreSynthesis" xil_pn:value="PreSynthesis" xil_pn:valueState="default"/>
511
+ <property xil_pn:name="PROP_intProjectCreationTimestamp" xil_pn:value="2011-03-08T11:55:43" xil_pn:valueState="non-default"/>
512
+ <property xil_pn:name="PROP_intWbtProjectID" xil_pn:value="B37165401EB343588AF3A71098446C50" xil_pn:valueState="non-default"/>
513
+ <property xil_pn:name="PROP_intWorkingDirLocWRTProjDir" xil_pn:value="Same" xil_pn:valueState="non-default"/>
514
+ <property xil_pn:name="PROP_intWorkingDirUsed" xil_pn:value="No" xil_pn:valueState="non-default"/>
515
+ </properties>
516
+
517
+ <bindings/>
518
+
519
+ <libraries/>
520
+
521
+ <autoManagedFiles>
522
+ <!-- The following files are identified by `include statements in verilog -->
523
+ <!-- source files and are automatically managed by Project Navigator. -->
524
+ <!-- -->
525
+ <!-- Do not hand-edit this section, as it will be overwritten when the -->
526
+ <!-- project is analyzed based on files automatically identified as -->
527
+ <!-- include files. -->
528
+ </autoManagedFiles>
529
+
530
+ </project>
@@ -0,0 +1,60 @@
1
+
2
+ require 'ise'
3
+
4
+ describe ISE::Project do
5
+
6
+ #Operate on the same file provided.
7
+ subject { ISE::Project.load(File.expand_path('../project.xise', __FILE__)) }
8
+
9
+
10
+ describe ".get_property" do
11
+
12
+ it "should return the value of the provided project property " do
13
+ subject.get_property('HDL Instantiation Template Target Language').should == 'VHDL'
14
+ subject.get_property('ISim UUT Instance Name').should == 'UUT'
15
+ end
16
+
17
+ end
18
+
19
+ #
20
+ # Faculty for finding the top-level file.
21
+ #
22
+ describe ".top_level_file" do
23
+
24
+ let(:relative_path) { './toplevel.vhd' }
25
+ let(:full_path) { File.expand_path(relative_path, "#{__FILE__}/..") }
26
+
27
+ context "when absolute_path is false" do
28
+ it "should return a relative path to top-level file, as it appears in the project file" do
29
+ subject.top_level_file(false).should == relative_path
30
+ end
31
+ end
32
+
33
+ context "when absolute_path true, and the base path is known" do
34
+ it "should return the absolute path to the file" do
35
+ subject.top_level_file.should == full_path
36
+ end
37
+ end
38
+
39
+ end
40
+
41
+ #
42
+ # Faculty for finding the most recent bit-file generated by a project.
43
+ #
44
+ describe ".bit_file" do
45
+
46
+ let(:full_path) { File.expand_path('toplevel.bit', "#{__FILE__}/..") }
47
+
48
+ it "should return the absolute path to the top-level bit file, if it exists" do
49
+ subject.bit_file.should == full_path
50
+ end
51
+
52
+ it "should return nil if the given file does not exist" do
53
+ subject.set_property('Output File Name', 'blah')
54
+ subject.bit_file.should be_nil
55
+ end
56
+
57
+ end
58
+
59
+
60
+ end
File without changes
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby-ise
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kyle J. Temkin
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: inifile
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: nokogiri
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: highline
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: smart_colored
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: Simple gem which extracts meta-data from Xilinx ISE files. Intended to
79
+ simplify using Rake with ruby-adept, and with ISE/XST.
80
+ email:
81
+ - ktemkin@binghamton.edu
82
+ executables:
83
+ - xoptimize
84
+ extensions: []
85
+ extra_rdoc_files: []
86
+ files:
87
+ - .gitignore
88
+ - Gemfile
89
+ - LICENSE.txt
90
+ - README.md
91
+ - Rakefile
92
+ - bin/xoptimize
93
+ - lib/ise.rb
94
+ - lib/ise/preference_set.rb
95
+ - lib/ise/project.rb
96
+ - lib/ise/project_navigator.rb
97
+ - lib/ise/version.rb
98
+ - ruby-ise.gemspec
99
+ - spec/ise/project.xise
100
+ - spec/ise/project_spec.rb
101
+ - spec/ise/toplevel.bit
102
+ homepage: http://www.github.com/ktemkin/ruby-ise
103
+ licenses: []
104
+ post_install_message:
105
+ rdoc_options: []
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 1.8.23
123
+ signing_key:
124
+ specification_version: 3
125
+ summary: Simple gem which extracts metadata from Xilinx ISE files.
126
+ test_files:
127
+ - spec/ise/project.xise
128
+ - spec/ise/project_spec.rb
129
+ - spec/ise/toplevel.bit