rggen-verilog 0.3.2 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '06670669d48946bead954241343d1a066259235a35831b208d7f83b2609dbb23'
4
- data.tar.gz: ccd8a5b93bcbf91d46f2c37187e4c85969f2985c4ab86d7b95b9c471c452f377
3
+ metadata.gz: 8a67c663d19ff7961ec27d7cd6ab19cedfe3fac30fa63b979ce49619a294f3d5
4
+ data.tar.gz: c4bdb45657ce7ab10bb5d5caa414f3e9159be3a0fc0b69f6206d06441d82aee3
5
5
  SHA512:
6
- metadata.gz: 72671fa06f46bebf4ec983f872c713a48b0b49b56582bab0a8a3779208f321cfcd2a1c9262a0600276e67f40d5946825805ca617c7f8b8810e7ed8f7a4faaf22
7
- data.tar.gz: e61413d89d74a72316ecbb66597cab18ded435dc4819d68fcbd5a2b9f9b11caa978a85c8112ef66a5b338c26874a7aec1452413523013b5f4d323ceb1f5eecaf
6
+ metadata.gz: 475653aadd4aa3f2fd7ba1ee6c0a8ff5630c8c0269b8a8107c765250f3f878af3f8297fbaec8b8ea6cf50803f89a01ccf23db587b78340e83bcf9047f302ccfe
7
+ data.tar.gz: 5cbe51368dccafd60e8d2a68c82293a54a83b88ec426966c537348e553d86ea8e4aa6e50ab4dd3ad8bbf1856b339030b0b9ed317f7c1615d3caa7e2a96e2491c
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2020-2021 Taichi Ishitani
3
+ Copyright (c) 2020-2022 Taichi Ishitani
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -67,7 +67,7 @@ Feedbacks, bus reports, questions and etc. are welcome! You can post them bu usi
67
67
 
68
68
  ## Copyright & License
69
69
 
70
- Copyright © 2020-2021 Taichi Ishitani. RgGen::Verilog is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
70
+ Copyright © 2020-2022 Taichi Ishitani. RgGen::Verilog is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
71
71
 
72
72
  ## Code of Conduct
73
73
 
@@ -13,6 +13,8 @@ rggen_bit_field #(
13
13
  .i_sw_write_data (<%= bit_field_write_data %>),
14
14
  .o_sw_read_data (<%= bit_field_read_data %>),
15
15
  .o_sw_value (<%= bit_field_value %>),
16
+ .o_write_trigger (),
17
+ .o_read_trigger (),
16
18
  .i_hw_write_enable (1'b0),
17
19
  .i_hw_write_data (<%= fill_0(width) %>),
18
20
  .i_hw_set (<%= set[loop_variables] %>),
@@ -1,9 +1,11 @@
1
1
  rggen_bit_field #(
2
- .WIDTH (<%= width %>),
3
- .STORAGE (0)
2
+ .WIDTH (<%= width %>),
3
+ .STORAGE (0),
4
+ .EXTERNAL_READ_DATA (1),
5
+ .TRIGGER (<%= trigger %>)
4
6
  ) u_bit_field (
5
- .i_clk (1'b0),
6
- .i_rst_n (1'b0),
7
+ .i_clk (<%= clock %>),
8
+ .i_rst_n (<%= reset %>),
7
9
  .i_sw_valid (<%= bit_field_valid %>),
8
10
  .i_sw_read_mask (<%= bit_field_read_mask %>),
9
11
  .i_sw_write_enable (1'b0),
@@ -11,6 +13,8 @@ rggen_bit_field #(
11
13
  .i_sw_write_data (<%= bit_field_write_data %>),
12
14
  .o_sw_read_data (<%= bit_field_read_data %>),
13
15
  .o_sw_value (<%= bit_field_value %>),
16
+ .o_write_trigger (),
17
+ .o_read_trigger (<%= read_trigger_signal %>),
14
18
  .i_hw_write_enable (1'b0),
15
19
  .i_hw_write_data (<%= fill_0(width) %>),
16
20
  .i_hw_set (<%= fill_0(width) %>),
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:ro, :rotrg]) do
4
+ verilog do
5
+ build do
6
+ unless bit_field.reference?
7
+ input :value_in, {
8
+ name: "i_#{full_name}", width: width, array_size: array_size
9
+ }
10
+ end
11
+ if rotrg?
12
+ output :read_trigger, {
13
+ name: "o_#{full_name}_read_trigger", width: 1, array_size: array_size
14
+ }
15
+ end
16
+ end
17
+
18
+ main_code :bit_field, from_template: true
19
+
20
+ private
21
+
22
+ def rotrg?
23
+ bit_field.type == :rotrg
24
+ end
25
+
26
+ def trigger
27
+ rotrg? && 1 || 0
28
+ end
29
+
30
+ def read_trigger_signal
31
+ rotrg? && read_trigger[loop_variables] || nil
32
+ end
33
+
34
+ def reference_or_value_in
35
+ reference_bit_field || value_in[loop_variables]
36
+ end
37
+ end
38
+ end
@@ -1,6 +1,7 @@
1
1
  rggen_bit_field #(
2
- .WIDTH (<%= width %>),
3
- .STORAGE (0)
2
+ .WIDTH (<%= width %>),
3
+ .STORAGE (0),
4
+ .EXTERNAL_READ_DATA (1)
4
5
  ) u_bit_field (
5
6
  .i_clk (1'b0),
6
7
  .i_rst_n (1'b0),
@@ -11,6 +12,8 @@ rggen_bit_field #(
11
12
  .i_sw_write_data (<%= bit_field_write_data %>),
12
13
  .o_sw_read_data (<%= bit_field_read_data %>),
13
14
  .o_sw_value (<%= bit_field_value %>),
15
+ .o_write_trigger (),
16
+ .o_read_trigger (),
14
17
  .i_hw_write_enable (1'b0),
15
18
  .i_hw_write_data (<%= fill_0(width) %>),
16
19
  .i_hw_set (<%= fill_0(width) %>),
@@ -0,0 +1,26 @@
1
+ rggen_bit_field #(
2
+ .WIDTH (<%= width %>),
3
+ .INITIAL_VALUE (<%= initial_value %>),
4
+ .EXTERNAL_READ_DATA (1),
5
+ .TRIGGER (<%= trigger %>)
6
+ ) u_bit_field (
7
+ .i_clk (<%= clock %>),
8
+ .i_rst_n (<%= reset %>),
9
+ .i_sw_valid (<%= bit_field_valid %>),
10
+ .i_sw_read_mask (<%= bit_field_read_mask %>),
11
+ .i_sw_write_enable (1'b1),
12
+ .i_sw_write_mask (<%= bit_field_write_mask %>),
13
+ .i_sw_write_data (<%= bit_field_write_data %>),
14
+ .o_sw_read_data (<%= bit_field_read_data %>),
15
+ .o_sw_value (<%= bit_field_value %>),
16
+ .o_write_trigger (<%= write_trigger_signal %>),
17
+ .o_read_trigger (<%= read_trigger_signal %>),
18
+ .i_hw_write_enable (1'b0),
19
+ .i_hw_write_data (<%= fill_0(width) %>),
20
+ .i_hw_set (<%= fill_0(width) %>),
21
+ .i_hw_clear (<%= fill_0(width) %>),
22
+ .i_value (<%= reference_or_value_in %>),
23
+ .i_mask (<%= fill_1(width) %>),
24
+ .o_value (<%= value_out[loop_variables] %>),
25
+ .o_value_unmasked ()
26
+ );
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:rowo, :rowotrg]) do
4
+ verilog do
5
+ build do
6
+ output :value_out, {
7
+ name: "o_#{full_name}", width: width, array_size: array_size
8
+ }
9
+ unless bit_field.reference?
10
+ input :value_in, {
11
+ name: "i_#{full_name}", width: width, array_size: array_size
12
+ }
13
+ end
14
+ if rowotrg?
15
+ output :write_trigger, {
16
+ name: "o_#{full_name}_write_trigger", width: 1, array_size: array_size
17
+ }
18
+ output :read_trigger, {
19
+ name: "o_#{full_name}_read_trigger", width: 1, array_size: array_size
20
+ }
21
+ end
22
+ end
23
+
24
+ main_code :bit_field, from_template: true
25
+
26
+ private
27
+
28
+ def rowotrg?
29
+ bit_field.type == :rowotrg
30
+ end
31
+
32
+ def trigger
33
+ rowotrg? && 1 || 0
34
+ end
35
+
36
+ def write_trigger_signal
37
+ rowotrg? && write_trigger[loop_variables] || nil
38
+ end
39
+
40
+ def read_trigger_signal
41
+ rowotrg? && read_trigger[loop_variables] || nil
42
+ end
43
+
44
+ def reference_or_value_in
45
+ reference_bit_field || value_in[loop_variables]
46
+ end
47
+ end
48
+ end
@@ -13,6 +13,8 @@ rggen_bit_field #(
13
13
  .i_sw_write_data (<%= bit_field_write_data %>),
14
14
  .o_sw_read_data (<%= bit_field_read_data %>),
15
15
  .o_sw_value (<%= bit_field_value %>),
16
+ .o_write_trigger (),
17
+ .o_read_trigger (),
16
18
  .i_hw_write_enable (1'b0),
17
19
  .i_hw_write_data (<%= fill_0(width) %>),
18
20
  .i_hw_set (<%= fill_0(width) %>),
@@ -1,8 +1,8 @@
1
1
  rggen_bit_field #(
2
2
  .WIDTH (<%= width %>),
3
3
  .INITIAL_VALUE (<%= initial_value %>),
4
- .SW_READ_ACTION (<%= read_action %>),
5
- .SW_WRITE_ONCE (<%= write_once %>)
4
+ .SW_WRITE_ONCE (<%= write_once %>),
5
+ .TRIGGER (<%= trigger %>)
6
6
  ) u_bit_field (
7
7
  .i_clk (<%= clock %>),
8
8
  .i_rst_n (<%= reset %>),
@@ -13,6 +13,8 @@ rggen_bit_field #(
13
13
  .i_sw_write_data (<%= bit_field_write_data %>),
14
14
  .o_sw_read_data (<%= bit_field_read_data %>),
15
15
  .o_sw_value (<%= bit_field_value %>),
16
+ .o_write_trigger (<%= write_trigger_signal %>),
17
+ .o_read_trigger (<%= read_trigger_signal %>),
16
18
  .i_hw_write_enable (1'b0),
17
19
  .i_hw_write_data (<%= fill_0(width) %>),
18
20
  .i_hw_set (<%= fill_0(width) %>),
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:rw, :rwtrg, :w1]) do
4
+ verilog do
5
+ build do
6
+ output :value_out, {
7
+ name: "o_#{full_name}", width: width, array_size: array_size
8
+ }
9
+ if rwtrg?
10
+ output :write_trigger, {
11
+ name: "o_#{full_name}_write_trigger", width: 1, array_size: array_size
12
+ }
13
+ output :read_trigger, {
14
+ name: "o_#{full_name}_read_trigger", width: 1, array_size: array_size
15
+ }
16
+ end
17
+ end
18
+
19
+ main_code :bit_field, from_template: true
20
+
21
+ private
22
+
23
+ def rwtrg?
24
+ bit_field.type == :rwtrg
25
+ end
26
+
27
+ def write_once
28
+ bit_field.type == :w1 && 1 || 0
29
+ end
30
+
31
+ def trigger
32
+ rwtrg? && 1 || 0
33
+ end
34
+
35
+ def write_trigger_signal
36
+ rwtrg? && write_trigger[loop_variables] || nil
37
+ end
38
+
39
+ def read_trigger_signal
40
+ rwtrg? && read_trigger[loop_variables] || nil
41
+ end
42
+ end
43
+ end
@@ -12,6 +12,8 @@ rggen_bit_field #(
12
12
  .i_sw_write_data (<%= bit_field_write_data %>),
13
13
  .o_sw_read_data (<%= bit_field_read_data %>),
14
14
  .o_sw_value (<%= bit_field_value %>),
15
+ .o_write_trigger (),
16
+ .o_read_trigger (),
15
17
  .i_hw_write_enable (1'b0),
16
18
  .i_hw_write_data (<%= fill_0(width) %>),
17
19
  .i_hw_set (<%= fill_0(width) %>),
@@ -12,6 +12,8 @@ rggen_bit_field #(
12
12
  .i_sw_write_data (<%= bit_field_write_data %>),
13
13
  .o_sw_read_data (<%= bit_field_read_data %>),
14
14
  .o_sw_value (<%= bit_field_value %>),
15
+ .o_write_trigger (),
16
+ .o_read_trigger (),
15
17
  .i_hw_write_enable (1'b0),
16
18
  .i_hw_write_data (<%= fill_0(width) %>),
17
19
  .i_hw_set (<%= fill_0(width) %>),
@@ -11,6 +11,8 @@ rggen_bit_field #(
11
11
  .i_sw_write_data (<%= bit_field_write_data %>),
12
12
  .o_sw_read_data (<%= bit_field_read_data %>),
13
13
  .o_sw_value (<%= bit_field_value %>),
14
+ .o_write_trigger (),
15
+ .o_read_trigger (),
14
16
  .i_hw_write_enable (<%= set_signal %>),
15
17
  .i_hw_write_data (<%= value_in[loop_variables] %>),
16
18
  .i_hw_set (<%= fill_0(width) %>),
@@ -13,6 +13,8 @@ rggen_bit_field #(
13
13
  .i_sw_write_data (<%= bit_field_write_data %>),
14
14
  .o_sw_read_data (<%= bit_field_read_data %>),
15
15
  .o_sw_value (<%= bit_field_value %>),
16
+ .o_write_trigger (),
17
+ .o_read_trigger (),
16
18
  .i_hw_write_enable (1'b0),
17
19
  .i_hw_write_data (<%= fill_0(width) %>),
18
20
  .i_hw_set (<%= fill_0(width) %>),
@@ -12,6 +12,8 @@ rggen_bit_field #(
12
12
  .i_sw_write_data (<%= bit_field_write_data %>),
13
13
  .o_sw_read_data (<%= bit_field_read_data %>),
14
14
  .o_sw_value (<%= bit_field_value %>),
15
+ .o_write_trigger (),
16
+ .o_read_trigger (),
15
17
  .i_hw_write_enable (1'b0),
16
18
  .i_hw_write_data (<%= fill_0(width) %>),
17
19
  .i_hw_set (<%= fill_0(width) %>),
@@ -0,0 +1,27 @@
1
+ rggen_bit_field #(
2
+ .WIDTH (<%= width %>),
3
+ .INITIAL_VALUE (<%= initial_value %>),
4
+ .SW_READ_ACTION (`RGGEN_READ_NONE),
5
+ .SW_WRITE_ONCE (<%= write_once %>),
6
+ .TRIGGER (<%= trigger %>)
7
+ ) u_bit_field (
8
+ .i_clk (<%= clock %>),
9
+ .i_rst_n (<%= reset %>),
10
+ .i_sw_valid (<%= bit_field_valid %>),
11
+ .i_sw_read_mask (<%= bit_field_read_mask %>),
12
+ .i_sw_write_enable (1'b1),
13
+ .i_sw_write_mask (<%= bit_field_write_mask %>),
14
+ .i_sw_write_data (<%= bit_field_write_data %>),
15
+ .o_sw_read_data (<%= bit_field_read_data %>),
16
+ .o_sw_value (<%= bit_field_value %>),
17
+ .o_write_trigger (<%= write_trigger_signal %>),
18
+ .o_read_trigger (),
19
+ .i_hw_write_enable (1'b0),
20
+ .i_hw_write_data (<%= fill_0(width) %>),
21
+ .i_hw_set (<%= fill_0(width) %>),
22
+ .i_hw_clear (<%= fill_0(width) %>),
23
+ .i_value (<%= fill_0(width) %>),
24
+ .i_mask (<%= fill_1(width) %>),
25
+ .o_value (<%= value_out[loop_variables] %>),
26
+ .o_value_unmasked ()
27
+ );
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:wo, :wo1, :wotrg]) do
4
+ verilog do
5
+ build do
6
+ output :value_out, {
7
+ name: "o_#{full_name}", width: width, array_size: array_size
8
+ }
9
+ if wotrg?
10
+ output :write_trigger, {
11
+ name: "o_#{full_name}_write_trigger", width: 1, array_size: array_size
12
+ }
13
+ end
14
+ end
15
+
16
+ main_code :bit_field, from_template: true
17
+
18
+ private
19
+
20
+ def wotrg?
21
+ bit_field.type == :wotrg
22
+ end
23
+
24
+ def write_once
25
+ bit_field.type == :wo1 && 1 || 0
26
+ end
27
+
28
+ def trigger
29
+ wotrg? && 1 || 0
30
+ end
31
+
32
+ def write_trigger_signal
33
+ wotrg? && write_trigger[loop_variables] || nil
34
+ end
35
+ end
36
+ end
@@ -12,6 +12,8 @@ rggen_bit_field #(
12
12
  .i_sw_write_data (<%= bit_field_write_data %>),
13
13
  .o_sw_read_data (<%= bit_field_read_data %>),
14
14
  .o_sw_value (<%= bit_field_value %>),
15
+ .o_write_trigger (),
16
+ .o_read_trigger (),
15
17
  .i_hw_write_enable (1'b0),
16
18
  .i_hw_write_data (<%= fill_0(width) %>),
17
19
  .i_hw_set (<%= fill_0(width) %>),
@@ -0,0 +1,35 @@
1
+ rggen_wishbone_adapter #(
2
+ .ADDRESS_WIDTH (<%= address_width %>),
3
+ .LOCAL_ADDRESS_WIDTH (<%= local_address_width %>),
4
+ .BUS_WIDTH (<%= bus_width %>),
5
+ .REGISTERS (<%= total_registers %>),
6
+ .PRE_DECODE (<%= pre_decode %>),
7
+ .BASE_ADDRESS (<%= base_address %>),
8
+ .BYTE_SIZE (<%= byte_size %>),
9
+ .ERROR_STATUS (<%= error_status %>),
10
+ .DEFAULT_READ_DATA (<%= default_read_data %>),
11
+ .USE_STALL (<%= use_stall %>)
12
+ ) u_adapter (
13
+ .i_clk (<%= register_block.clock %>),
14
+ .i_rst_n (<%= register_block.reset %>),
15
+ .i_wb_cyc (<%= wb_cyc %>),
16
+ .i_wb_stb (<%= wb_stb %>),
17
+ .o_wb_stall (<%= wb_stall %>),
18
+ .i_wb_adr (<%= wb_adr %>),
19
+ .i_wb_we (<%= wb_we %>),
20
+ .i_wb_dat (<%= wb_dat_i %>),
21
+ .i_wb_sel (<%= wb_sel %>),
22
+ .o_wb_ack (<%= wb_ack %>),
23
+ .o_wb_err (<%= wb_err %>),
24
+ .o_wb_rty (<%= wb_rty %>),
25
+ .o_wb_dat (<%= wb_dat_o %>),
26
+ .o_register_valid (<%= register_block.register_valid %>),
27
+ .o_register_access (<%= register_block.register_access %>),
28
+ .o_register_address (<%= register_block.register_address %>),
29
+ .o_register_write_data (<%= register_block.register_write_data %>),
30
+ .o_register_strobe (<%= register_block.register_strobe %>),
31
+ .i_register_active (<%= register_block.register_active %>),
32
+ .i_register_ready (<%= register_block.register_ready %>),
33
+ .i_register_status (<%= register_block.register_status %>),
34
+ .i_register_read_data (<%= register_block.register_read_data %>)
35
+ );
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:register_block, :protocol, :wishbone) do
4
+ verilog do
5
+ build do
6
+ parameter :use_stall, {
7
+ name: 'USE_STALL', default: 1
8
+ }
9
+
10
+ input :wb_cyc, {
11
+ name: 'i_wb_cyc', width: 1
12
+ }
13
+ input :wb_stb, {
14
+ name: 'i_wb_stb', width: 1
15
+ }
16
+ output :wb_stall, {
17
+ name: 'o_wb_stall', width: 1
18
+ }
19
+ input :wb_adr, {
20
+ name: 'i_wb_adr', width: address_width
21
+ }
22
+ input :wb_we, {
23
+ name: 'i_wb_we', width: 1
24
+ }
25
+ input :wb_dat_i, {
26
+ name: 'i_wb_dat', width: bus_width
27
+ }
28
+ input :wb_sel, {
29
+ name: 'i_wb_sel', width: bus_width / 8
30
+ }
31
+ output :wb_ack, {
32
+ name: 'o_wb_ack', width: 1
33
+ }
34
+ output :wb_err, {
35
+ name: 'o_wb_err', width: 1
36
+ }
37
+ output :wb_rty, {
38
+ name: 'o_wb_rty', width: 1
39
+ }
40
+ output :wb_dat_o, {
41
+ name: 'o_wb_dat', width: bus_width
42
+ }
43
+ end
44
+
45
+ main_code :register_block, from_template: true
46
+ end
47
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module Verilog
5
- VERSION = '0.3.2'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
data/lib/rggen/verilog.rb CHANGED
@@ -21,16 +21,18 @@ module RgGen
21
21
  plugin.files [
22
22
  'verilog/bit_field/type',
23
23
  'verilog/bit_field/type/rc_w0c_w1c_wc_woc',
24
- 'verilog/bit_field/type/ro',
24
+ 'verilog/bit_field/type/ro_rotrg',
25
25
  'verilog/bit_field/type/rof',
26
+ 'verilog/bit_field/type/rowo_rowotrg',
26
27
  'verilog/bit_field/type/rs_w0s_w1s_ws_wos',
27
- 'verilog/bit_field/type/rw_w1_wo_wo1',
28
+ 'verilog/bit_field/type/rw_rwtrg_w1',
28
29
  'verilog/bit_field/type/rwc',
29
30
  'verilog/bit_field/type/rwe_rwl',
30
31
  'verilog/bit_field/type/rws',
31
32
  'verilog/bit_field/type/w0crs_w0src_w1crs_w1src_wcrs_wsrc',
32
33
  'verilog/bit_field/type/w0t_w1t',
33
34
  'verilog/bit_field/type/w0trg_w1trg',
35
+ 'verilog/bit_field/type/wo_wo1_wotrg',
34
36
  'verilog/bit_field/type/wrc_wrs',
35
37
  'verilog/bit_field/verilog_top',
36
38
  'verilog/register/type',
@@ -40,6 +42,7 @@ module RgGen
40
42
  'verilog/register_block/protocol',
41
43
  'verilog/register_block/protocol/apb',
42
44
  'verilog/register_block/protocol/axi4lite',
45
+ 'verilog/register_block/protocol/wishbone',
43
46
  'verilog/register_block/verilog_top',
44
47
  'verilog/register_file/verilog_top'
45
48
  ]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-verilog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.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: 2021-05-21 00:00:00.000000000 Z
11
+ date: 2022-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rggen-systemverilog
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.25.0
19
+ version: 0.26.0
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.25.0
26
+ version: 0.26.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,14 +52,16 @@ files:
52
52
  - lib/rggen/verilog/bit_field/type.rb
53
53
  - lib/rggen/verilog/bit_field/type/rc_w0c_w1c_wc_woc.erb
54
54
  - lib/rggen/verilog/bit_field/type/rc_w0c_w1c_wc_woc.rb
55
- - lib/rggen/verilog/bit_field/type/ro.erb
56
- - lib/rggen/verilog/bit_field/type/ro.rb
55
+ - lib/rggen/verilog/bit_field/type/ro_rotrg.erb
56
+ - lib/rggen/verilog/bit_field/type/ro_rotrg.rb
57
57
  - lib/rggen/verilog/bit_field/type/rof.erb
58
58
  - lib/rggen/verilog/bit_field/type/rof.rb
59
+ - lib/rggen/verilog/bit_field/type/rowo_rowotrg.erb
60
+ - lib/rggen/verilog/bit_field/type/rowo_rowotrg.rb
59
61
  - lib/rggen/verilog/bit_field/type/rs_w0s_w1s_ws_wos.erb
60
62
  - lib/rggen/verilog/bit_field/type/rs_w0s_w1s_ws_wos.rb
61
- - lib/rggen/verilog/bit_field/type/rw_w1_wo_wo1.erb
62
- - lib/rggen/verilog/bit_field/type/rw_w1_wo_wo1.rb
63
+ - lib/rggen/verilog/bit_field/type/rw_rwtrg_w1.erb
64
+ - lib/rggen/verilog/bit_field/type/rw_rwtrg_w1.rb
63
65
  - lib/rggen/verilog/bit_field/type/rwc.erb
64
66
  - lib/rggen/verilog/bit_field/type/rwc.rb
65
67
  - lib/rggen/verilog/bit_field/type/rwe_rwl.erb
@@ -72,6 +74,8 @@ files:
72
74
  - lib/rggen/verilog/bit_field/type/w0t_w1t.rb
73
75
  - lib/rggen/verilog/bit_field/type/w0trg_w1trg.erb
74
76
  - lib/rggen/verilog/bit_field/type/w0trg_w1trg.rb
77
+ - lib/rggen/verilog/bit_field/type/wo_wo1_wotrg.erb
78
+ - lib/rggen/verilog/bit_field/type/wo_wo1_wotrg.rb
75
79
  - lib/rggen/verilog/bit_field/type/wrc_wrs.erb
76
80
  - lib/rggen/verilog/bit_field/type/wrc_wrs.rb
77
81
  - lib/rggen/verilog/bit_field/verilog_top.rb
@@ -90,6 +94,8 @@ files:
90
94
  - lib/rggen/verilog/register_block/protocol/apb.rb
91
95
  - lib/rggen/verilog/register_block/protocol/axi4lite.erb
92
96
  - lib/rggen/verilog/register_block/protocol/axi4lite.rb
97
+ - lib/rggen/verilog/register_block/protocol/wishbone.erb
98
+ - lib/rggen/verilog/register_block/protocol/wishbone.rb
93
99
  - lib/rggen/verilog/register_block/verilog_macros.erb
94
100
  - lib/rggen/verilog/register_block/verilog_top.rb
95
101
  - lib/rggen/verilog/register_file/verilog_top.rb
@@ -103,6 +109,7 @@ licenses:
103
109
  metadata:
104
110
  bug_tracker_uri: https://github.com/rggen/rggen-verilog/issues
105
111
  mailing_list_uri: https://groups.google.com/d/forum/rggen
112
+ rubygems_mfa_required: 'true'
106
113
  source_code_uri: https://github.com/rggen/rggen-verilog
107
114
  wiki_uri: https://github.com/rggen/rggen/wiki
108
115
  post_install_message:
@@ -113,15 +120,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
120
  requirements:
114
121
  - - ">="
115
122
  - !ruby/object:Gem::Version
116
- version: '2.5'
123
+ version: '2.6'
117
124
  required_rubygems_version: !ruby/object:Gem::Requirement
118
125
  requirements:
119
126
  - - ">="
120
127
  - !ruby/object:Gem::Version
121
128
  version: '0'
122
129
  requirements: []
123
- rubygems_version: 3.2.3
130
+ rubygems_version: 3.3.3
124
131
  signing_key:
125
132
  specification_version: 4
126
- summary: rggen-verilog-0.3.2
133
+ summary: rggen-verilog-0.4.0
127
134
  test_files: []
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RgGen.define_list_item_feature(:bit_field, :type, :ro) do
4
- verilog do
5
- build do
6
- unless bit_field.reference?
7
- input :value_in, {
8
- name: "i_#{full_name}", width: width, array_size: array_size
9
- }
10
- end
11
- end
12
-
13
- main_code :bit_field, from_template: true
14
-
15
- private
16
-
17
- def reference_or_value_in
18
- bit_field.reference? && reference_bit_field || value_in[loop_variables]
19
- end
20
- end
21
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RgGen.define_list_item_feature(:bit_field, :type, [:rw, :w1, :wo, :wo1]) do
4
- verilog do
5
- build do
6
- output :value_out, {
7
- name: "o_#{full_name}", width: width, array_size: array_size
8
- }
9
- end
10
-
11
- main_code :bit_field, from_template: true
12
-
13
- private
14
-
15
- def read_action
16
- bit_field.readable? && '`RGGEN_READ_DEFAULT' || '`RGGEN_READ_NONE'
17
- end
18
-
19
- def write_once
20
- [:w1, :wo1].include?(bit_field.type) && 1 || 0
21
- end
22
- end
23
- end