rggen-systemverilog 0.35.0 → 0.35.1
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/lib/rggen/systemverilog/rtl/bit_field/type/custom.erb +1 -0
- data/lib/rggen/systemverilog/rtl/bit_field/type/custom.rb +9 -0
- data/lib/rggen/systemverilog/rtl/bit_field/type/rc_w0c_w1c_wc_woc.erb +4 -2
- data/lib/rggen/systemverilog/rtl/bit_field/type/rc_w0c_w1c_wc_woc.rb +4 -4
- data/lib/rggen/systemverilog/rtl/bit_field/type/rohw.erb +2 -1
- data/lib/rggen/systemverilog/rtl/bit_field/type/rs_w0s_w1s_ws_wos.erb +3 -2
- data/lib/rggen/systemverilog/rtl/bit_field/type/rs_w0s_w1s_ws_wos.rb +0 -4
- data/lib/rggen/systemverilog/rtl/bit_field/type/rwc.erb +1 -0
- data/lib/rggen/systemverilog/rtl/bit_field/type/rwe_rwl.erb +1 -0
- data/lib/rggen/systemverilog/rtl/bit_field/type/rwhw.erb +2 -1
- data/lib/rggen/systemverilog/rtl/bit_field/type/rws.erb +1 -0
- data/lib/rggen/systemverilog/rtl/register_block/sv_rtl_macros.erb +12 -8
- data/lib/rggen/systemverilog/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5441e91c3aba911ffc939b52377fbe897b4b6d22eae77885a2d84c9ad039f514
|
4
|
+
data.tar.gz: 0a6537fbd0bd1c6aca0bf386a01639ecaa9eb872aa7ab9a457cdf081c629b4e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2512a43cb38779c6ba0180c5aea816708f9a085d7f6cb80d6ad4b2f7f4e387aa110451aeddc47c5df9b212343caa106e23cca671b068978dd49e36ac39dbf379
|
7
|
+
data.tar.gz: c8a517c58dc5846adf3241d11abed8007e8e347ee0417a8603ff879661dfb50f5d49656130146bba2c27cd487e9a45880a98b7717b9bb0d59d7c1b5fcac19b6c
|
@@ -4,6 +4,7 @@ rggen_bit_field #(
|
|
4
4
|
.SW_READ_ACTION (<%= sw_read_action %>),
|
5
5
|
.SW_WRITE_ACTION (<%= sw_write_action %>),
|
6
6
|
.SW_WRITE_ONCE (<%= write_once %>),
|
7
|
+
.HW_ACCESS (<%= hw_access %>),
|
7
8
|
.STORAGE (<%= storage %>),
|
8
9
|
.EXTERNAL_READ_DATA (<%= external_read_data %>),
|
9
10
|
.TRIGGER (<%= trigger %>)
|
@@ -82,6 +82,15 @@ RgGen.define_list_item_feature(:bit_field, :type, :custom) do
|
|
82
82
|
bit_field.sw_write_once? && 1 || 0
|
83
83
|
end
|
84
84
|
|
85
|
+
def hw_access
|
86
|
+
values = [
|
87
|
+
bit_field.hw_clear? && 1 || 0,
|
88
|
+
bit_field.hw_set? && 1 || 0,
|
89
|
+
bit_field.hw_write? && 1 || 0
|
90
|
+
]
|
91
|
+
"3'b#{values.join}"
|
92
|
+
end
|
93
|
+
|
85
94
|
def storage
|
86
95
|
external_read_data? && 0 || 1
|
87
96
|
end
|
@@ -2,14 +2,16 @@ rggen_bit_field #(
|
|
2
2
|
.WIDTH (<%= width %>),
|
3
3
|
.INITIAL_VALUE (<%= initial_value %>),
|
4
4
|
.SW_READ_ACTION (<%= read_action %>),
|
5
|
-
.SW_WRITE_ACTION (<%= write_action %>)
|
5
|
+
.SW_WRITE_ACTION (<%= write_action %>),
|
6
|
+
.HW_ACCESS (3'b010),
|
7
|
+
.EXTERNAL_MASK (<%= external_mask %>)
|
6
8
|
) u_bit_field (
|
7
9
|
.i_clk (<%= clock %>),
|
8
10
|
.i_rst_n (<%= reset %>),
|
9
11
|
.bit_field_if (<%= bit_field_if %>),
|
10
12
|
.o_write_trigger (),
|
11
13
|
.o_read_trigger (),
|
12
|
-
.i_sw_write_enable (
|
14
|
+
.i_sw_write_enable ('1),
|
13
15
|
.i_hw_write_enable ('0),
|
14
16
|
.i_hw_write_data ('0),
|
15
17
|
.i_hw_set (<%= set[loop_variables] %>),
|
@@ -40,12 +40,12 @@ RgGen.define_list_item_feature(:bit_field, :type, [:rc, :w0c, :w1c, :wc, :woc])
|
|
40
40
|
}[bit_field.type]
|
41
41
|
end
|
42
42
|
|
43
|
-
def write_enable
|
44
|
-
bit_field.writable? && all_bits_1 || all_bits_0
|
45
|
-
end
|
46
|
-
|
47
43
|
def value_out_unmasked
|
48
44
|
(bit_field.reference? || nil) && value_unmasked[loop_variables]
|
49
45
|
end
|
46
|
+
|
47
|
+
def external_mask
|
48
|
+
bit_field.reference? && 1 || 0
|
49
|
+
end
|
50
50
|
end
|
51
51
|
end
|
@@ -2,14 +2,15 @@ rggen_bit_field #(
|
|
2
2
|
.WIDTH (<%= width %>),
|
3
3
|
.INITIAL_VALUE (<%= initial_value %>),
|
4
4
|
.SW_READ_ACTION (<%= read_action %>),
|
5
|
-
.SW_WRITE_ACTION (<%= write_action %>)
|
5
|
+
.SW_WRITE_ACTION (<%= write_action %>),
|
6
|
+
.HW_ACCESS (3'b100)
|
6
7
|
) u_bit_field (
|
7
8
|
.i_clk (<%= clock %>),
|
8
9
|
.i_rst_n (<%= reset %>),
|
9
10
|
.bit_field_if (<%= bit_field_if %>),
|
10
11
|
.o_write_trigger (),
|
11
12
|
.o_read_trigger (),
|
12
|
-
.i_sw_write_enable (
|
13
|
+
.i_sw_write_enable ('1),
|
13
14
|
.i_hw_write_enable ('0),
|
14
15
|
.i_hw_write_data ('0),
|
15
16
|
.i_hw_set ('0),
|
@@ -1,11 +1,13 @@
|
|
1
1
|
`ifndef rggen_connect_bit_field_if
|
2
2
|
`define rggen_connect_bit_field_if(RIF, FIF, LSB, WIDTH) \
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
always_comb begin \
|
4
|
+
FIF.write_valid = RIF.write_valid; \
|
5
|
+
FIF.read_valid = RIF.read_valid; \
|
6
|
+
FIF.mask = RIF.mask[LSB+:WIDTH]; \
|
7
|
+
FIF.write_data = RIF.write_data[LSB+:WIDTH]; \
|
8
|
+
RIF.read_data[LSB+:WIDTH] = FIF.read_data; \
|
9
|
+
RIF.value[LSB+:WIDTH] = FIF.value; \
|
10
|
+
end
|
9
11
|
`endif
|
10
12
|
`ifndef rggen_tie_off_unused_signals
|
11
13
|
`define rggen_tie_off_unused_signals(WIDTH, VALID_BITS, RIF) \
|
@@ -13,8 +15,10 @@
|
|
13
15
|
genvar __i; \
|
14
16
|
for (__i = 0;__i < WIDTH;++__i) begin : g \
|
15
17
|
if ((((VALID_BITS) >> __i) % 2) == 0) begin : g \
|
16
|
-
|
17
|
-
|
18
|
+
always_comb begin \
|
19
|
+
RIF.read_data[__i] = '0; \
|
20
|
+
RIF.value[__i] = '0; \
|
21
|
+
end \
|
18
22
|
end \
|
19
23
|
end \
|
20
24
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rggen-systemverilog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.35.
|
4
|
+
version: 0.35.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Taichi Ishitani
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-06-01 00:00:00.000000000 Z
|
11
11
|
dependencies: []
|
12
12
|
description: 'SystemVerilog RTL and UVM RAL model generators for RgGen.
|
13
13
|
|
@@ -159,5 +159,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
159
|
requirements: []
|
160
160
|
rubygems_version: 3.6.2
|
161
161
|
specification_version: 4
|
162
|
-
summary: rggen-systemverilog-0.35.
|
162
|
+
summary: rggen-systemverilog-0.35.1
|
163
163
|
test_files: []
|