cross_origen 0.7.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -32,8 +32,8 @@ spec.add_runtime_dependency "<%= Origen.app.name %>", ">= <%= Origen.app.version
32
32
  Currently the following formats are supported:
33
33
 
34
34
  * IP-XACT - Import and Export registers and hierarchy
35
+ * CMSIS-SVD - Import registers and hierarchy
35
36
  * RALF (Synopsys format) - Export registers
36
- * Origen - Export registers and hierarchy
37
37
 
38
38
  See the [examples](<%= path "examples" %>) for format specific documentation, but
39
39
  most formats should follow this basic structure...
@@ -41,17 +41,17 @@ most formats should follow this basic structure...
41
41
  #### Data Import
42
42
 
43
43
  When the <code>CrossOrigen</code> module is included in a class it gets access
44
- to an <code>cr_import</code> method.
44
+ to a <code>cr_import</code> method.
45
45
  This will automatically detect the type of the given file and select the appropriate
46
46
  import rules.
47
47
 
48
48
  The file to be imported must exist locally or it can be pulled automatically from
49
- a 3rd party respository in which case the file will be fetched the first time Origen
49
+ a 3rd party repository in which case the file will be fetched the first time Origen
50
50
  is invoked and then cached locally for future invocations.
51
51
  Supported repositories are shown in the example below.
52
52
 
53
53
  ~~~ruby
54
- class D_IP_ANA_TEST_ANNEX_SYN
54
+ class MyDevice
55
55
 
56
56
  include CrossOrigen
57
57
 
@@ -61,14 +61,31 @@ class D_IP_ANA_TEST_ANNEX_SYN
61
61
  # Import from Design Sync
62
62
  cr_import(vault: "sync://sync-15040:15040/Projects/nvm_c90tfsn2w/ftf2/rtl_v/kx2_4m/.regs", version: "ftf2_kx2_4096k2_256_128k_64_4k.00.00.01.00")
63
63
  end
64
-
65
64
  end
66
65
  ~~~
67
66
 
68
- The plugin will add attribute getter and setter methods to the top-level object and to registers and bits
69
- to contain any metadata information which does not have a direct equivalent within Origen. Generally
70
- the name given to such data will be the lower cased and underscored (following std Ruby
71
- conventions) version of the attribute name.
67
+ The given file(s) will be parsed the first time the model is instantiated, which could take some time
68
+ depending on the amount of data being imported.
69
+
70
+ During the import process, the data from the files will be converted to Origen native format and stored
71
+ to the application's `vendor` directory. You should check these generated files into your revision control
72
+ system, although you should refrain from modifying them by hand since edits will be lost if the import
73
+ process is repeated in future.
74
+
75
+ On subsequent model instantiations, the `cr_import` method will recognize that the data has already been
76
+ imported and it will load directly from the `vendor` dir. Generally speaking, this will make the model
77
+ instantiation time instant, regardless of how much data was originally imported.
78
+
79
+ If you obtain a new version of the 3rd party source file, it can be re-imported by passing a
80
+ `refresh` option to `cr_import`:
81
+
82
+ ~~~ruby
83
+ cr_import(path: "#{Origen.root}/imports/test-annex-Block-registers.xml", refresh: true)
84
+ ~~~
85
+
86
+ Or, a global refresh (meaning every `cr_import` that is encountered with a given Origen command) can be
87
+ invoked by passing the `--refresh` option to any Origen command which will instantiate the model you
88
+ wish to refresh.
72
89
 
73
90
  #### Data Export
74
91
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cross_origen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 1.0.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: 2017-06-06 00:00:00.000000000 Z
11
+ date: 2018-03-16 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.2'
19
+ version: '0.32'
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.2'
26
+ version: '0.32'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sanitize
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -47,22 +47,18 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - bin/fix_my_workspace
49
49
  - config/application.rb
50
+ - config/boot.rb
50
51
  - config/commands.rb
51
- - config/development.rb
52
- - config/environment.rb
53
52
  - config/shared_commands.rb
54
- - config/users.rb
55
53
  - config/version.rb
56
54
  - lib/cross_origen.rb
57
55
  - lib/cross_origen/cmsis_svd.rb
58
- - lib/cross_origen/commands/import.rb
59
56
  - lib/cross_origen/design_sync.rb
60
57
  - lib/cross_origen/headers.rb
61
58
  - lib/cross_origen/ip_xact.rb
62
- - lib/cross_origen/origen_format.rb
63
59
  - lib/cross_origen/ralf.rb
64
- - lib/cross_origen/test/dut.rb
65
60
  - lib/cross_origen/xml_doc.rb
61
+ - lib/cross_origen_dev/dut.rb
66
62
  - templates/headers/default.h.erb
67
63
  - templates/ralf/_register.ralf.erb
68
64
  - templates/ralf/default.ralf.erb
@@ -91,7 +87,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
87
  requirements:
92
88
  - - ">="
93
89
  - !ruby/object:Gem::Version
94
- version: 1.9.3
90
+ version: '2'
95
91
  required_rubygems_version: !ruby/object:Gem::Requirement
96
92
  requirements:
97
93
  - - ">="
@@ -99,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
95
  version: 1.8.11
100
96
  requirements: []
101
97
  rubyforge_project:
102
- rubygems_version: 2.6.7
98
+ rubygems_version: 2.6.8
103
99
  signing_key:
104
100
  specification_version: 4
105
101
  summary: Translators for importing and exporting Origen data to/from 3rd party formats
@@ -1,36 +0,0 @@
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
- # This says load the file "lib/pioneer.rb" the first time anyone makes a
15
- # reference to the class name 'Pioneer'.
16
- #autoload :Pioneer, "pioneer"
17
- # This is generally preferable to using require which will load the file
18
- # regardless of whether it is needed by the current target or not:
19
- #require "pioneer"
20
- # Sometimes you have to use require however:-
21
- # 1. When defining a test program interface:
22
- #require "interfaces/j750"
23
- # 2. If you want to extend a class defined by an imported application, in
24
- # this case your must use required and supply a full path (to distinguish
25
- # it from the one in the parent application):
26
- #require "#{Origen.root}/c90_top_level/p2"
27
- module CrossOrigen
28
- autoload :XMLDoc, "cross_origen/xml_doc"
29
- autoload :Headers, "cross_origen/headers"
30
- autoload :Ralf, "cross_origen/ralf"
31
- autoload :IpXact, "cross_origen/ip_xact"
32
- autoload :DesignSync, "cross_origen/design_sync"
33
- autoload :OrigenFormat, "cross_origen/origen_format"
34
- autoload :CMSISSVD, "cross_origen/cmsis_svd"
35
- end
36
- require "cross_origen"
data/config/users.rb DELETED
@@ -1,18 +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 "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
- end
17
- end
18
- end
@@ -1,32 +0,0 @@
1
- options = {}
2
- opt_parser = OptionParser.new do |opts|
3
- opts.banner = <<-END
4
- Usage: origen cr:import FILE [options]
5
-
6
- Import the given file into Origen format.
7
- This will output a Ruby module that can then be included in an Origen model
8
- to add the contained registers, sub-blocks, etc.
9
-
10
- END
11
- opts.on('-o', '--output PATH', String, 'Override the default output file') { |t| options[:output] = t }
12
- end
13
- opt_parser.parse! ARGV
14
-
15
- file = ARGV[0]
16
- unless file
17
- puts 'You must supply a file to import!'
18
- exit
19
- end
20
-
21
- unless File.exist?(file)
22
- puts 'That file does not exist!'
23
- exit
24
- end
25
-
26
- snippet = IO.read(file, 2000) # Read first 2000 characters
27
- case snippet
28
- when /CMSIS-SVD.xsd/
29
- CrossOrigen::CMSISSVD.new(nil).import(file, options)
30
- else
31
- puts 'Unknown file format!'
32
- end