ruby-ise 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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