rggen-systemverilog 0.22.0 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 04ab89d77ae7cb44157307093ab87d047953a8fdb1c39035447b87c56de6179e
4
- data.tar.gz: 84abe81c5b8ae34ec9bf28fbf1c35e8b1ad79cebb40a5835a1ceedac1aaaac33
3
+ metadata.gz: f00d208ebd7482486fc99dd9b7fcf787ca74b668c5a4fbbe60879cc6f497607d
4
+ data.tar.gz: af34bfc503ddaba18d7e696c14cef77f8979f53aaf05d7b6cd5a2f570dedfa33
5
5
  SHA512:
6
- metadata.gz: 97a47dd4eedce5d59607f41bfcea72c176cc1c6e2e7a04656ba387baa652ee3413a3b4c669c906c343907f97565cc7e10c194a66cc19dcc40830a00ec184b238
7
- data.tar.gz: a12ca1343735fdf819bdedf9d8a122015793177cd09d8c41764e54797c7972eadcbb4e7cc83a1429b21daddd476cf11b18d140b925338a96e763b33cf5a68117
6
+ metadata.gz: 65ab0f8c1a60dd50e7d0731491c396b9f4531ec4c1b9d1ed7d8ecebac4d8e57e4e8367763be85660d0ddb373f38371cf4ea373130514763c00e2cf6432928523
7
+ data.tar.gz: 4aafce8907c363d82c219d1aae0dbb5d43681d1fc05726e9e877a6b1ee894cbe1d63ddf5c295e152d8cdc1cd9cb2b5154fa470dbce81f75b65211dba8b635e86
@@ -13,20 +13,21 @@ module RgGen
13
13
  FEATURES = [
14
14
  'rtl/bit_field/sv_rtl_top',
15
15
  'rtl/bit_field/type',
16
- 'rtl/bit_field/type/rc_w0c_w1c',
16
+ 'rtl/bit_field/type/rc_w0c_w1c_wc_woc',
17
17
  'rtl/bit_field/type/reserved',
18
18
  'rtl/bit_field/type/ro',
19
19
  'rtl/bit_field/type/rof',
20
- 'rtl/bit_field/type/rs_w0s_w1s',
20
+ 'rtl/bit_field/type/rs_w0s_w1s_ws_wos',
21
21
  'rtl/bit_field/type/rw_w1_wo_wo1',
22
22
  'rtl/bit_field/type/rwc',
23
23
  'rtl/bit_field/type/rwe',
24
24
  'rtl/bit_field/type/rwl',
25
25
  'rtl/bit_field/type/rws',
26
- 'rtl/bit_field/type/w0crs_w1crs',
27
- 'rtl/bit_field/type/w0src_w1src',
26
+ 'rtl/bit_field/type/w0crs_w1crs_wcrs',
27
+ 'rtl/bit_field/type/w0src_w1src_wsrc',
28
28
  'rtl/bit_field/type/w0t_w1t',
29
29
  'rtl/bit_field/type/w0trg_w1trg',
30
+ 'rtl/bit_field/type/wrc_wrs',
30
31
  'rtl/global/array_port_format',
31
32
  'rtl/global/fold_sv_interface_port',
32
33
  'rtl/register/sv_rtl_top',
@@ -1,6 +1,7 @@
1
1
  <%= module_name %> #(
2
- <% if [:w0c, :w1c].include?(bit_field.type) %>
2
+ <% if bit_field.type != :rc %>
3
3
  .CLEAR_VALUE (<%= clear_value %>),
4
+ .WRITE_ONLY (<%= write_only %>),
4
5
  <% end %>
5
6
  .WIDTH (<%= width %>),
6
7
  .INITIAL_VALUE (<%= initial_value %>)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RgGen.define_list_item_feature(:bit_field, :type, [:rc, :w0c, :w1c]) do
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:rc, :w0c, :w1c, :wc, :woc]) do
4
4
  sv_rtl do
5
5
  build do
6
6
  input :set, {
@@ -24,15 +24,16 @@ RgGen.define_list_item_feature(:bit_field, :type, [:rc, :w0c, :w1c]) do
24
24
  private
25
25
 
26
26
  def module_name
27
- if bit_field.type == :rc
28
- 'rggen_bit_field_rc'
29
- else
30
- 'rggen_bit_field_w01c'
31
- end
27
+ bit_field.type == :rc && 'rggen_bit_field_rc' || 'rggen_bit_field_w01c_wc_woc'
32
28
  end
33
29
 
34
30
  def clear_value
35
- bin({ w0c: 0, w1c: 1 }[bit_field.type], 1)
31
+ value = { w0c: 0b00, w1c: 0b01, wc: 0b10, woc: 0b10 }[bit_field.type]
32
+ bin(value, 2)
33
+ end
34
+
35
+ def write_only
36
+ bit_field.write_only? && 1 || 0
36
37
  end
37
38
 
38
39
  def value_out_unmasked
@@ -1,6 +1,7 @@
1
1
  <%= module_name %> #(
2
- <% if [:w0s, :w1s].include?(bit_field.type) %>
2
+ <% if bit_field.type != :rs %>
3
3
  .SET_VALUE (<%= set_value %>),
4
+ .WRITE_ONLY (<%= write_only %>),
4
5
  <% end %>
5
6
  .WIDTH (<%= width %>),
6
7
  .INITIAL_VALUE (<%= initial_value %>)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RgGen.define_list_item_feature(:bit_field, :type, [:rs, :w0s, :w1s]) do
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:rs, :w0s, :w1s, :ws, :wos]) do
4
4
  sv_rtl do
5
5
  build do
6
6
  input :clear, {
@@ -18,15 +18,16 @@ RgGen.define_list_item_feature(:bit_field, :type, [:rs, :w0s, :w1s]) do
18
18
  private
19
19
 
20
20
  def module_name
21
- if bit_field.type == :rs
22
- 'rggen_bit_field_rs'
23
- else
24
- 'rggen_bit_field_w01s'
25
- end
21
+ bit_field.type == :rs && 'rggen_bit_field_rs' || 'rggen_bit_field_w01s_ws_wos'
26
22
  end
27
23
 
28
24
  def set_value
29
- bin({ w0s: 0, w1s: 1 }[bit_field.type], 1)
25
+ value = { w0s: 0b00, w1s: 0b01, ws: 0b10, wos: 0b10 }[bit_field.type]
26
+ bin(value, 2)
27
+ end
28
+
29
+ def write_only
30
+ bit_field.write_only? && 1 || 0
30
31
  end
31
32
  end
32
33
  end
@@ -1,4 +1,4 @@
1
- rggen_bit_field_w01crs #(
1
+ rggen_bit_field_w01crs_wcrs #(
2
2
  .CLEAR_VALUE (<%= clear_value %>),
3
3
  .WIDTH (<%= width %>),
4
4
  .INITIAL_VALUE (<%= initial_value %>)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RgGen.define_list_item_feature(:bit_field, :type, [:w0crs, :w1crs]) do
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:w0crs, :w1crs, :wcrs]) do
4
4
  sv_rtl do
5
5
  build do
6
6
  output :value_out, {
@@ -14,8 +14,8 @@ RgGen.define_list_item_feature(:bit_field, :type, [:w0crs, :w1crs]) do
14
14
  private
15
15
 
16
16
  def clear_value
17
- value = (bit_field.type == :w0crs && 0) || 1
18
- bin(value, 1)
17
+ value = { w0crs: 0b00, w1crs: 0b01, wcrs: 0b10 }[bit_field.type]
18
+ bin(value, 2)
19
19
  end
20
20
  end
21
21
  end
@@ -1,4 +1,4 @@
1
- rggen_bit_field_w01src #(
1
+ rggen_bit_field_w01src_wsrc #(
2
2
  .SET_VALUE (<%= set_value %>),
3
3
  .WIDTH (<%= width %>),
4
4
  .INITIAL_VALUE (<%= initial_value %>)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RgGen.define_list_item_feature(:bit_field, :type, [:w0src, :w1src]) do
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:w0src, :w1src, :wsrc]) do
4
4
  sv_rtl do
5
5
  build do
6
6
  output :value_out, {
@@ -14,8 +14,8 @@ RgGen.define_list_item_feature(:bit_field, :type, [:w0src, :w1src]) do
14
14
  private
15
15
 
16
16
  def set_value
17
- value = (bit_field.type == :w0src && 0) || 1
18
- bin(value, 1)
17
+ value = { w0src: 0b00, w1src: 0b01, wsrc: 0b10 }[bit_field.type]
18
+ bin(value, 2)
19
19
  end
20
20
  end
21
21
  end
@@ -0,0 +1,9 @@
1
+ rggen_bit_field_<%= bit_field.type %> #(
2
+ .WIDTH (<%= width %>),
3
+ .INITIAL_VALUE (<%= initial_value %>)
4
+ ) u_bit_field (
5
+ .i_clk (<%= clock %>),
6
+ .i_rst_n (<%= reset %>),
7
+ .bit_field_if (<%= bit_field_if %>),
8
+ .o_value (<%= value_out[loop_variables] %>)
9
+ );
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:wrc, :wrs]) do
4
+ sv_rtl do
5
+ build do
6
+ output :value_out, {
7
+ name: "o_#{full_name}", data_type: :logic, width: width,
8
+ array_size: array_size, array_format: array_port_format
9
+ }
10
+ end
11
+
12
+ main_code :bit_field, from_template: true
13
+ end
14
+ end
@@ -19,7 +19,7 @@ RgGen.define_list_item_feature(:register, :type, :indirect) do
19
19
  end
20
20
 
21
21
  def index_width
22
- @index_width ||= index_fields.map(&:width).sum
22
+ @index_width ||= index_fields.sum(&:width)
23
23
  end
24
24
 
25
25
  def index_values
@@ -23,7 +23,7 @@ RgGen.define_simple_feature(:register_block, :sv_rtl_top) do
23
23
  end
24
24
 
25
25
  def total_registers
26
- register_block.files_and_registers.map(&:count).sum
26
+ register_block.files_and_registers.sum(&:count)
27
27
  end
28
28
 
29
29
  private
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module SystemVerilog
5
- VERSION = '0.22.0'
5
+ VERSION = '0.23.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-systemverilog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-17 00:00:00.000000000 Z
11
+ date: 2020-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docile
@@ -103,16 +103,16 @@ files:
103
103
  - lib/rggen/systemverilog/rtl.rb
104
104
  - lib/rggen/systemverilog/rtl/bit_field/sv_rtl_top.rb
105
105
  - lib/rggen/systemverilog/rtl/bit_field/type.rb
106
- - lib/rggen/systemverilog/rtl/bit_field/type/rc_w0c_w1c.erb
107
- - lib/rggen/systemverilog/rtl/bit_field/type/rc_w0c_w1c.rb
106
+ - lib/rggen/systemverilog/rtl/bit_field/type/rc_w0c_w1c_wc_woc.erb
107
+ - lib/rggen/systemverilog/rtl/bit_field/type/rc_w0c_w1c_wc_woc.rb
108
108
  - lib/rggen/systemverilog/rtl/bit_field/type/reserved.erb
109
109
  - lib/rggen/systemverilog/rtl/bit_field/type/reserved.rb
110
110
  - lib/rggen/systemverilog/rtl/bit_field/type/ro.erb
111
111
  - lib/rggen/systemverilog/rtl/bit_field/type/ro.rb
112
112
  - lib/rggen/systemverilog/rtl/bit_field/type/rof.erb
113
113
  - lib/rggen/systemverilog/rtl/bit_field/type/rof.rb
114
- - lib/rggen/systemverilog/rtl/bit_field/type/rs_w0s_w1s.erb
115
- - lib/rggen/systemverilog/rtl/bit_field/type/rs_w0s_w1s.rb
114
+ - lib/rggen/systemverilog/rtl/bit_field/type/rs_w0s_w1s_ws_wos.erb
115
+ - lib/rggen/systemverilog/rtl/bit_field/type/rs_w0s_w1s_ws_wos.rb
116
116
  - lib/rggen/systemverilog/rtl/bit_field/type/rw_w1_wo_wo1.erb
117
117
  - lib/rggen/systemverilog/rtl/bit_field/type/rw_w1_wo_wo1.rb
118
118
  - lib/rggen/systemverilog/rtl/bit_field/type/rwc.erb
@@ -123,14 +123,16 @@ files:
123
123
  - lib/rggen/systemverilog/rtl/bit_field/type/rwl.rb
124
124
  - lib/rggen/systemverilog/rtl/bit_field/type/rws.erb
125
125
  - lib/rggen/systemverilog/rtl/bit_field/type/rws.rb
126
- - lib/rggen/systemverilog/rtl/bit_field/type/w0crs_w1crs.erb
127
- - lib/rggen/systemverilog/rtl/bit_field/type/w0crs_w1crs.rb
128
- - lib/rggen/systemverilog/rtl/bit_field/type/w0src_w1src.erb
129
- - lib/rggen/systemverilog/rtl/bit_field/type/w0src_w1src.rb
126
+ - lib/rggen/systemverilog/rtl/bit_field/type/w0crs_w1crs_wcrs.erb
127
+ - lib/rggen/systemverilog/rtl/bit_field/type/w0crs_w1crs_wcrs.rb
128
+ - lib/rggen/systemverilog/rtl/bit_field/type/w0src_w1src_wsrc.erb
129
+ - lib/rggen/systemverilog/rtl/bit_field/type/w0src_w1src_wsrc.rb
130
130
  - lib/rggen/systemverilog/rtl/bit_field/type/w0t_w1t.erb
131
131
  - lib/rggen/systemverilog/rtl/bit_field/type/w0t_w1t.rb
132
132
  - lib/rggen/systemverilog/rtl/bit_field/type/w0trg_w1trg.erb
133
133
  - lib/rggen/systemverilog/rtl/bit_field/type/w0trg_w1trg.rb
134
+ - lib/rggen/systemverilog/rtl/bit_field/type/wrc_wrs.erb
135
+ - lib/rggen/systemverilog/rtl/bit_field/type/wrc_wrs.rb
134
136
  - lib/rggen/systemverilog/rtl/feature.rb
135
137
  - lib/rggen/systemverilog/rtl/global/array_port_format.rb
136
138
  - lib/rggen/systemverilog/rtl/global/fold_sv_interface_port.rb
@@ -179,5 +181,5 @@ requirements: []
179
181
  rubygems_version: 3.1.2
180
182
  signing_key:
181
183
  specification_version: 4
182
- summary: rggen-systemverilog-0.22.0
184
+ summary: rggen-systemverilog-0.23.0
183
185
  test_files: []