rggen-verilog 0.8.1 → 0.9.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: 501905cb54813b90fc9080c475f4c1b14c341ede3538e10628e9e30d0cb39c24
4
- data.tar.gz: bfe15d77b852c68ba19b8a4f17e8f9cf961e218c21c294d752268add08262a95
3
+ metadata.gz: 9c26c2ca7f16bb814bd71bd09e0139bc79bbc095389653585843024e2944314b
4
+ data.tar.gz: fa8243ba5f46b51121594dbd982971b3bc253832de69a00229260d23df5dc446
5
5
  SHA512:
6
- metadata.gz: '024865e81e0e44340b062633e411e4bd1b5db96e67d72e10aeacce980610f0d6a0cdd2db273dcf33e1fd4fca9a96a8a43a23bf7722b4e4b097853a80d403e7c2'
7
- data.tar.gz: 2bee917871bf9e33cc311aa84fe7bc39e6a8cfff18ec9ee7e0e970f01a5efbfde923aa2271e257032d5af5a271a9b12507afde8c65ff8cee8a3d39fc917d769f
6
+ metadata.gz: e1359eeb96ed656ad11c5d8dc3c51e2274d97b629a273a1594268ef2a0ace7c8d4db144a83c14b0229f0c8eb49704e141b89d05764d556a34c4d408a9a13cc6b
7
+ data.tar.gz: 617201c69145f451c1bb33794af0356082cf6a5009f6834ff548d651a1d436785045455f85d21597f1277ba8a0deba03d1815a04a6d53aed6ff93f6364ad84b7
@@ -1,6 +1,7 @@
1
1
  rggen_external_register #(
2
2
  .ADDRESS_WIDTH (<%= address_width %>),
3
3
  .BUS_WIDTH (<%= bus_width %>),
4
+ .STROBE_WIDTH (<%= strobe_width %>),
4
5
  .START_ADDRESS (<%= start_address %>),
5
6
  .BYTE_SIZE (<%= byte_size %>)
6
7
  ) u_register (
@@ -3,6 +3,10 @@
3
3
  RgGen.define_list_item_feature(:register, :type, :external) do
4
4
  verilog_rtl do
5
5
  build do
6
+ parameter :strobe_width, {
7
+ name: "#{register.name}_strobe_width".upcase,
8
+ default: configuration.bus_width / 8
9
+ }
6
10
  output :external_valid, {
7
11
  name: "o_#{register.name}_valid", width: 1
8
12
  }
@@ -16,7 +20,7 @@ RgGen.define_list_item_feature(:register, :type, :external) do
16
20
  name: "o_#{register.name}_data", width: bus_width
17
21
  }
18
22
  output :external_strobe, {
19
- name: "o_#{register.name}_strobe", width: bus_width / 8
23
+ name: "o_#{register.name}_strobe", width: strobe_width
20
24
  }
21
25
  input :external_ready, {
22
26
  name: "i_#{register.name}_ready", width: 1
@@ -0,0 +1,27 @@
1
+ rggen_default_register #(
2
+ .READABLE (1),
3
+ .WRITABLE (1),
4
+ .ADDRESS_WIDTH (<%= address_width %>),
5
+ .OFFSET_ADDRESS (<%= offset_address %>),
6
+ .BUS_WIDTH (<%= bus_width %>),
7
+ .DATA_WIDTH (<%= width %>)
8
+ ) u_register (
9
+ .i_clk (<%= clock %>),
10
+ .i_rst_n (<%= reset %>),
11
+ .i_register_valid (<%= register_valid %>),
12
+ .i_register_access (<%= register_access %>),
13
+ .i_register_address (<%= register_address %>),
14
+ .i_register_write_data (<%= register_write_data %>),
15
+ .i_register_strobe (<%= register_strobe %>),
16
+ .o_register_active (<%= register_active %>),
17
+ .o_register_ready (<%= register_ready %>),
18
+ .o_register_status (<%= register_status %>),
19
+ .o_register_read_data (<%= register_read_data %>),
20
+ .o_register_value (<%= register_value %>),
21
+ .o_bit_field_valid (<%= bit_field_valid %>),
22
+ .o_bit_field_read_mask (<%= bit_field_read_mask %>),
23
+ .o_bit_field_write_mask (<%= bit_field_write_mask %>),
24
+ .o_bit_field_write_data (<%= bit_field_write_data %>),
25
+ .i_bit_field_read_data (<%= bit_field_read_data %>),
26
+ .i_bit_field_value (<%= bit_field_value %>)
27
+ );
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:register, :type, :rw) do
4
+ verilog_rtl do
5
+ main_code :register, from_template: true
6
+ end
7
+ end
@@ -23,7 +23,7 @@ RgGen.define_simple_feature(:register_block, :verilog_top) do
23
23
  name: 'w_register_write_data', width: bus_width
24
24
  }
25
25
  wire :register_strobe, {
26
- name: 'w_register_strobe', width: bus_width / 8
26
+ name: 'w_register_strobe', width: bus_width
27
27
  }
28
28
  wire :register_active, {
29
29
  name: 'w_register_active', width: 1, array_size: [total_registers]
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module Verilog
5
- VERSION = '0.8.1'
5
+ VERSION = '0.9.0'
6
6
  end
7
7
  end
data/lib/rggen/verilog.rb CHANGED
@@ -31,6 +31,7 @@ RgGen.setup_plugin :'rggen-verilog' do |plugin|
31
31
  'verilog/rtl/register/type',
32
32
  'verilog/rtl/register/type/external',
33
33
  'verilog/rtl/register/type/indirect',
34
+ 'verilog/rtl/register/type/rw',
34
35
  'verilog/rtl/bit_field/verilog_top',
35
36
  'verilog/rtl/bit_field/type',
36
37
  'verilog/rtl/bit_field/type/custom',
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.8.1
4
+ version: 0.9.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: 2023-06-09 00:00:00.000000000 Z
11
+ date: 2023-09-12 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.30.1
19
+ version: 0.31.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.30.1
26
+ version: 0.31.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,8 @@ files:
94
94
  - lib/rggen/verilog/rtl/register/type/external.rb
95
95
  - lib/rggen/verilog/rtl/register/type/indirect.erb
96
96
  - lib/rggen/verilog/rtl/register/type/indirect.rb
97
+ - lib/rggen/verilog/rtl/register/type/rw.erb
98
+ - lib/rggen/verilog/rtl/register/type/rw.rb
97
99
  - lib/rggen/verilog/rtl/register/verilog_top.rb
98
100
  - lib/rggen/verilog/rtl/register_block/protocol.rb
99
101
  - lib/rggen/verilog/rtl/register_block/protocol/apb.erb
@@ -137,8 +139,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
139
  - !ruby/object:Gem::Version
138
140
  version: '0'
139
141
  requirements: []
140
- rubygems_version: 3.4.10
142
+ rubygems_version: 3.4.17
141
143
  signing_key:
142
144
  specification_version: 4
143
- summary: rggen-verilog-0.8.1
145
+ summary: rggen-verilog-0.9.0
144
146
  test_files: []