origen_app_generators 0.2.3 → 0.3.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.
- checksums.yaml +4 -4
- data/config/version.rb +2 -2
- data/lib/origen_app_generators/plugin.rb +2 -2
- data/lib/origen_app_generators/test_engineering/test_block.rb +104 -10
- data/lib/origen_app_generators.rb +4 -2
- data/lib/tasks/app_generators.rake +0 -1
- data/lib/tasks/boot.rb +1 -5
- data/templates/app_generators/application/Gemfile +5 -1
- data/templates/app_generators/plugin/Gemfile +11 -5
- data/templates/app_generators/plugin/gemspec.rb +0 -3
- data/templates/app_generators/test_engineering/test_block/environment/j750.rb +2 -0
- data/templates/app_generators/test_engineering/test_block/environment/ultraflex.rb +2 -0
- data/templates/app_generators/test_engineering/test_block/environment/v93k.rb +2 -0
- data/templates/app_generators/test_engineering/test_block/lib/controller.rb +12 -0
- data/templates/app_generators/test_engineering/test_block/lib/interface.rb +1 -2
- data/templates/app_generators/test_engineering/test_block/lib/model.rb +18 -0
- data/templates/app_generators/test_engineering/test_block/lib/test/dut.rb +27 -0
- data/templates/app_generators/test_engineering/test_block/lib/test/dut_controller.rb +32 -0
- data/templates/app_generators/test_engineering/test_block/pattern/example.rb +5 -0
- data/templates/app_generators/test_engineering/test_block/program/prb1.rb +4 -2
- data/templates/app_generators/test_engineering/test_block/target/default.rb +2 -0
- metadata +12 -6
- data/templates/app_generators/test_engineering/test_block/target/j750.rb +0 -10
- data/templates/app_generators/test_engineering/test_block/target/ultraflex.rb +0 -10
- data/templates/app_generators/test_engineering/test_block/target/v93k.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ff04d0825d25acb5a3de404f6803423bfa64b09
|
4
|
+
data.tar.gz: d2722bb1659bcc25b9e1f8142f4a5bd6808d84fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 08a461b46d822b9d7e914b0a0b646ede13f964b130f2540d0cea7235f1be1627341cdab2f970881541842cf2a65fb85e129f78b918c6260a88e7639ff66a9bc3
|
7
|
+
data.tar.gz: f70719cb2766fe6bd0328b38bb8f6eceb990b395629425f5d2f202109cdce910195ba6d96ebad13aae786dd9b27281a7748c8210517e33d65daf7e6e7552bd2e
|
data/config/version.rb
CHANGED
@@ -4,7 +4,7 @@ module OrigenAppGenerators
|
|
4
4
|
def get_common_user_input
|
5
5
|
get_name_and_namespace
|
6
6
|
get_summary
|
7
|
-
get_audience
|
7
|
+
get_audience unless @audience
|
8
8
|
end
|
9
9
|
|
10
10
|
protected
|
@@ -43,7 +43,7 @@ module OrigenAppGenerators
|
|
43
43
|
puts
|
44
44
|
puts 'IS THIS PLUGIN GOING TO BE RELEASED TO AN EXTERNAL AUDIENCE?'
|
45
45
|
puts
|
46
|
-
puts 'By answering yes
|
46
|
+
puts 'By answering yes, this plugin will be pushed to rubygems.org when it is released and it will be available outside of your company.'
|
47
47
|
puts
|
48
48
|
confirm_external = get_text(confirm: :return_boolean, default: 'no')
|
49
49
|
@audience = :external if confirm_external
|
@@ -2,25 +2,95 @@ module OrigenAppGenerators
|
|
2
2
|
module TestEngineering
|
3
3
|
# Generates a generic plugin shell
|
4
4
|
class TestBlock < Plugin
|
5
|
-
desc '
|
5
|
+
desc 'An IP test module intended to plugin into a top-level (SoC) application'
|
6
|
+
|
7
|
+
def initialize(*args)
|
8
|
+
@audience = :internal
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_user_input
|
13
|
+
# The methods to get the common user input that applies to all applications will
|
14
|
+
# get called at the start automatically, you have a chance here to ask any additional
|
15
|
+
# questions that are specific to the type of application being generated
|
16
|
+
get_ip_names
|
17
|
+
get_sub_block_name
|
18
|
+
end
|
6
19
|
|
7
20
|
def generate_files
|
8
21
|
@runtime_dependencies = [
|
9
|
-
['origen_testers', '>= 0.
|
22
|
+
['origen_testers', '>= 0.6.1']
|
10
23
|
]
|
11
24
|
build_filelist
|
12
25
|
end
|
13
26
|
|
14
|
-
def
|
27
|
+
def final_modifications
|
15
28
|
prepend_to_file "lib/#{@name}.rb", "require 'origen_testers'\n"
|
29
|
+
# Add require line
|
30
|
+
doc_helpers = /gem 'origen_doc_helpers'/
|
31
|
+
inject_into_file 'Gemfile', "\ngem 'origen_jtag'\ngem 'origen_arm_debug'\n",
|
32
|
+
after: doc_helpers
|
16
33
|
end
|
17
34
|
|
18
35
|
def conclude
|
19
|
-
puts "New test
|
36
|
+
puts "New test module created at: #{destination_root}"
|
37
|
+
puts
|
38
|
+
puts 'Generate an example pattern by running "origen g example"'
|
20
39
|
end
|
21
40
|
|
22
41
|
protected
|
23
42
|
|
43
|
+
def get_ip_names
|
44
|
+
puts
|
45
|
+
puts 'NAME THE IP BLOCKS THAT THIS MODULE WILL SUPPORT'
|
46
|
+
puts
|
47
|
+
puts "You don't need to name them all up front, but you must declare at least one."
|
48
|
+
puts 'We recommend that you use the official name(s) for the IP(s) as used by your design team.'
|
49
|
+
puts 'Separate multiple names with a comma: FLASH_C40_512K, FLASH_C40_2M'
|
50
|
+
puts
|
51
|
+
|
52
|
+
valid = false
|
53
|
+
until valid
|
54
|
+
@ip_names = get_text(single: true).strip.split(',').map do |name|
|
55
|
+
n = name.strip.symbolize.to_s.upcase
|
56
|
+
unless n.empty?
|
57
|
+
n
|
58
|
+
end
|
59
|
+
end.compact
|
60
|
+
unless @ip_names.empty?
|
61
|
+
# Should we check anything here?
|
62
|
+
valid = true
|
63
|
+
end
|
64
|
+
end
|
65
|
+
@ip_names
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_sub_block_name
|
69
|
+
puts
|
70
|
+
puts "WHAT SHOULD BE THE PATH TO #{@ip_names.first} WHEN IT IS INSTANTIATED IN AN SOC?"
|
71
|
+
puts
|
72
|
+
puts 'Your IPs will be instantiated by a top-level (SoC) model, at which point it should be given a generic nickname'
|
73
|
+
puts 'that will provide an easy way to access it.'
|
74
|
+
puts 'For example, if you had an IP model for an NVM block, the IP name might be "FLASH_C40_512K_128K", but when it is'
|
75
|
+
puts 'instantiated it would be given the name "flash", allowing it be easily accessed as "dut.flash".'
|
76
|
+
puts
|
77
|
+
|
78
|
+
valid = false
|
79
|
+
until valid
|
80
|
+
@sub_block_name = get_text(single: true).strip.split(',').map do |name|
|
81
|
+
n = name.strip.symbolize.to_s.downcase
|
82
|
+
unless n.empty?
|
83
|
+
n
|
84
|
+
end
|
85
|
+
end.compact
|
86
|
+
unless @sub_block_name.empty?
|
87
|
+
# Should we check anything here?
|
88
|
+
valid = true
|
89
|
+
end
|
90
|
+
end
|
91
|
+
@sub_block_name = @sub_block_name.first
|
92
|
+
end
|
93
|
+
|
24
94
|
# Defines the filelist for the generator, the default list is inherited from the
|
25
95
|
# parent class (Plugin).
|
26
96
|
# The filelist can contain references to generate files, directories or symlinks in the
|
@@ -45,9 +115,10 @@ module OrigenAppGenerators
|
|
45
115
|
list.delete(:target_production)
|
46
116
|
# Example of how to add a file, in this case the file will be compiled and copied to
|
47
117
|
# the same location in the new app
|
48
|
-
list[:
|
49
|
-
list[:
|
50
|
-
list[:
|
118
|
+
list[:target_default] = { source: 'target/default.rb' }
|
119
|
+
list[:environment_v93k] = { source: 'environment/v93k.rb' }
|
120
|
+
list[:environment_j750] = { source: 'environment/j750.rb' }
|
121
|
+
list[:environment_ultraflex] = { source: 'environment/ultraflex.rb' }
|
51
122
|
list[:program_prb1] = { source: 'program/prb1.rb' }
|
52
123
|
list[:lib_interface] = { source: 'lib/interface.rb', dest: "lib/#{@name}/interface.rb" }
|
53
124
|
# Alternatively specifying a different destination, typically you would do this when
|
@@ -56,9 +127,32 @@ module OrigenAppGenerators
|
|
56
127
|
# Example of how to create a directory
|
57
128
|
list[:pattern_dir] = { dest: 'pattern', type: :directory }
|
58
129
|
# Example of how to create a symlink
|
59
|
-
list[:
|
60
|
-
|
61
|
-
|
130
|
+
list[:environment_default] = { source: 'ultraflex.rb', # Relative to the file being linked to
|
131
|
+
dest: 'environment/default.rb', # Relative to destination_root
|
132
|
+
type: :symlink }
|
133
|
+
list[:test_dut] = { source: 'lib/test/dut.rb',
|
134
|
+
dest: "lib/#{@name}/test/dut.rb",
|
135
|
+
options: { class_name: @ip_names.first, sub_block_name: @sub_block_name }
|
136
|
+
}
|
137
|
+
list[:test_dutc] = { source: 'lib/test/dut_controller.rb',
|
138
|
+
dest: "lib/#{@name}/test/dut_controller.rb"
|
139
|
+
}
|
140
|
+
|
141
|
+
@ip_names.each_with_index do |name, i|
|
142
|
+
list["ip_#{i}"] = { source: 'lib/model.rb',
|
143
|
+
dest: "lib/#{@name}/#{name.underscore}.rb",
|
144
|
+
options: { name: name }
|
145
|
+
}
|
146
|
+
|
147
|
+
list["ip_controller_#{i}"] = { source: 'lib/controller.rb',
|
148
|
+
dest: "lib/#{@name}/#{name.underscore}_controller.rb",
|
149
|
+
options: { name: name }
|
150
|
+
}
|
151
|
+
end
|
152
|
+
|
153
|
+
list[:pattern_example] = { source: 'pattern/example.rb',
|
154
|
+
options: { sub_block_name: @sub_block_name }
|
155
|
+
}
|
62
156
|
# Remember to return the final list
|
63
157
|
list
|
64
158
|
end
|
@@ -18,14 +18,16 @@ module OrigenAppGenerators
|
|
18
18
|
# Empty plugin
|
19
19
|
['0', '1', :default, :default, 'A test block', 'yes', []],
|
20
20
|
# Stand alone test engineering app
|
21
|
-
['1', '0', :default, :default, 'Falcon, Eagle', 'Falcon[ram, atd(2), comm[ram(2), osc](3)], Eagle[ram(2), atd(4)]', ['origen g example']]
|
21
|
+
['1', '0', :default, :default, 'Falcon, Eagle', 'Falcon[ram, atd(2), comm[ram(2), osc](3)], Eagle[ram(2), atd(4)]', ['origen g example']],
|
22
|
+
# Test module
|
23
|
+
['1', '1', :default, :default, 'Test module for all flash IPs', 'FLASH_512K, FLASH_1024K', 'flash', ['origen g example']]
|
22
24
|
]
|
23
25
|
|
24
26
|
# If adding any new generators manually always add them at the top, but
|
25
27
|
# generally speaking don't, use 'rake new' to create a new generator instead
|
26
28
|
AVAILABLE = {
|
27
29
|
'Test Engineering' => [
|
28
|
-
|
30
|
+
OrigenAppGenerators::TestEngineering::TestBlock,
|
29
31
|
OrigenAppGenerators::TestEngineering::StandAloneApplication
|
30
32
|
]
|
31
33
|
}
|
@@ -70,7 +70,6 @@ def _execute_generator(klass)
|
|
70
70
|
# With the generator identified this now launches it in a standalone shell
|
71
71
|
# This is to emulate how it will run in real life and cause it to fail if there are
|
72
72
|
# any dependencies on running within an Origen app environment
|
73
|
-
|
74
73
|
boot = "#{File.expand_path(File.dirname(__FILE__))}/boot.rb"
|
75
74
|
origen_lib = "#{Origen.top}/lib"
|
76
75
|
origen_lib = '/proj/mem_c40tfs_testeng/r49409/origen/lib'
|
data/lib/tasks/boot.rb
CHANGED
@@ -25,11 +25,7 @@ begin
|
|
25
25
|
Dir.chdir tmp_dir do
|
26
26
|
# For some reason this is not being defined by required origen anymore
|
27
27
|
User = Origen::Users::User unless defined? User
|
28
|
-
|
29
|
-
gem 'byebug', '~>3.5'
|
30
|
-
else
|
31
|
-
gem 'debugger', '~>1.6'
|
32
|
-
end
|
28
|
+
gem 'byebug'
|
33
29
|
require 'origen_app_generators'
|
34
30
|
if ARGV[1] == 'invoke'
|
35
31
|
OrigenAppGenerators.invoke('tmp')
|
@@ -7,4 +7,8 @@ gem 'origen', '>= <%= @latest_origen_version %>'
|
|
7
7
|
|
8
8
|
gem 'origen_doc_helpers'
|
9
9
|
|
10
|
-
gem 'byebug'
|
10
|
+
gem 'byebug'
|
11
|
+
|
12
|
+
# Uncomment these if you want to use a visual debugger (e.g. Visual Studio Code) to debug your app
|
13
|
+
#gem 'ruby-debug-ide'
|
14
|
+
#gem 'debase'
|
@@ -3,13 +3,19 @@ source 'https://rubygems.org'
|
|
3
3
|
source '<%= Origen.site_config.gem_server %>'
|
4
4
|
<% end -%>
|
5
5
|
|
6
|
-
#
|
7
|
-
|
8
|
-
|
9
|
-
# Only these gems should be added here
|
6
|
+
# Only development dependencies (things your only plugin needs when running in its own workspace) should
|
7
|
+
# be listed here in the Gemfile
|
10
8
|
<% if @audience == :external -%>
|
11
9
|
# This gem provides integration with https://coveralls.io/ to monitor
|
12
10
|
# your application's test coverage
|
13
11
|
gem 'coveralls', require: false
|
14
12
|
<% end -%>
|
15
|
-
gem 'byebug'
|
13
|
+
gem 'byebug'
|
14
|
+
gem 'origen_doc_helpers'
|
15
|
+
# Uncomment these if you want to use a visual debugger (e.g. Visual Studio Code) to debug your app
|
16
|
+
#gem 'ruby-debug-ide'
|
17
|
+
#gem 'debase'
|
18
|
+
|
19
|
+
# Specify your gem's runtime dependencies in <%= @name %>.gemspec
|
20
|
+
# THIS LINE SHOULD BE LEFT AT THE END
|
21
|
+
gemspec
|
@@ -34,7 +34,4 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_runtime_dependency <%= dep.map{ |d| "\"#{d}\"" }.join(', ') %>
|
35
35
|
<% end -%>
|
36
36
|
<% end -%>
|
37
|
-
|
38
|
-
# Add any gems that your plugin needs for its development environment only
|
39
|
-
spec.add_development_dependency "origen_doc_helpers"
|
40
37
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module <%= @namespace %>
|
2
|
+
class <%= @options[:name] %>Controller
|
3
|
+
include Origen::Controller
|
4
|
+
|
5
|
+
def do_something
|
6
|
+
# The config register is defined in the corresponding model
|
7
|
+
config.mode.write!(0x14)
|
8
|
+
tester.wait(time_in_us: 100)
|
9
|
+
config.secure.read!(0)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module <%= @namespace %>
|
2
|
+
class <%= @options[:name] %>
|
3
|
+
include Origen::Model
|
4
|
+
|
5
|
+
def initialize(options = {})
|
6
|
+
instantiate_registers(options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def instantiate_registers(options)
|
10
|
+
# Define your IP's registers here
|
11
|
+
reg :config, 0x0, size: 32 do |reg|
|
12
|
+
reg.bits 15..8, :mode
|
13
|
+
reg.bit 1, :ext_clk, reset: 1
|
14
|
+
reg.bit 0, :secure, access: :ro
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module <%= @namespace %>
|
2
|
+
module Test
|
3
|
+
# This is a dummy DUT class that should be used to test that your test module can
|
4
|
+
# integrate into a top-level app
|
5
|
+
class DUT
|
6
|
+
include Origen::TopLevel
|
7
|
+
|
8
|
+
def initialize(options = {})
|
9
|
+
instantiate_pins(options)
|
10
|
+
instantiate_sub_blocks(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def instantiate_pins(options)
|
14
|
+
add_pin :tclk
|
15
|
+
add_pin :tdi
|
16
|
+
add_pin :tdo
|
17
|
+
add_pin :tms
|
18
|
+
add_pin :resetb
|
19
|
+
end
|
20
|
+
|
21
|
+
def instantiate_sub_blocks(options)
|
22
|
+
sub_block :arm_debug, class_name: 'OrigenARMDebug::Driver', aps: { mem_ap: 0x0, mdmap: 0x0100_0000 }
|
23
|
+
sub_block :<%= options[:sub_block_name] %>, class_name: '<%= @namespace %>::<%= options[:class_name] %>', base_address: 0x1000_0000
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module <%= @namespace %>
|
2
|
+
module Test
|
3
|
+
# This is a dummy DUT controller that should be used to test that your test module can
|
4
|
+
# integrate into a top-level app
|
5
|
+
class DUTController
|
6
|
+
include Origen::TopLevel
|
7
|
+
include OrigenJTAG
|
8
|
+
include OrigenARMDebug
|
9
|
+
|
10
|
+
def startup(options = {})
|
11
|
+
tester.set_timeset('func_25', 40)
|
12
|
+
ss 'Startup the SoC'
|
13
|
+
pin(:resetb).drive!(0)
|
14
|
+
100.cycles
|
15
|
+
pin(:resetb).dont_care
|
16
|
+
end
|
17
|
+
|
18
|
+
def shutdown(options = {})
|
19
|
+
ss 'Shutdown the SoC'
|
20
|
+
pin(:resetb).drive!(0)
|
21
|
+
end
|
22
|
+
|
23
|
+
def write_register(reg, options = {})
|
24
|
+
arm_debug.write_register(reg, options)
|
25
|
+
end
|
26
|
+
|
27
|
+
def read_register(reg, options = {})
|
28
|
+
arm_debug.read_register(reg, options)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -1,9 +1,11 @@
|
|
1
1
|
Flow.create interface: '<%= @namespace %>::Interface' do
|
2
2
|
|
3
3
|
if_job :p1 do
|
4
|
-
|
4
|
+
test :test1, bin: 10, id: :t1
|
5
5
|
|
6
|
-
|
6
|
+
test :test2, bin: 15, if_failed: :t1
|
7
7
|
end
|
8
8
|
|
9
|
+
pass 1, softbin: 55
|
10
|
+
|
9
11
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: origen_app_generators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen McGinty
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -93,11 +93,17 @@ files:
|
|
93
93
|
- templates/app_generators/test_engineering/stand_alone_application/lib/top_level_controller.rb
|
94
94
|
- templates/app_generators/test_engineering/stand_alone_application/pattern/example.rb
|
95
95
|
- templates/app_generators/test_engineering/stand_alone_application/target/top_level.rb
|
96
|
+
- templates/app_generators/test_engineering/test_block/environment/j750.rb
|
97
|
+
- templates/app_generators/test_engineering/test_block/environment/ultraflex.rb
|
98
|
+
- templates/app_generators/test_engineering/test_block/environment/v93k.rb
|
99
|
+
- templates/app_generators/test_engineering/test_block/lib/controller.rb
|
96
100
|
- templates/app_generators/test_engineering/test_block/lib/interface.rb
|
101
|
+
- templates/app_generators/test_engineering/test_block/lib/model.rb
|
102
|
+
- templates/app_generators/test_engineering/test_block/lib/test/dut.rb
|
103
|
+
- templates/app_generators/test_engineering/test_block/lib/test/dut_controller.rb
|
104
|
+
- templates/app_generators/test_engineering/test_block/pattern/example.rb
|
97
105
|
- templates/app_generators/test_engineering/test_block/program/prb1.rb
|
98
|
-
- templates/app_generators/test_engineering/test_block/target/
|
99
|
-
- templates/app_generators/test_engineering/test_block/target/ultraflex.rb
|
100
|
-
- templates/app_generators/test_engineering/test_block/target/v93k.rb
|
106
|
+
- templates/app_generators/test_engineering/test_block/target/default.rb
|
101
107
|
homepage: http://origen-sdk.org/origen_app_generators
|
102
108
|
licenses:
|
103
109
|
- LGPL-3
|
@@ -118,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
124
|
version: 1.8.11
|
119
125
|
requirements: []
|
120
126
|
rubyforge_project:
|
121
|
-
rubygems_version: 2.
|
127
|
+
rubygems_version: 2.4.5
|
122
128
|
signing_key:
|
123
129
|
specification_version: 4
|
124
130
|
summary: Origen application generators
|
@@ -1,10 +0,0 @@
|
|
1
|
-
# The target file is run before *every* Origen operation and is used to instantiate
|
2
|
-
# the runtime environment - usually this means instantiating a top-level SoC or
|
3
|
-
# IP model.
|
4
|
-
#
|
5
|
-
# Naming is arbitrary but instances names should be prefixed with $ which indicates a
|
6
|
-
# global variable in Ruby, and this is required in order for the objects instantiated
|
7
|
-
# here to be visible throughout your application code.
|
8
|
-
|
9
|
-
$dut = <%= @namespace %>::TopLevel.new # Instantiate a DUT instance
|
10
|
-
$tester = Testers::J750.new
|
@@ -1,10 +0,0 @@
|
|
1
|
-
# The target file is run before *every* Origen operation and is used to instantiate
|
2
|
-
# the runtime environment - usually this means instantiating a top-level SoC or
|
3
|
-
# IP model.
|
4
|
-
#
|
5
|
-
# Naming is arbitrary but instances names should be prefixed with $ which indicates a
|
6
|
-
# global variable in Ruby, and this is required in order for the objects instantiated
|
7
|
-
# here to be visible throughout your application code.
|
8
|
-
|
9
|
-
$dut = <%= @namespace %>::TopLevel.new # Instantiate a DUT instance
|
10
|
-
$tester = Testers::UltraFLEX.new
|
@@ -1,10 +0,0 @@
|
|
1
|
-
# The target file is run before *every* Origen operation and is used to instantiate
|
2
|
-
# the runtime environment - usually this means instantiating a top-level SoC or
|
3
|
-
# IP model.
|
4
|
-
#
|
5
|
-
# Naming is arbitrary but instances names should be prefixed with $ which indicates a
|
6
|
-
# global variable in Ruby, and this is required in order for the objects instantiated
|
7
|
-
# here to be visible throughout your application code.
|
8
|
-
|
9
|
-
$dut = <%= @namespace %>::TopLevel.new # Instantiate a DUT instance
|
10
|
-
$tester = Testers::V93K.new
|