rggen-veryl 0.5.2 → 0.6.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: cad5389b85d457e5d6adc888974bcd91347238caa68270a306680785ebb133c0
4
- data.tar.gz: da0507974523b3d60a6abc8505d7c033896d7cff0fc3d81cc0cd7505e514ec19
3
+ metadata.gz: a3d8d6de784f9f1a04c15f727a91ffadd9eba064194b95e846c0fea063d2631c
4
+ data.tar.gz: 94504804cfae6bf5e3554c0d6954beed04e14079eac9af4dd3e2eff775cb9b49
5
5
  SHA512:
6
- metadata.gz: f179f2b8eaaa0cdea034b0694f8319e2e7ace6d60a737c183fd6fe77da7ad62d84dda21ce942156f22cd3f7c294e1ed684dd14f6a849fc65ec88ccd7e9618ea6
7
- data.tar.gz: bc8ba074f1f2e472426a9f84f70f4d60a6ebe014e119fb6304b8315641d260bc8f18fac9f3345e2aeb5f55d2bd685ffd033875a881c5ad0142e13f25db37448a
6
+ metadata.gz: 55ad1782e4c0e6f9689664635921e00c4e2e5f9cc7792ff1390ad5126762b7cf04cac4a11d25294a6638cf1d4c675e18cace2138e974e6cb5fc583bab0ce667b
7
+ data.tar.gz: 2bd8a3f510901a0caa289e9d654d2be77811f3dd3ee1af12f55ad13a4bd73a785f8bfc3730e06643b732f6bfc5742288462ac25234646da17dd748caf80a132c
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2024-2025 Taichi Ishitani
3
+ Copyright (c) 2024-2026 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
@@ -2,7 +2,7 @@
2
2
  [![CI](https://github.com/rggen/rggen-veryl/actions/workflows/ci.yml/badge.svg)](https://github.com/rggen/rggen-veryl/actions/workflows/ci.yml)
3
3
  [![Maintainability](https://qlty.sh/badges/7537364e-4631-4c9a-b873-5bceb9418ed0/maintainability.svg)](https://qlty.sh/gh/rggen/projects/rggen-veryl)
4
4
  [![codecov](https://codecov.io/gh/rggen/rggen-veryl/graph/badge.svg?token=iYlaqhSjat)](https://codecov.io/gh/rggen/rggen-veryl)
5
- [![Gitter](https://badges.gitter.im/rggen/rggen.svg)](https://gitter.im/rggen/rggen?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
5
+ [![Discord](https://img.shields.io/discord/1406572699467124806?style=flat&logo=discord)](https://discord.com/invite/KWya83ZZxr)
6
6
 
7
7
  # RgGen::Veryl
8
8
 
@@ -43,7 +43,7 @@ You need to add this repository to the `[dependencies]` section in your `Veryl.t
43
43
 
44
44
  ```toml
45
45
  [dependencies]
46
- "rggen" = { github = "rggen/rggen-veryl-rtl", version = "0.5.0" }
46
+ "rggen" = { github = "rggen/rggen-veryl-rtl", version = "0.6.0" }
47
47
  ```
48
48
 
49
49
  ## Contact
@@ -52,13 +52,13 @@ Feedbacks, bus reports, questions and etc. are welcome! You can post them by usi
52
52
 
53
53
  * [GitHub Issue Tracker](https://github.com/rggen/rggen/issues)
54
54
  * [GitHub Discussions](https://github.com/rggen/rggen/discussions)
55
- * [Chat Room](https://gitter.im/rggen/rggen)
55
+ * [Discord](https://discord.com/invite/KWya83ZZxr)
56
56
  * [Mailing List](https://groups.google.com/d/forum/rggen)
57
57
  * [Mail](mailto:rggen@googlegroups.com)
58
58
 
59
59
  ## Copyright & License
60
60
 
61
- Copyright © 2024-2025 Taichi Ishitani. RgGen::Veryl is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
61
+ Copyright © 2024-2026 Taichi Ishitani. RgGen::Veryl is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
62
62
 
63
63
  ## Code of Conduct
64
64
 
@@ -0,0 +1,16 @@
1
+ inst u_bit_field: rggen::rggen_bit_field_counter #(
2
+ WIDTH : <%= width %>,
3
+ INITIAL_VALUE: <%= initial_value %>,
4
+ UP_WIDTH : <%= up_width %>,
5
+ DOWN_WIDTH : <%= down_width %>,
6
+ WRAP_AROUND : <%= wrap_around %>,
7
+ USE_CLEAR : <%= use_clear_value %>,
8
+ )(
9
+ i_clk : <%= clock %>,
10
+ i_rst : <%= reset %>,
11
+ bit_field_if: <%= bit_field_if %>,
12
+ i_clear : <%= clear_signal %>,
13
+ i_up : <%= up[loop_variables] %>,
14
+ i_down : <%= down[loop_variables] %>,
15
+ o_count : <%= count[loop_variables] %>,
16
+ );
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, :counter) do
4
+ veryl do
5
+ build do
6
+ param :up_width, {
7
+ name: "#{full_name}_up_width".upcase, type: :u32, default: 1
8
+ }
9
+ param :down_width, {
10
+ name: "#{full_name}_down_width".upcase, type: :u32, default: 1
11
+ }
12
+ param :wrap_around, {
13
+ name: "#{full_name}_wrap_around".upcase, type: :bool, default: false
14
+ }
15
+ if external_clear?
16
+ param :use_clear, {
17
+ name: "#{full_name}_use_clear".upcase, type: :bool, default: true
18
+ }
19
+ end
20
+
21
+ input :up, {
22
+ name: "i_#{full_name}_up",
23
+ width: function_call(:clip_width, [up_width]), array_size:
24
+ }
25
+ input :down, {
26
+ name: "i_#{full_name}_down",
27
+ width: function_call(:clip_width, [down_width]), array_size:
28
+ }
29
+ if external_clear?
30
+ input :clear, {
31
+ name: "i_#{full_name}_clear", width: 1, array_size:
32
+ }
33
+ end
34
+ output :count, {
35
+ name: "o_#{full_name}", width:, array_size:
36
+ }
37
+ end
38
+
39
+ main_code :bit_field, from_template: true
40
+
41
+ private
42
+
43
+ def external_clear?
44
+ !bit_field.reference?
45
+ end
46
+
47
+ def use_clear_value
48
+ !external_clear? || use_clear
49
+ end
50
+
51
+ def clear_signal
52
+ reference_bit_field || clear[loop_variables]
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,15 @@
1
+ inst u_register: rggen::rggen_maskable_register #(
2
+ READABLE: <%= readable? %>,
3
+ WRITABLE: <%= writable? %>,
4
+ ADDRESS_WIDTH: <%= address_width %>,
5
+ OFFSET_ADDRESS: <%= offset_address %>,
6
+ BUS_WIDTH: <%= bus_width %>,
7
+ DATA_WIDTH: <%= width %>,
8
+ VALUE_WIDTH: <%= value_width %>,
9
+ VALID_BITS: <%= valid_bits %>
10
+ )(
11
+ i_clk: <%= register_block.clock %>,
12
+ i_rst: <%= register_block.reset %>,
13
+ register_if: <%= register_if %>,
14
+ bit_field_if: <%= bit_field_if %>
15
+ );
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:register, :type, :maskable) do
4
+ veryl do
5
+ main_code :register, from_template: true
6
+ end
7
+ end
@@ -25,6 +25,7 @@ RgGen.define_simple_feature(:register_block, :veryl_top) do
25
25
  code << module_definition(register_block.name) do |m|
26
26
  m.attributes attributes
27
27
  m.package_imports packages
28
+ m.generics generics
28
29
  m.params params
29
30
  m.ports ports
30
31
  m.variables variables
@@ -55,6 +56,10 @@ RgGen.define_simple_feature(:register_block, :veryl_top) do
55
56
  ['rggen::rggen_rtl_pkg', *register_block.package_imports(:register_block)]
56
57
  end
57
58
 
59
+ def generics
60
+ register_block.declarations[:generic]
61
+ end
62
+
58
63
  def params
59
64
  register_block.declarations[:parameter]
60
65
  end
@@ -4,6 +4,8 @@ module RgGen
4
4
  module Veryl
5
5
  module Utility
6
6
  class Modport < SystemVerilog::Common::Utility::InterfacePort
7
+ define_attribute :generics
8
+
7
9
  def declaration
8
10
  [
9
11
  "#{name}:",
@@ -15,7 +17,13 @@ module RgGen
15
17
  private
16
18
 
17
19
  def port_type
18
- "#{@interface_type}::#{@modport_name}#{array_size_notation}"
20
+ "#{@interface_type}#{generics_notation}::#{@modport_name}#{array_size_notation}"
21
+ end
22
+
23
+ def generics_notation
24
+ return unless @generics
25
+
26
+ "::<#{@generics.join(', ')}>"
19
27
  end
20
28
 
21
29
  def array_size_notation
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module Veryl
5
- VERSION = '0.5.2'
5
+ VERSION = '0.6.0'
6
6
  end
7
7
  end
data/lib/rggen/veryl.rb CHANGED
@@ -36,9 +36,11 @@ RgGen.setup_plugin :'rggen-veryl' do |plugin|
36
36
  'veryl/register/type',
37
37
  'veryl/register/type/external',
38
38
  'veryl/register/type/indirect',
39
+ 'veryl/register/type/maskable',
39
40
  'veryl/register/type/rw',
40
41
  'veryl/bit_field/veryl_top',
41
42
  'veryl/bit_field/type',
43
+ 'veryl/bit_field/type/counter',
42
44
  'veryl/bit_field/type/custom',
43
45
  'veryl/bit_field/type/rc_w0c_w1c_wc_woc',
44
46
  'veryl/bit_field/type/ro_rotrg',
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-veryl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-08-04 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rggen-systemverilog
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 0.35.1
18
+ version: 0.36.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 0.35.1
25
+ version: 0.36.0
26
26
  description: Veryl writer plugin for RgGen
27
27
  email:
28
28
  - rggen@googlegroups.com
@@ -36,6 +36,8 @@ files:
36
36
  - lib/rggen/veryl.rb
37
37
  - lib/rggen/veryl/bit_field/common.erb
38
38
  - lib/rggen/veryl/bit_field/type.rb
39
+ - lib/rggen/veryl/bit_field/type/counter.erb
40
+ - lib/rggen/veryl/bit_field/type/counter.rb
39
41
  - lib/rggen/veryl/bit_field/type/custom.erb
40
42
  - lib/rggen/veryl/bit_field/type/custom.rb
41
43
  - lib/rggen/veryl/bit_field/type/rc_w0c_w1c_wc_woc.erb
@@ -82,6 +84,8 @@ files:
82
84
  - lib/rggen/veryl/register/type/external.rb
83
85
  - lib/rggen/veryl/register/type/indirect.erb
84
86
  - lib/rggen/veryl/register/type/indirect.rb
87
+ - lib/rggen/veryl/register/type/maskable.erb
88
+ - lib/rggen/veryl/register/type/maskable.rb
85
89
  - lib/rggen/veryl/register/type/rw.erb
86
90
  - lib/rggen/veryl/register/type/rw.rb
87
91
  - lib/rggen/veryl/register/veryl_top.rb
@@ -123,14 +127,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
127
  requirements:
124
128
  - - ">="
125
129
  - !ruby/object:Gem::Version
126
- version: '3.1'
130
+ version: '3.2'
127
131
  required_rubygems_version: !ruby/object:Gem::Requirement
128
132
  requirements:
129
133
  - - ">="
130
134
  - !ruby/object:Gem::Version
131
135
  version: '0'
132
136
  requirements: []
133
- rubygems_version: 3.6.2
137
+ rubygems_version: 4.0.3
134
138
  specification_version: 4
135
- summary: rggen-veryl-0.5.2
139
+ summary: rggen-veryl-0.6.0
136
140
  test_files: []