origen_core_support 0.1.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 +7 -0
- data/config/application.rb +55 -0
- data/config/commands.rb +39 -0
- data/config/environment.rb +19 -0
- data/config/shared_commands.rb +32 -0
- data/config/users.rb +22 -0
- data/config/version.rb +8 -0
- data/lib/c99/block.rb +19 -0
- data/lib/c99/nvm.rb +37 -0
- data/lib/c99/soc.rb +80 -0
- data/lib/commands/test_command.rb +18 -0
- data/lib/origen_core_support.rb +2 -0
- data/pattern/shared/j750/j750_halt.rb +159 -0
- metadata +70 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 450f254bcce1cbb983a3e312dfcbe9bf8d987cbc
|
4
|
+
data.tar.gz: dd5d7cd86dbde165b06ad48550e47c23d4662947
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6a9104bff352b49212e88736de8b1bde67872ab75d17d6f63fc6566ec4a6a7d148eab62d54e59cd99a41bd938575c5f13d0c49b1f8c4f4da8464058bf27671f9
|
7
|
+
data.tar.gz: 7c04b014230c5e038d50d1180cda80975cf14e8a3c7bf8d8fa38a13237a5f19e5ef10fc78224fc78bf76e370d7f60a4a0e2914d07de101509628f4b7eb2739cc
|
@@ -0,0 +1,55 @@
|
|
1
|
+
class OrigenCoreSupportApplication < Origen::Application
|
2
|
+
config.semantically_version = true
|
3
|
+
|
4
|
+
# This information is used in headers and email templates, set it specific
|
5
|
+
# to your application
|
6
|
+
config.name = "Origen Core Support"
|
7
|
+
config.initials = "OrigenCoreSupport"
|
8
|
+
config.rc_url = "ssh://git@github.com:Origen-SDK/origen_core_support.git"
|
9
|
+
config.shared = {
|
10
|
+
:patterns => "pattern/shared",
|
11
|
+
:command_launcher => "config/shared_commands.rb",
|
12
|
+
#:templates => "templates",
|
13
|
+
#:programs => "program"
|
14
|
+
}
|
15
|
+
|
16
|
+
# Versioning is based on a timestamp by default, if you would rather use semantic
|
17
|
+
# versioning, i.e. v1.0.0 format, then set this to true.
|
18
|
+
# In parallel go and edit config/version.rb to enable the semantic version code.
|
19
|
+
#config.semantically_version = true
|
20
|
+
|
21
|
+
# You can map moo numbers to targets here, this allows targets to be selected via
|
22
|
+
# origen t <moo>
|
23
|
+
#config.production_targets = {
|
24
|
+
# "1m79x" => "pioneer_1_production",
|
25
|
+
#}
|
26
|
+
|
27
|
+
# Specify a specific version of origen that must be used with this application, origen
|
28
|
+
# will then enforce that every user's origen version is correct at runtime
|
29
|
+
#config.required_origen_version = "v2.0.0"
|
30
|
+
|
31
|
+
# An example of how to set application specific LSF parameters
|
32
|
+
#config.lsf.project = "msg.te"
|
33
|
+
|
34
|
+
# An example of how to specify a prefix to add to all generated patterns
|
35
|
+
#config.pattern_prefix = "nvm"
|
36
|
+
|
37
|
+
# An example of how to add header comments to all generated patterns
|
38
|
+
#config.pattern_header do
|
39
|
+
# cc "This is a pattern created by the example origen application"
|
40
|
+
#end
|
41
|
+
|
42
|
+
# By default all generated output will end up in ./output.
|
43
|
+
# Here you can specify an alternative directory entirely, or make it dynamic such that
|
44
|
+
# the output ends up in a setup specific directory.
|
45
|
+
#config.output_directory do
|
46
|
+
# "#{Origen.root}/output/#{$dut.class}"
|
47
|
+
#end
|
48
|
+
|
49
|
+
# Similarly for the reference files, generally you want to setup the reference directory
|
50
|
+
# structure to mirror that of your output directory structure.
|
51
|
+
#config.reference_directory do
|
52
|
+
# "#{Origen.root}/.ref/#{$dut.class}"
|
53
|
+
#end
|
54
|
+
|
55
|
+
end
|
data/config/commands.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# This file should be used to extend the origen command line tool with tasks
|
2
|
+
# specific to your application.
|
3
|
+
# The comments below should help to get started and you can also refer to
|
4
|
+
# lib/origen/commands.rb in your Origen core workspace for more examples and
|
5
|
+
# inspiration.
|
6
|
+
|
7
|
+
# Map any command aliases here, for example to allow origen -x to refer to a
|
8
|
+
# command called execute you would add a reference as shown below:
|
9
|
+
aliases ={
|
10
|
+
# "-x" => "execute",
|
11
|
+
}
|
12
|
+
|
13
|
+
# The requested command is passed in here as @command, this checks it against
|
14
|
+
# the above alias table and should not be removed.
|
15
|
+
@command = aliases[@command] || @command
|
16
|
+
|
17
|
+
# Now branch to the specific task code
|
18
|
+
case @command
|
19
|
+
|
20
|
+
# Here is an example of how to implement a command, the logic can go straight
|
21
|
+
# in here or you can require an external file if preferred.
|
22
|
+
when "execute"
|
23
|
+
puts "Executing something..."
|
24
|
+
require "commands/execute" # Would load file lib/commands/execute.rb
|
25
|
+
# You must always exit upon successfully capturing a command to prevent
|
26
|
+
# control flowing back to Origen
|
27
|
+
exit 0
|
28
|
+
|
29
|
+
# Always leave an else clause to allow control to fall back through to the
|
30
|
+
# Origen command handler.
|
31
|
+
# You probably want to also add the command details to the help shown via
|
32
|
+
# origen -h, you can do this be assigning the required text to @application_commands
|
33
|
+
# before handing control back to Origen. Un-comment the example below to get started.
|
34
|
+
else
|
35
|
+
# @application_commands = <<-EOT
|
36
|
+
# execute Execute something I guess
|
37
|
+
# EOT
|
38
|
+
require "#{Origen.app_root}/config/shared_commands"
|
39
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# This file will be required by Origen before your target is loaded, you
|
2
|
+
# can use this to require all of your files, which is the easiest way
|
3
|
+
# to get started. As your experience grows you may wish to require only the
|
4
|
+
# minimum files required to allow the target to be initialized and let
|
5
|
+
# each class require its own dependencies.
|
6
|
+
#
|
7
|
+
# It is recommended that you keep all of your application logic in lib/
|
8
|
+
# The lib directory has already been added to the search path and so any files
|
9
|
+
# in there can be referenced from here with a relative path.
|
10
|
+
#
|
11
|
+
# Note that pattern files do not need to be referenced from here and these
|
12
|
+
# will be located automatically by origen.
|
13
|
+
|
14
|
+
#autoload :Pioneer, "pioneer" # Only loads the file whenever Pioneer is referenced
|
15
|
+
#require "pioneer" # Loads the file always
|
16
|
+
|
17
|
+
require "c99/soc"
|
18
|
+
require "c99/nvm"
|
19
|
+
require "c99/block"
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# This file is created to share commands of this plugin to any app that imports it.
|
2
|
+
|
3
|
+
# Map any command aliases here, for example to allow origen -x to refer to a
|
4
|
+
# command called execute you would add a reference as shown below:
|
5
|
+
aliases ={
|
6
|
+
|
7
|
+
}
|
8
|
+
|
9
|
+
# The requested command is passed in here as @command, this checks it against
|
10
|
+
# the above alias table and should not be removed.
|
11
|
+
@command = aliases[@command] || @command
|
12
|
+
|
13
|
+
# Now branch to the specific task code
|
14
|
+
case @command
|
15
|
+
# in here or you can require an external file if preferred.
|
16
|
+
when "test"
|
17
|
+
require "commands/test_command"
|
18
|
+
exit 0
|
19
|
+
|
20
|
+
# Always leave an else clause to allow control to fall back through to the
|
21
|
+
# Origen command handler.
|
22
|
+
# You probably want to also add the command details to the help shown via
|
23
|
+
# origen -h, you can do this be assigning the required text to @application_commands
|
24
|
+
# before handing control back to Origen. Un-comment the example below to get started.
|
25
|
+
else
|
26
|
+
@plugin_commands ||= []
|
27
|
+
@plugin_commands = @plugin_commands +
|
28
|
+
[
|
29
|
+
" test Test command from plugin core_support plugin"
|
30
|
+
]
|
31
|
+
end
|
32
|
+
|
data/config/users.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file defines the users associated with your project, it is basically the
|
2
|
+
# mailing list for release notes.
|
3
|
+
#
|
4
|
+
# You can split your users into "admin" and "user" groups, the main difference
|
5
|
+
# between the two is that admin users will get all tag emails, users will get
|
6
|
+
# emails on external/official releases only.
|
7
|
+
#
|
8
|
+
# Users are also prohibited from running the "origen tag" task, but this is
|
9
|
+
# really just to prevent a casual user from executing it inadvertently and is
|
10
|
+
# not intended to be a serious security gate.
|
11
|
+
module Origen
|
12
|
+
module Users
|
13
|
+
def users
|
14
|
+
@users ||= [
|
15
|
+
|
16
|
+
# Admins
|
17
|
+
User.new("Stephen McGinty", "r49409", :admin),
|
18
|
+
|
19
|
+
]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/config/version.rb
ADDED
data/lib/c99/block.rb
ADDED
data/lib/c99/nvm.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module C99
|
2
|
+
class NVM
|
3
|
+
|
4
|
+
attr_accessor :blocks
|
5
|
+
|
6
|
+
include Origen::Pins
|
7
|
+
include Origen::Registers
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
|
11
|
+
add_reg :mclkdiv, 0x03, 16, :osch => { :pos => 15 },
|
12
|
+
:asel => { :pos => 14 },
|
13
|
+
:failctl => { :pos => 13 },
|
14
|
+
:parsel => { :pos => 12 },
|
15
|
+
:eccen => { :pos => 11 },
|
16
|
+
:cmdloc => { :pos => 8, :bits => 3, :res => 0b001 },
|
17
|
+
:clkdiv => { :pos => 0, :bits => 8, :res => 0x18 }
|
18
|
+
|
19
|
+
add_reg :data, 0x4, 16, :d => { :pos => 0, :bits => 16 }
|
20
|
+
|
21
|
+
@blocks = [Block.new(0, self), Block.new(1, self), Block.new(2, self)]
|
22
|
+
end
|
23
|
+
|
24
|
+
def find_block_by_id(id)
|
25
|
+
@blocks.select{ |block| block.id == id }.first
|
26
|
+
end
|
27
|
+
|
28
|
+
def override_method
|
29
|
+
:original
|
30
|
+
end
|
31
|
+
|
32
|
+
def reg_owner_alias
|
33
|
+
["flash", "fmu"]
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
data/lib/c99/soc.rb
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
module C99
|
2
|
+
class SOC
|
3
|
+
include Origen::Callbacks
|
4
|
+
include Origen::Pins
|
5
|
+
include Origen::TopLevel
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
|
9
|
+
add_pin :reset, :reset => :drive_hi, :name => "nvm_reset"
|
10
|
+
add_pin :clk, :reset => :drive_hi, :name => "nvm_clk"
|
11
|
+
add_pin :clk_mux, :reset => :drive_hi, :name => "nvm_clk_mux"
|
12
|
+
add_port :porta, :reset => :drive_lo, :size => 8
|
13
|
+
add_port :portb, :reset => :drive_lo, :size => 8, :endian => :little
|
14
|
+
add_pin :invoke, :reset => :drive_lo, :name => "nvm_invoke"
|
15
|
+
add_pin :done, :reset => :expect_hi, :name => "nvm_done"
|
16
|
+
add_pin :fail, :reset => :expect_lo, :name => "nvm_fail"
|
17
|
+
add_pin :alvtst, :reset => :dont_care, :name => "nvm_alvtst"
|
18
|
+
add_pin :ahvtst, :reset => :dont_care, :name => "nvm_ahvtst"
|
19
|
+
add_pin :dtst, :reset => :dont_care, :name => "nvm_dtst"
|
20
|
+
|
21
|
+
add_pin :tclk, :reset => :drive_lo
|
22
|
+
add_pin :trst, :reset => :drive_hi
|
23
|
+
|
24
|
+
add_pin_alias :extal, :clk
|
25
|
+
add_pin_alias :extal_mux, :clk_mux
|
26
|
+
add_pin_alias :tms, :done
|
27
|
+
add_pin_alias :tdo, :fail
|
28
|
+
add_pin_alias :tdi, :invoke
|
29
|
+
add_pin_alias :resetb, :ahvtst
|
30
|
+
|
31
|
+
add_pin_alias :pa5, :porta, :pin => 5
|
32
|
+
add_pin_alias :pa_lower, :porta, :pins => [3..0]
|
33
|
+
add_pin_alias :pa_upper, :porta, :pins => [7,6,5,4]
|
34
|
+
add_port_alias :porta_alias, :porta
|
35
|
+
|
36
|
+
@a = 2
|
37
|
+
end
|
38
|
+
|
39
|
+
def startup(options)
|
40
|
+
if options[:add_additional_pins]
|
41
|
+
add_pin :late_added_pin, :reset => :drive_hi
|
42
|
+
else
|
43
|
+
# Test that rendering some vectors from a template works...
|
44
|
+
if $tester.is_a?(Origen::Tester::J750) || $tester.is_a?(Testers::J750)
|
45
|
+
$tester.render("#{Origen.root}/pattern/j750/_mode_entry.atp.erb", :hold_cycles => 5)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
$tester.set_timeset("nvmbist", 40) if $tester.is_vector_based?
|
49
|
+
end
|
50
|
+
|
51
|
+
def has_margin0_bug?
|
52
|
+
false
|
53
|
+
end
|
54
|
+
|
55
|
+
def write_register(reg, options={})
|
56
|
+
reg
|
57
|
+
end
|
58
|
+
|
59
|
+
def read_register(reg, options={})
|
60
|
+
reg
|
61
|
+
end
|
62
|
+
|
63
|
+
def base_address(reg, options={})
|
64
|
+
if reg.owned_by?(:nvm)
|
65
|
+
0x4000_0000
|
66
|
+
else
|
67
|
+
0
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def origen_dot_root
|
72
|
+
Origen.root
|
73
|
+
end
|
74
|
+
|
75
|
+
def origen_dot_root!
|
76
|
+
Origen.root!
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
puts <<-EOT
|
2
|
+
This is a test command to test the command sharing capability of plugins.
|
3
|
+
|
4
|
+
You can now write commands in plugins which can be called from any app that
|
5
|
+
includes the plugin.
|
6
|
+
|
7
|
+
For the app to add your command in it's own command list, share your shared_commands.rb file in
|
8
|
+
config.shared hash as follows:
|
9
|
+
|
10
|
+
config.shared = {
|
11
|
+
|
12
|
+
:command_launcher => "config/shared_commands.rb"
|
13
|
+
|
14
|
+
}
|
15
|
+
|
16
|
+
EOT
|
17
|
+
|
18
|
+
|
@@ -0,0 +1,159 @@
|
|
1
|
+
# This pattern exercises the methods in the Origen::Tester::J750 class
|
2
|
+
Pattern.create(:end_with_halt => true) do
|
3
|
+
|
4
|
+
ss "Test that basic cycling works"
|
5
|
+
$tester.cycle
|
6
|
+
10.times do
|
7
|
+
$nvm.pin(:invoke).drive(1)
|
8
|
+
$tester.cycle
|
9
|
+
end
|
10
|
+
10.times do |i|
|
11
|
+
$nvm.pin(:invoke).drive(i.even? ? 0 : 1)
|
12
|
+
$tester.cycle
|
13
|
+
end
|
14
|
+
|
15
|
+
ss "Test that basic port manipulation works"
|
16
|
+
if !$tester.respond_to?('hpt_mode')
|
17
|
+
$nvm.port(:porta).drive(0x55)
|
18
|
+
$tester.cycle
|
19
|
+
$nvm.port(:porta).expect(0xAA)
|
20
|
+
$tester.cycle
|
21
|
+
$nvm.port(:porta)[1].dont_care
|
22
|
+
$tester.cycle
|
23
|
+
end
|
24
|
+
|
25
|
+
ss "Test that the store method works"
|
26
|
+
cc "This vector should be stored"
|
27
|
+
$tester.cycle
|
28
|
+
$tester.store
|
29
|
+
$tester.cycle
|
30
|
+
cc "This vector should be stored"
|
31
|
+
$tester.cycle
|
32
|
+
$tester.cycle
|
33
|
+
$tester.cycle
|
34
|
+
$tester.store(:offset => -2)
|
35
|
+
|
36
|
+
ss "Test calling a subroutine"
|
37
|
+
cc "This vector should call subroutine 'sub1'"
|
38
|
+
$tester.cycle
|
39
|
+
$tester.call_subroutine("sub1")
|
40
|
+
cc "This vector should call subroutine 'sub2'"
|
41
|
+
$tester.cycle
|
42
|
+
$tester.cycle
|
43
|
+
$tester.call_subroutine("sub2", :offset => -1)
|
44
|
+
cc "This vector should call subroutine 'sub3', however because"
|
45
|
+
cc "it is local it should not appear in the imports in the header"
|
46
|
+
$tester.cycle
|
47
|
+
$tester.call_subroutine("sub3")
|
48
|
+
|
49
|
+
ss "Test generating a handshake inside a subroutine"
|
50
|
+
cc "The next line should have a global label 'sub3', but no vector"
|
51
|
+
$tester.start_subroutine("sub3")
|
52
|
+
$tester.handshake
|
53
|
+
cc "This vector should have a return statement"
|
54
|
+
$tester.cycle
|
55
|
+
$tester.end_subroutine
|
56
|
+
|
57
|
+
ss "Test generating a handshake with a readcode"
|
58
|
+
$tester.handshake(:readcode => 10)
|
59
|
+
|
60
|
+
ss "Test frequency counter"
|
61
|
+
$tester.freq_count($nvm.pin(:dtst), :readcode => 33)
|
62
|
+
|
63
|
+
ss "Test a single pin match loop"
|
64
|
+
$tester.wait(:match => true, :time_in_us => 5000, :pin => $nvm.pin(:done), :state => :high)
|
65
|
+
|
66
|
+
ss "Test a two pin match loop"
|
67
|
+
$tester.wait(:match => true, :time_in_us => 5000,
|
68
|
+
:pin => $nvm.pin(:done), :state => :high,
|
69
|
+
:pin2 => $nvm.pin(:fail), :state2 => :low)
|
70
|
+
|
71
|
+
ss "Test adding an arbitrary label"
|
72
|
+
$tester.cycle
|
73
|
+
$tester.label "a_test_label"
|
74
|
+
$tester.cycle
|
75
|
+
|
76
|
+
ss "Test calling a match loop"
|
77
|
+
$tester.cycle
|
78
|
+
$tester.call_match
|
79
|
+
$tester.cycle
|
80
|
+
$tester.call_match
|
81
|
+
|
82
|
+
ss "Test setting the readcode to 100"
|
83
|
+
$tester.set_code(100)
|
84
|
+
|
85
|
+
ss "Test explicit branching"
|
86
|
+
$tester.branch_to("somewhere")
|
87
|
+
|
88
|
+
if !$tester.respond_to?('hpt_mode')
|
89
|
+
ss "Test looping, these vectors should be executed once"
|
90
|
+
$tester.loop_vector("test_loop_1", 1) do
|
91
|
+
$nvm.port(:porta).drive(0xAA)
|
92
|
+
$tester.cycle
|
93
|
+
$nvm.port(:porta).drive(0x55)
|
94
|
+
$tester.cycle
|
95
|
+
end
|
96
|
+
|
97
|
+
ss "Test looping, these vectors should be executed 3 times"
|
98
|
+
$tester.loop_vector("test_loop_2", 3) do
|
99
|
+
$nvm.port(:porta).drive(0xAA)
|
100
|
+
$tester.cycle
|
101
|
+
$nvm.port(:porta).drive(0x55)
|
102
|
+
$tester.cycle
|
103
|
+
end
|
104
|
+
else
|
105
|
+
ss "Test looping, these vectors should be executed once"
|
106
|
+
$tester.loop_vector("test_loop_1", 1) do
|
107
|
+
$nvm.pin(:clk).drive(1)
|
108
|
+
$tester.cycle
|
109
|
+
$nvm.pin(:clk).drive(0)
|
110
|
+
$tester.cycle
|
111
|
+
end
|
112
|
+
|
113
|
+
ss "Test looping, these vectors should be executed 3 times"
|
114
|
+
$tester.loop_vector("test_loop_2", 3) do
|
115
|
+
$nvm.pin(:clk).drive(1)
|
116
|
+
$tester.cycle
|
117
|
+
$nvm.pin(:clk).drive(0)
|
118
|
+
$tester.cycle
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
ss "Test repeat_previous"
|
123
|
+
$tester.cycle
|
124
|
+
cc "Invoke should repeat previous for 10 cycles"
|
125
|
+
$nvm.pin(:invoke).repeat_previous = true
|
126
|
+
10.cycles
|
127
|
+
$nvm.pin(:invoke).repeat_previous = false
|
128
|
+
cc "All pins should repeat previous for 10 cycles, except the clk pin"
|
129
|
+
$tester.repeat_previous do
|
130
|
+
$nvm.pin(:clk).drive(1)
|
131
|
+
10.cycles
|
132
|
+
end
|
133
|
+
cc "All should return to the original state"
|
134
|
+
$tester.cycle
|
135
|
+
|
136
|
+
ss "Test suspend compares"
|
137
|
+
$nvm.pin(:fail).assert!(1)
|
138
|
+
cc "The fail pin should not be compared on these vectors"
|
139
|
+
$tester.ignore_fails($nvm.pin(:fail)) do
|
140
|
+
10.cycles
|
141
|
+
end
|
142
|
+
cc "And now it should"
|
143
|
+
$tester.cycle
|
144
|
+
|
145
|
+
ss "Test inhibit vectors and comments"
|
146
|
+
cc "The invoke pin should be driving high on this cycle"
|
147
|
+
$nvm.pin(:invoke).drive!(1)
|
148
|
+
cc "This should be the last thing you see until 'Inhibit complete!'"
|
149
|
+
$tester.inhibit_vectors_and_comments do
|
150
|
+
cc "This should not be in the output file, or the following vectors"
|
151
|
+
$tester.cycle
|
152
|
+
$nvm.pin(:invoke).drive!(0)
|
153
|
+
10.cycles
|
154
|
+
end
|
155
|
+
cc "Inhibit complete!"
|
156
|
+
cc "The invoke pin should be driving low on this cycle"
|
157
|
+
$tester.cycle
|
158
|
+
|
159
|
+
end
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: origen_core_support
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Stephen McGinty
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-06-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: origen
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description:
|
28
|
+
email:
|
29
|
+
- stephen.f.mcginty@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- config/application.rb
|
35
|
+
- config/commands.rb
|
36
|
+
- config/environment.rb
|
37
|
+
- config/shared_commands.rb
|
38
|
+
- config/users.rb
|
39
|
+
- config/version.rb
|
40
|
+
- lib/c99/block.rb
|
41
|
+
- lib/c99/nvm.rb
|
42
|
+
- lib/c99/soc.rb
|
43
|
+
- lib/commands/test_command.rb
|
44
|
+
- lib/origen_core_support.rb
|
45
|
+
- pattern/shared/j750/j750_halt.rb
|
46
|
+
homepage:
|
47
|
+
licenses:
|
48
|
+
- LGPL-3
|
49
|
+
metadata: {}
|
50
|
+
post_install_message:
|
51
|
+
rdoc_options: []
|
52
|
+
require_paths:
|
53
|
+
- lib
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: 1.9.3
|
59
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 1.8.11
|
64
|
+
requirements: []
|
65
|
+
rubyforge_project:
|
66
|
+
rubygems_version: 2.2.2
|
67
|
+
signing_key:
|
68
|
+
specification_version: 4
|
69
|
+
summary: A simple plugin that is used to test the Origen SDK plugin system
|
70
|
+
test_files: []
|