origen_app_generators 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|