origen_ahb 0.2.0.pre6 → 0.2.0.pre8
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/application.rb +4 -3
- data/config/boot.rb +24 -4
- data/config/commands.rb +27 -51
- data/config/version.rb +1 -1
- data/lib/origen_ahb.rb +12 -10
- data/lib/origen_ahb_dev/block.rb +16 -0
- data/lib/origen_ahb_dev/dut.rb +46 -0
- data/lib/origen_ahb_dev/dut_controller.rb +116 -0
- data/pattern/example.rb +12 -0
- data/templates/web/index.md.erb +111 -4
- data/templates/web/layouts/_basic.html.erb +4 -1
- data/templates/web/partials/_navbar.html.erb +2 -0
- metadata +23 -13
- data/config/development.rb +0 -12
- data/config/users.rb +0 -29
- data/lib/origen_ahb/interface.rb +0 -4
- data/lib/origen_ahb/top_level.rb +0 -12
- data/program/prb1.rb +0 -9
- data/templates/web/archive.md.erb +0 -11
- data/templates/web/contact.md.erb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82be39cdc001ad3595e50d42675344d47960e004
|
4
|
+
data.tar.gz: d3dd515c354c8bc3dda40bedbe9f0f867af40852
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81b7ff7cfc8382dc8f23f09a528c6a45a96d8a9be59562cbab9467610df3844cb30cf86865a214f76b91d26c9c9abd29b968021033410ec6f80c8686b71b999a
|
7
|
+
data.tar.gz: 0b20471261a5b83be9f869731340045b67ee8fa34f526da95d253c06c85c7b1c98de00857ddd1623f1a0dbf458c447a3ab2b88c12701847c39baefa6c78eabc9
|
data/config/application.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
+
require 'origen'
|
1
2
|
class OrigenAhbApplication < Origen::Application
|
2
3
|
|
3
4
|
# This information is used in headers and email templates, set it specific
|
4
5
|
# to your application
|
5
|
-
config.name = "origen ahb"
|
6
|
-
config.initials = "OrigenAhb"
|
7
|
-
|
8
6
|
self.name = "origen_ahb"
|
9
7
|
self.namespace = "OrigenAhb"
|
8
|
+
config.name = "origen_ahb"
|
9
|
+
config.initials = "OrigenAhb"
|
10
10
|
config.rc_url = "git@github.com:Origen-SDK/origen_ahb.git"
|
11
11
|
config.release_externally = true
|
12
12
|
|
@@ -42,6 +42,7 @@ class OrigenAhbApplication < Origen::Application
|
|
42
42
|
def before_deploy_site
|
43
43
|
Dir.chdir Origen.root do
|
44
44
|
system "origen examples -c"
|
45
|
+
system "origen specs -c"
|
45
46
|
dir = "#{Origen.root}/web/output/coverage"
|
46
47
|
FileUtils.remove_dir(dir, true) if File.exists?(dir)
|
47
48
|
system "mv #{Origen.root}/coverage #{dir}"
|
data/config/boot.rb
CHANGED
@@ -1,4 +1,24 @@
|
|
1
|
-
# This file
|
2
|
-
#
|
3
|
-
#
|
4
|
-
|
1
|
+
# This file is used to boot your plugin when it is running in standalone mode
|
2
|
+
# from its own workspace - i.e. when the plugin is being developed.
|
3
|
+
#
|
4
|
+
# It will not be loaded when the plugin is imported by a 3rd party app - in that
|
5
|
+
# case only lib/origen ahb.rb is loaded.
|
6
|
+
#
|
7
|
+
# Therefore this file can be used to load anything extra that you need to boot
|
8
|
+
# the development environment for this app. For example this is typically used
|
9
|
+
# to load some additional test classes to use your plugin APIs so that they can
|
10
|
+
# be tested and/or interacted with in the console.
|
11
|
+
require 'origen_ahb'
|
12
|
+
|
13
|
+
module OrigenAhbDev
|
14
|
+
# Example of how to explicitly require a file
|
15
|
+
# require "origen_ahb_dev/my_file"
|
16
|
+
|
17
|
+
# Load all files in the lib/origen_ahb_dev directory.
|
18
|
+
# Note that there is no problem from requiring a file twice (Ruby will ignore
|
19
|
+
# the second require), so if you have a file that must be required first, then
|
20
|
+
# explicitly require it up above and then let this take care of the rest.
|
21
|
+
Dir.glob("#{File.dirname(__FILE__)}/../lib/origen_ahb_dev/**/*.rb").sort.each do |file|
|
22
|
+
require file
|
23
|
+
end
|
24
|
+
end
|
data/config/commands.rb
CHANGED
@@ -20,62 +20,38 @@ aliases ={
|
|
20
20
|
# Now branch to the specific task code
|
21
21
|
case @command
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
puts "Doing something..."
|
27
|
-
require "commands/my_command" # Would load file lib/commands/my_command.rb
|
28
|
-
# You must always exit upon successfully capturing a command to prevent
|
29
|
-
# control flowing back to RGen
|
30
|
-
exit 0
|
23
|
+
when 'specs'
|
24
|
+
require 'rspec'
|
25
|
+
exit RSpec::Core::Runner.run(['spec'])
|
31
26
|
|
32
|
-
## Example of how to make a command to run unit tests, this simply invokes RSpec on
|
33
|
-
## the spec directory
|
34
|
-
#when "specs"
|
35
|
-
# ARGV.unshift "spec"
|
36
|
-
# require "rspec"
|
37
|
-
# require "rspec/autorun"
|
38
|
-
# exit 0 # This will never be hit on a fail, RSpec will automatically exit 1
|
39
27
|
|
40
|
-
|
41
|
-
|
42
|
-
# RGen.load_application
|
28
|
+
when 'examples'
|
29
|
+
Origen.load_application
|
43
30
|
status = 0
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
# status = 1
|
61
|
-
# end
|
62
|
-
# puts
|
31
|
+
|
32
|
+
# Pattern generator tests
|
33
|
+
ARGV = %w(example -t dev -r approved)
|
34
|
+
load "#{Origen.top}/lib/origen/commands/generate.rb"
|
35
|
+
|
36
|
+
if Origen.app.stats.changed_files == 0 &&
|
37
|
+
Origen.app.stats.new_files == 0 &&
|
38
|
+
Origen.app.stats.changed_patterns == 0 &&
|
39
|
+
Origen.app.stats.new_patterns == 0
|
40
|
+
|
41
|
+
Origen.app.stats.report_pass
|
42
|
+
else
|
43
|
+
Origen.app.stats.report_fail
|
44
|
+
status = 1
|
45
|
+
end
|
46
|
+
puts
|
63
47
|
exit status # Exit with a 1 on the event of a failure per std unix result codes
|
64
48
|
|
65
49
|
# Always leave an else clause to allow control to fall back through to the
|
66
50
|
# RGen command handler.
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
# specs Run the specs (tests), -c will enable coverage
|
73
|
-
# examples Run the examples (tests), -c will enable coverage
|
74
|
-
# EOT
|
75
|
-
|
76
|
-
|
77
|
-
when "specs"
|
78
|
-
status = 0
|
79
|
-
exit status
|
51
|
+
else
|
52
|
+
@application_commands = <<-EOT
|
53
|
+
specs Run the specs (tests), -c will enable coverage
|
54
|
+
examples Run the examples (tests), -c will enable coverage
|
55
|
+
EOT
|
80
56
|
|
81
|
-
end
|
57
|
+
end
|
data/config/version.rb
CHANGED
data/lib/origen_ahb.rb
CHANGED
@@ -1,14 +1,19 @@
|
|
1
|
-
require 'origen_testers'
|
2
1
|
require 'origen'
|
3
2
|
require_relative '../config/application.rb'
|
3
|
+
require 'origen_testers'
|
4
4
|
module OrigenAhb
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
5
|
+
# THIS FILE SHOULD ONLY BE USED TO LOAD RUNTIME DEPENDENCIES
|
6
|
+
# If this plugin has any development dependencies (e.g. dummy DUT or other models that are only used
|
7
|
+
# for testing), then these should be loaded from config/boot.rb
|
8
|
+
|
9
|
+
# Example of how to explicitly require a file
|
10
|
+
# require "origen_ahb/my_file"
|
11
|
+
|
12
|
+
# Load all files in the lib/origen_ahb directory.
|
8
13
|
# Note that there is no problem from requiring a file twice (Ruby will ignore
|
9
|
-
# the second require), so if you have a file that must be required
|
10
|
-
#
|
11
|
-
Dir.glob("#{File.dirname(__FILE__)}/**/*.rb").sort.each do |file|
|
14
|
+
# the second require), so if you have a file that must be required first, then
|
15
|
+
# explicitly require it up above and then let this take care of the rest.
|
16
|
+
Dir.glob("#{File.dirname(__FILE__)}/origen_ahb/**/*.rb").sort.each do |file|
|
12
17
|
require file
|
13
18
|
end
|
14
19
|
|
@@ -17,6 +22,3 @@ module OrigenAhb
|
|
17
22
|
@origen_ahb ||= Driver.new(self)
|
18
23
|
end
|
19
24
|
end
|
20
|
-
|
21
|
-
# Add some aliases to handle common typos
|
22
|
-
# AHB = ahb
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module OrigenAhb
|
2
|
+
module Test
|
3
|
+
class BLOCK
|
4
|
+
include Origen::Model
|
5
|
+
|
6
|
+
def initialize(options = {})
|
7
|
+
instantiate_registers(options)
|
8
|
+
end
|
9
|
+
|
10
|
+
def instantiate_registers(options = {})
|
11
|
+
add_reg :control, 0x00, 32, data: { pos: 0, bits: 32 }
|
12
|
+
add_reg :status, 0x04, 32, data: { pos: 0, bits: 32 }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module OrigenAhb
|
2
|
+
module Test
|
3
|
+
class DUT
|
4
|
+
include Origen::TopLevel
|
5
|
+
include OrigenAhb
|
6
|
+
|
7
|
+
def initialize(options = {})
|
8
|
+
instantiate_pins(options)
|
9
|
+
instantiate_registers(options)
|
10
|
+
instantiate_sub_blocks(options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def instantiate_pins(options = {})
|
14
|
+
# Standard DUT pins
|
15
|
+
add_pin :tclk
|
16
|
+
add_pin :tdi
|
17
|
+
add_pin :tdo
|
18
|
+
add_pin :tms
|
19
|
+
add_pin :resetb
|
20
|
+
|
21
|
+
# AHB Control Signals
|
22
|
+
add_pin :hclk
|
23
|
+
add_pin :hready
|
24
|
+
add_pin :hwrite
|
25
|
+
add_pin :htrans, size: 2
|
26
|
+
add_pin :hburst, size: 3
|
27
|
+
add_pin :hmastlock
|
28
|
+
add_pin :hsize, size: 3
|
29
|
+
add_pin :hprot, size: 3
|
30
|
+
|
31
|
+
# AHB Data Signals
|
32
|
+
add_pin :haddr, size: 32
|
33
|
+
add_pin :hwdata, size: 32
|
34
|
+
add_pin :hrdata, size: 32
|
35
|
+
end
|
36
|
+
|
37
|
+
def instantiate_registers(options = {})
|
38
|
+
add_reg :top_reg, 0x20000000, 32, data: { pos: 0, bits: 32 }
|
39
|
+
end
|
40
|
+
|
41
|
+
def instantiate_sub_blocks(options = {})
|
42
|
+
sub_block :block, class_name: 'OrigenAhb::Test::BLOCK', base_address: 0x2200_0000
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
module OrigenAhb
|
2
|
+
module Test
|
3
|
+
class DUTController
|
4
|
+
include Origen::Controller
|
5
|
+
|
6
|
+
def startup(options = {})
|
7
|
+
tester.set_timeset('ahb', 40)
|
8
|
+
|
9
|
+
init_pins # Give pattern a known start up
|
10
|
+
|
11
|
+
# Do some startup stuff here
|
12
|
+
pin(:resetb).drive(0)
|
13
|
+
tester.wait time_in_ns: 250
|
14
|
+
pin(:resetb).drive(1)
|
15
|
+
end
|
16
|
+
|
17
|
+
def shutdown(options = {})
|
18
|
+
# Shut everything down
|
19
|
+
tester.wait time_in_ns: 250
|
20
|
+
pin(:resetb).drive(0)
|
21
|
+
|
22
|
+
cleanup_pins # Give patterns a known exit condition
|
23
|
+
end
|
24
|
+
|
25
|
+
def init_pins
|
26
|
+
pin(:resetb).drive(0)
|
27
|
+
pin(:tclk).drive(0)
|
28
|
+
pin(:tdi).drive(0)
|
29
|
+
pin(:tms).drive(0)
|
30
|
+
pin(:tdo).dont_care
|
31
|
+
end
|
32
|
+
|
33
|
+
def cleanup_pins
|
34
|
+
pin(:resetb).drive(0)
|
35
|
+
pin(:tclk).drive(0)
|
36
|
+
pin(:tdi).drive(0)
|
37
|
+
pin(:tms).drive(0)
|
38
|
+
pin(:tdo).dont_care
|
39
|
+
end
|
40
|
+
|
41
|
+
def write_register(reg, options = {})
|
42
|
+
ahb.write_register(reg, options)
|
43
|
+
end
|
44
|
+
|
45
|
+
def read_register(reg, options = {})
|
46
|
+
ahb.read_register(reg, options)
|
47
|
+
end
|
48
|
+
|
49
|
+
def ahb_trans(options = {})
|
50
|
+
pin(:hclk).drive(0)
|
51
|
+
pins(:htrans).drive(0)
|
52
|
+
pin(:hwrite).drive(0)
|
53
|
+
pin(:hsize).drive(0)
|
54
|
+
pin(:hburst).drive(0)
|
55
|
+
pin(:hmastlock).drive(0)
|
56
|
+
pin(:hprot).drive(0)
|
57
|
+
pin(:hready).dont_care
|
58
|
+
pins(:haddr).dont_care
|
59
|
+
pins(:hwdata).dont_care
|
60
|
+
pins(:hrdata).dont_care
|
61
|
+
tester.cycle
|
62
|
+
|
63
|
+
# Address Phase
|
64
|
+
#
|
65
|
+
# Master drives the address and control signals onto bus after the rising edge of HCLK
|
66
|
+
pin(:hclk).drive(1)
|
67
|
+
tester.cycle
|
68
|
+
|
69
|
+
pin(:htrans).drive(0b00)
|
70
|
+
pin(:hwrite).drive(options[:hwrite])
|
71
|
+
pin(:hsize).drive(options[:hsize])
|
72
|
+
pin(:hburst).drive(options[:hburst])
|
73
|
+
pin(:hmastlock).drive(options[:hmastlock])
|
74
|
+
pin(:hprot).drive(options[:hprot])
|
75
|
+
pins(:haddr).drive(options[:haddr])
|
76
|
+
|
77
|
+
pin(:hclk).drive(0)
|
78
|
+
tester.cycle
|
79
|
+
|
80
|
+
# Data Phase
|
81
|
+
#
|
82
|
+
# Slave samples the address and control information on the next rising edge of HCLK
|
83
|
+
pin(:hclk).drive(1)
|
84
|
+
tester.cycle
|
85
|
+
|
86
|
+
pin(:hclk).drive(0)
|
87
|
+
pin(:hready).compare(1)
|
88
|
+
pins(:hwdata).drive(options[:hdata]) if options[:hwrite] == 1
|
89
|
+
tester.cycle
|
90
|
+
|
91
|
+
pin(:hclk).drive(1)
|
92
|
+
pins(:hrdata).assert(options[:hdata]) if options[:hwrite] == 0
|
93
|
+
tester.cycle
|
94
|
+
|
95
|
+
pin(:hclk).drive(0)
|
96
|
+
tester.cycle
|
97
|
+
|
98
|
+
pin(:hclk).drive(1)
|
99
|
+
pins(:htrans).drive(0)
|
100
|
+
pin(:hwrite).drive(0)
|
101
|
+
pin(:hsize).drive(0)
|
102
|
+
pin(:hburst).drive(0)
|
103
|
+
pin(:hmastlock).drive(0)
|
104
|
+
pin(:hprot).drive(0)
|
105
|
+
pin(:hready).dont_care
|
106
|
+
pins(:haddr).dont_care
|
107
|
+
pins(:hwdata).dont_care
|
108
|
+
pins(:hrdata).dont_care
|
109
|
+
tester.cycle
|
110
|
+
|
111
|
+
pin(:hclk).drive(0)
|
112
|
+
tester.cycle
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
data/pattern/example.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
Pattern.create do
|
2
|
+
|
3
|
+
cc 'Write to top-level register'
|
4
|
+
$dut.reg(:top_reg).write!(0x5555_AAAA)
|
5
|
+
|
6
|
+
cc 'Write to block-level register'
|
7
|
+
$dut.block.reg(:control).write!(0xBA5E_BA11)
|
8
|
+
|
9
|
+
cc 'Read from block-level register'
|
10
|
+
$dut.block.reg(:status).read!(0x0022_0000)
|
11
|
+
|
12
|
+
end
|
data/templates/web/index.md.erb
CHANGED
@@ -6,14 +6,121 @@
|
|
6
6
|
|
7
7
|
### Purpose
|
8
8
|
|
9
|
-
This
|
9
|
+
This library provides register and memory read/write and debug control capability via the AHB protocol.
|
10
|
+
|
11
|
+
### How To Import
|
12
|
+
|
13
|
+
In your Gemfile add:
|
14
|
+
|
15
|
+
~~~ruby
|
16
|
+
gem "origen_ahb", ">= <%= Origen.app.version %>"
|
17
|
+
~~~
|
18
|
+
|
19
|
+
or if your application is a plugin add this to your <code>.gemspec</code>
|
20
|
+
|
21
|
+
~~~ruby
|
22
|
+
spec.add_development_dependency "origen_ahb", ">= <%= Origen.app.version %>"
|
23
|
+
~~~
|
24
|
+
|
25
|
+
__NOTE:__ You will also need to include <code>require 'origen_ahb'</code> somewhere in your environment
|
26
|
+
if your app is a plugin.
|
27
|
+
|
10
28
|
|
11
29
|
### How To Use
|
12
30
|
|
13
|
-
|
31
|
+
Include the <code>OrigenAhb</code> module in your DUT class, then hook it up
|
32
|
+
to the Origen register API via
|
33
|
+
<code>read_register</code> and <code>write_register</code> methods.
|
34
|
+
|
35
|
+
You must also include a compatible physical driver depending on what debug
|
36
|
+
interface your device has. This **MUST** be implemented in a method called <code>ahb_trans</code>
|
37
|
+
at the top-level application (i.e. dut).
|
38
|
+
|
39
|
+
~~~ruby
|
40
|
+
require 'origen_ahb'
|
41
|
+
class DUT
|
42
|
+
include Origen::TopLevel
|
43
|
+
include OrigenAhb
|
44
|
+
|
45
|
+
def initialize
|
46
|
+
add_pin :hclk
|
47
|
+
add_pin :hwrite
|
48
|
+
add_pin :haddr
|
49
|
+
add_pin :wdata
|
50
|
+
add_pin :rdata
|
51
|
+
|
52
|
+
reg :myreg, 0x0012, size: 16 do |reg|
|
53
|
+
reg.bits 15..8, :upper_byte
|
54
|
+
reg.bits 7..0, :lower_byte
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
# Hook the Ahb module into the register API, any register read
|
60
|
+
# requests will use the AHB protocol by default
|
61
|
+
def read_register(reg, options={})
|
62
|
+
ahb.read_register(reg, options)
|
63
|
+
end
|
64
|
+
|
65
|
+
# As above for write requests
|
66
|
+
def write_register(reg, options={})
|
67
|
+
ahb.write_register(reg, options)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Define ahb_trans method at top-level
|
71
|
+
def ahb_trans(options)
|
72
|
+
# Available options here will be:
|
73
|
+
# options[:haddr] - Address of transaction
|
74
|
+
# options[:hdata] - Data (either to be written or expected value of read)
|
75
|
+
# options[:hwrite] - Read or Write transaction
|
76
|
+
# options[:hsize] - Bus width
|
77
|
+
# options[:hburst] -
|
78
|
+
# options[:hmastlock] -
|
79
|
+
# options[:hprot] -
|
80
|
+
|
81
|
+
# Drive appropriate pins for Address Phase
|
82
|
+
pin(:hclk).drive(0)
|
83
|
+
...
|
84
|
+
|
85
|
+
# Drive appropriate pins for Data Phase
|
86
|
+
pin(:hwdata).drive(options[:hdata])
|
87
|
+
...
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
DUT.new.myreg.write!(0x55AA) # => Will generate the required vectors using the AHB bus protocol
|
94
|
+
~~~
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
### How To Setup a Development Environment
|
100
|
+
|
101
|
+
[Clone the repository from Github](https://github.com/Origen-SDK/origen_ahb).
|
102
|
+
|
103
|
+
An instance of the OrigenAhb driver is hooked up to a dummy DUT
|
104
|
+
object for use in the console:
|
105
|
+
|
106
|
+
~~~
|
107
|
+
origen i
|
108
|
+
|
109
|
+
> dut.ahb
|
110
|
+
=> #<OrigenAhb::Driver:0x0000001b303570 @owner=<Model/Controller: OrigenAhb::Test::DUT:237392680/OrigenAhb::Test::DUTController:227789200>>
|
111
|
+
~~~
|
112
|
+
|
113
|
+
Follow the instructions here if you want to make a 3rd party app
|
114
|
+
workspace use your development copy of the OrigenAhb plugin:
|
115
|
+
[Setting up a Plugin Development Environment](http://origen-sdk.org/origen/guides/plugins)
|
116
|
+
|
117
|
+
This plugin also contains a test suite, makes sure this passes before committing
|
118
|
+
any changes!
|
14
119
|
|
15
|
-
|
120
|
+
~~~
|
121
|
+
origen examples
|
122
|
+
~~~
|
16
123
|
|
17
|
-
|
124
|
+
<%= disqus_comments %>
|
18
125
|
|
19
126
|
% end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
---
|
2
2
|
title: <%= options[:title] || Origen.config.name %>
|
3
|
+
analytics: UA-64455560-1
|
3
4
|
---
|
4
|
-
<%= render "partials/navbar.html", tab
|
5
|
+
<%= render "templates/web/partials/navbar.html", :tab => options[:tab] %>
|
5
6
|
|
6
7
|
<div class="row">
|
7
8
|
%# The markdown attribute is important if you are going to include content written
|
@@ -9,5 +10,7 @@ title: <%= options[:title] || Origen.config.name %>
|
|
9
10
|
<div class="span12" markdown="1">
|
10
11
|
<%= yield %>
|
11
12
|
|
13
|
+
<%= disqus_comments %>
|
14
|
+
|
12
15
|
</div>
|
13
16
|
</div>
|
@@ -12,7 +12,9 @@
|
|
12
12
|
<div id="navbar" class="collapse navbar-collapse">
|
13
13
|
<ul class="nav navbar-nav">
|
14
14
|
<li class="<%= options[:tab] == :api ? 'active' : '' %>"><a href="<%= path "/api/" %>">API</a></li>
|
15
|
+
<li class="<%= options[:tab] == :coverage ? 'active' : '' %>"><a href="<%= path "/coverage" %>">Coverage</a></li>
|
15
16
|
<li class="<%= options[:tab] == :release ? 'active' : '' %>"><a href="<%= path "/release_notes" %>">Release Notes</a></li>
|
17
|
+
<li><a href="https://github.com/Origen-SDK/origen_ahb">Github</a></li>
|
16
18
|
</ul>
|
17
19
|
<%= import "origen/web/logo.html" %>
|
18
20
|
</div><!--/.nav-collapse -->
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: origen_ahb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0.
|
4
|
+
version: 0.2.0.pre8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris P Nappi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.7'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: origen_testers
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: origen_doc_helpers
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.4.3
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.4.3
|
41
55
|
description:
|
42
56
|
email:
|
43
57
|
- ra5809@freescale.com
|
@@ -48,17 +62,14 @@ files:
|
|
48
62
|
- config/application.rb
|
49
63
|
- config/boot.rb
|
50
64
|
- config/commands.rb
|
51
|
-
- config/development.rb
|
52
|
-
- config/users.rb
|
53
65
|
- config/version.rb
|
54
66
|
- lib/origen_ahb.rb
|
55
67
|
- lib/origen_ahb/driver.rb
|
56
|
-
- lib/
|
57
|
-
- lib/
|
68
|
+
- lib/origen_ahb_dev/block.rb
|
69
|
+
- lib/origen_ahb_dev/dut.rb
|
70
|
+
- lib/origen_ahb_dev/dut_controller.rb
|
58
71
|
- lib/tasks/origen_ahb.rake
|
59
|
-
-
|
60
|
-
- templates/web/archive.md.erb
|
61
|
-
- templates/web/contact.md.erb
|
72
|
+
- pattern/example.rb
|
62
73
|
- templates/web/index.md.erb
|
63
74
|
- templates/web/layouts/_basic.html.erb
|
64
75
|
- templates/web/partials/_navbar.html.erb
|
@@ -82,9 +93,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
93
|
version: 1.8.11
|
83
94
|
requirements: []
|
84
95
|
rubyforge_project:
|
85
|
-
rubygems_version: 2.
|
96
|
+
rubygems_version: 2.6.2
|
86
97
|
signing_key:
|
87
98
|
specification_version: 4
|
88
99
|
summary: Protocol layer for AHB protocol (AMBA AHB-lite)
|
89
100
|
test_files: []
|
90
|
-
has_rdoc:
|
data/config/development.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
# This file is similar to environment.rb and will be loaded
|
2
|
-
# automatically at the start of each invocation of RGen.
|
3
|
-
#
|
4
|
-
# However the major difference is that it will not be loaded
|
5
|
-
# if the application is imported by a 3rd party app - in that
|
6
|
-
# case only environment.rb is loaded.
|
7
|
-
#
|
8
|
-
# Therefore this file should be used to load anything you need
|
9
|
-
# to setup a development environment for this app, normally
|
10
|
-
# this would be used to load some dummy classes to instantiate
|
11
|
-
# your objects so that they can be tested and/or interacted with
|
12
|
-
# in the console.
|
data/config/users.rb
DELETED
@@ -1,29 +0,0 @@
|
|
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 "rgen rc tag" command, 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 RGen
|
12
|
-
module Users
|
13
|
-
def users
|
14
|
-
@users ||= [
|
15
|
-
|
16
|
-
# Admins - Notified on every tag
|
17
|
-
User.new("Chris P Nappi", "ra5809", :admin),
|
18
|
-
|
19
|
-
# Users - Notified on official release tags only
|
20
|
-
#User.new("Stephen McGinty", "r49409"),
|
21
|
-
# The r-number attribute can be anything that can be prefixed to an
|
22
|
-
# @freescale.com email address, so you can add mailing list references
|
23
|
-
# as well like this:
|
24
|
-
#User.new("RGen Users", "rgen"), # The RGen mailing list
|
25
|
-
|
26
|
-
]
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/lib/origen_ahb/interface.rb
DELETED
data/lib/origen_ahb/top_level.rb
DELETED
data/program/prb1.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
% render "layouts/basic.html", tab: :archive do
|
2
|
-
|
3
|
-
## Archive
|
4
|
-
|
5
|
-
Documentation from previous releases is available via the links below:
|
6
|
-
|
7
|
-
% RGen.app.versions.reverse_each do |version|
|
8
|
-
* [<%= version %>](<%= RGen.app.config.web_domain %>/<%= version.gsub(".", "_") %>)
|
9
|
-
% end
|
10
|
-
|
11
|
-
% end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
% render "layouts/basic.html", tab: :contact do
|
2
|
-
|
3
|
-
## Contact Us
|
4
|
-
|
5
|
-
The following engineers can be contacted about this application:
|
6
|
-
|
7
|
-
% RGen.app.developers.each do |user|
|
8
|
-
* [<%= user.name %>](http://freeshare.freescale.net:2222/my/Person.aspx?accountname=fsl\<%= user.r_number %>)
|
9
|
-
% end
|
10
|
-
|
11
|
-
%# An example of how to manually write a more detailed contact page:
|
12
|
-
%#Please use PDM For any bug reports or change/feature requests:
|
13
|
-
%#
|
14
|
-
%#* [C90TFS_NVM_tester on PDM](http://designpdm.freescale.net/Agile/PLMServlet?fromPCClient=true&module=PartFamilyHandler&requestUrl=module%3DPartFamilyHandler%26opcode%3DdisplayObject%26classid%3D2000004409%26objid%3D17718323%26tabid%3D2%26)
|
15
|
-
%#
|
16
|
-
%#For test related issues you can contact:
|
17
|
-
%#
|
18
|
-
%#* [Stephen McGinty](http://freeshare.freescale.net:2222/my/Person.aspx?accountname=fsl\r49409)
|
19
|
-
%#* [Thao Huynh](http://freeshare.freescale.net:2222/my/Person.aspx?accountname=fsl\R6AANF)
|
20
|
-
%#
|
21
|
-
%#For product/yield issues contact:
|
22
|
-
%#
|
23
|
-
%#* [Andrew Hardell](http://freeshare.freescale.net:2222/my/Person.aspx?accountname=fsl\R12635)
|
24
|
-
%#* [Eddie Lepore](http://freeshare.freescale.net:2222/my/Person.aspx?accountname=fsl\B06626)
|
25
|
-
%#
|
26
|
-
%#The manager of this project is:
|
27
|
-
%#
|
28
|
-
%#* [Wendy Malloch](http://freeshare.freescale.net:2222/my/Person.aspx?accountname=fsl\TTZ231)
|
29
|
-
%#
|
30
|
-
%#
|
31
|
-
%#Finally if you are not sure who to contact, or if your question may have device/reliability
|
32
|
-
%#implications, then you can use the Split Gate Flash Test and Reliability mailing list:
|
33
|
-
%#
|
34
|
-
%#* [Email SGFTANDR](mailto:SGFTANDR@freescale.com)
|
35
|
-
|
36
|
-
% end
|