origen_ahb 0.2.0.pre6 → 0.2.0.pre8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|