rggen-vhdl 0.12.2 → 0.13.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 +4 -4
- data/LICENSE +1 -1
- data/README.md +3 -3
- data/lib/rggen/vhdl/bit_field/type/counter.erb +23 -0
- data/lib/rggen/vhdl/bit_field/type/counter.rb +55 -0
- data/lib/rggen/vhdl/register/type/maskable.erb +29 -0
- data/lib/rggen/vhdl/register/type/maskable.rb +7 -0
- data/lib/rggen/vhdl/register_block/protocol/axi4lite.rb +1 -1
- data/lib/rggen/vhdl/utility/identifier.rb +5 -7
- data/lib/rggen/vhdl/version.rb +1 -1
- data/lib/rggen/vhdl.rb +2 -0
- metadata +11 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aab2a582042ff67cb8a436badd9c9e45db892433943289caa549e72137afeb7d
|
|
4
|
+
data.tar.gz: 6d1a70927e02f01554d047824fcbf49111900371f438be44ae3b0e618f2bfd20
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 43e9a26277a6a23701e5d7aeeccaa8842f331feb2bbe56fc70023b9139416bda3d26ed6a1310c8b24e00a75089c1df5eef139073ca0c4dd9c5174f4deed4bb1e
|
|
7
|
+
data.tar.gz: 0041704e5f8fb7c8124006ec529db4f63b93ff534f06e47f3662b3ed92d674feb04ca25d541b5f651f0dc12f3ebe17dca2d296178d9ea8d7416136fcfbef2d1b
|
data/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License (MIT)
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2021-
|
|
3
|
+
Copyright (c) 2021-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
|
[](https://github.com/rggen/rggen-vhdl/actions/workflows/ci.yml)
|
|
3
3
|
[](https://qlty.sh/gh/rggen/projects/rggen-vhdl)
|
|
4
4
|
[](https://codecov.io/gh/rggen/rggen-vhdl)
|
|
5
|
-
[](https://discord.com/invite/KWya83ZZxr)
|
|
6
6
|
|
|
7
7
|
# RgGen::VHDL
|
|
8
8
|
|
|
@@ -62,13 +62,13 @@ Feedbacks, bus reports, questions and etc. are welcome! You can post them bu usi
|
|
|
62
62
|
|
|
63
63
|
* [GitHub Issue Tracker](https://github.com/rggen/rggen/issues)
|
|
64
64
|
* [GitHub Discussions](https://github.com/rggen/rggen/discussions)
|
|
65
|
-
* [
|
|
65
|
+
* [Discord](https://discord.com/invite/KWya83ZZxr)
|
|
66
66
|
* [Mailing List](https://groups.google.com/d/forum/rggen)
|
|
67
67
|
* [Mail](mailto:rggen@googlegroups.com)
|
|
68
68
|
|
|
69
69
|
## Copyright & License
|
|
70
70
|
|
|
71
|
-
Copyright © 2021-
|
|
71
|
+
Copyright © 2021-2026 Taichi Ishitani. RgGen::VHDL is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
|
|
72
72
|
|
|
73
73
|
## Code of Conduct
|
|
74
74
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
u_bit_field: entity <%= library_name %>.rggen_bit_field_counter
|
|
2
|
+
generic map (
|
|
3
|
+
WIDTH => <%= width %>,
|
|
4
|
+
INITIAL_VALUE => <%= initial_value %>,
|
|
5
|
+
UP_WIDTH => <%= up_width %>,
|
|
6
|
+
DOWN_WIDTH => <%= down_width %>,
|
|
7
|
+
WRAP_AROUND => <%= wrap_around %>,
|
|
8
|
+
USE_CLEAR => <%= use_clear_value %>
|
|
9
|
+
)
|
|
10
|
+
port map (
|
|
11
|
+
i_clk => <%= clock %>,
|
|
12
|
+
i_rst_n => <%= reset %>,
|
|
13
|
+
i_sw_read_valid => <%= bit_field_read_valid %>,
|
|
14
|
+
i_sw_write_valid => <%= bit_field_write_valid %>,
|
|
15
|
+
i_sw_mask => <%= bit_field_mask %>,
|
|
16
|
+
i_sw_write_data => <%= bit_field_write_data %>,
|
|
17
|
+
o_sw_read_data => <%= bit_field_read_data %>,
|
|
18
|
+
o_sw_value => <%= bit_field_value %>,
|
|
19
|
+
i_clear => <%= clear_signal %>,
|
|
20
|
+
i_up => <%= up[loop_variables] %>,
|
|
21
|
+
i_down => <%= down[loop_variables] %>,
|
|
22
|
+
o_count => <%= count[loop_variables] %>
|
|
23
|
+
);
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RgGen.define_list_item_feature(:bit_field, :type, :counter) do
|
|
4
|
+
vhdl do
|
|
5
|
+
build do
|
|
6
|
+
generic :up_width, {
|
|
7
|
+
name: "#{full_name}_up_width".upcase, type: :natural, default: 1
|
|
8
|
+
}
|
|
9
|
+
generic :down_width, {
|
|
10
|
+
name: "#{full_name}_down_width".upcase, type: :natural, default: 1
|
|
11
|
+
}
|
|
12
|
+
generic :wrap_around, {
|
|
13
|
+
name: "#{full_name}_wrap_around".upcase, type: :boolean, default: false
|
|
14
|
+
}
|
|
15
|
+
if external_clear?
|
|
16
|
+
generic :use_clear, {
|
|
17
|
+
name: "#{full_name}_use_clear".upcase, type: :boolean, default: true
|
|
18
|
+
}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
input :up, {
|
|
22
|
+
name: "i_#{full_name}_up",
|
|
23
|
+
width: "clip_width(#{up_width})", array_size:
|
|
24
|
+
}
|
|
25
|
+
input :down, {
|
|
26
|
+
name: "i_#{full_name}_down",
|
|
27
|
+
width: "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,29 @@
|
|
|
1
|
+
u_register: entity <%= library_name %>.rggen_maskable_register
|
|
2
|
+
generic map (
|
|
3
|
+
READABLE => <%= readable? %>,
|
|
4
|
+
WRITABLE => <%= writable? %>,
|
|
5
|
+
ADDRESS_WIDTH => <%= address_width %>,
|
|
6
|
+
OFFSET_ADDRESS => <%= offset_address %>,
|
|
7
|
+
BUS_WIDTH => <%= bus_width %>,
|
|
8
|
+
DATA_WIDTH => <%= width %>
|
|
9
|
+
)
|
|
10
|
+
port map (
|
|
11
|
+
i_clk => <%= clock %>,
|
|
12
|
+
i_rst_n => <%= reset %>,
|
|
13
|
+
i_register_valid => <%= register_valid %>,
|
|
14
|
+
i_register_access => <%= register_access %>,
|
|
15
|
+
i_register_address => <%= register_address %>,
|
|
16
|
+
i_register_write_data => <%= register_write_data %>,
|
|
17
|
+
i_register_strobe => <%= register_strobe %>,
|
|
18
|
+
o_register_active => <%= register_active %>,
|
|
19
|
+
o_register_ready => <%= register_ready %>,
|
|
20
|
+
o_register_status => <%= register_status %>,
|
|
21
|
+
o_register_read_data => <%= register_read_data %>,
|
|
22
|
+
o_register_value => <%= register_value %>,
|
|
23
|
+
o_bit_field_read_valid => <%= bit_field_read_valid %>,
|
|
24
|
+
o_bit_field_write_valid => <%= bit_field_write_valid %>,
|
|
25
|
+
o_bit_field_mask => <%= bit_field_mask %>,
|
|
26
|
+
o_bit_field_write_data => <%= bit_field_write_data %>,
|
|
27
|
+
i_bit_field_read_data => <%= bit_field_read_data %>,
|
|
28
|
+
i_bit_field_value => <%= bit_field_value %>
|
|
29
|
+
);
|
|
@@ -24,13 +24,11 @@ module RgGen
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def __array_slice__(lsb, width)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
"(#{msb} downto #{lsb})"
|
|
27
|
+
if integer?(width)
|
|
28
|
+
"(#{__reduce_array__([lsb, width - 1], :+, 0)} downto #{lsb})"
|
|
29
|
+
else
|
|
30
|
+
"(#{__reduce_array__([lsb, width], :+, 0)}-1 downto #{lsb})"
|
|
31
|
+
end
|
|
34
32
|
end
|
|
35
33
|
end
|
|
36
34
|
end
|
data/lib/rggen/vhdl/version.rb
CHANGED
data/lib/rggen/vhdl.rb
CHANGED
|
@@ -35,9 +35,11 @@ RgGen.setup_plugin :'rggen-vhdl' do |plugin|
|
|
|
35
35
|
'vhdl/register/type',
|
|
36
36
|
'vhdl/register/type/external',
|
|
37
37
|
'vhdl/register/type/indirect',
|
|
38
|
+
'vhdl/register/type/maskable',
|
|
38
39
|
'vhdl/register/type/rw',
|
|
39
40
|
'vhdl/bit_field/vhdl_top',
|
|
40
41
|
'vhdl/bit_field/type',
|
|
42
|
+
'vhdl/bit_field/type/counter',
|
|
41
43
|
'vhdl/bit_field/type/custom',
|
|
42
44
|
'vhdl/bit_field/type/rc_w0c_w1c_wc_woc',
|
|
43
45
|
'vhdl/bit_field/type/ro_rotrg',
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rggen-vhdl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.13.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Taichi Ishitani
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
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.
|
|
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.
|
|
25
|
+
version: 0.36.0
|
|
26
26
|
description: VHDL writer plugin for RgGen
|
|
27
27
|
email:
|
|
28
28
|
- rggen@googlegroups.com
|
|
@@ -35,6 +35,8 @@ files:
|
|
|
35
35
|
- README.md
|
|
36
36
|
- lib/rggen/vhdl.rb
|
|
37
37
|
- lib/rggen/vhdl/bit_field/type.rb
|
|
38
|
+
- lib/rggen/vhdl/bit_field/type/counter.erb
|
|
39
|
+
- lib/rggen/vhdl/bit_field/type/counter.rb
|
|
38
40
|
- lib/rggen/vhdl/bit_field/type/custom.erb
|
|
39
41
|
- lib/rggen/vhdl/bit_field/type/custom.rb
|
|
40
42
|
- lib/rggen/vhdl/bit_field/type/rc_w0c_w1c_wc_woc.erb
|
|
@@ -83,6 +85,8 @@ files:
|
|
|
83
85
|
- lib/rggen/vhdl/register/type/external.rb
|
|
84
86
|
- lib/rggen/vhdl/register/type/indirect.erb
|
|
85
87
|
- lib/rggen/vhdl/register/type/indirect.rb
|
|
88
|
+
- lib/rggen/vhdl/register/type/maskable.erb
|
|
89
|
+
- lib/rggen/vhdl/register/type/maskable.rb
|
|
86
90
|
- lib/rggen/vhdl/register/type/rw.erb
|
|
87
91
|
- lib/rggen/vhdl/register/type/rw.rb
|
|
88
92
|
- lib/rggen/vhdl/register/vhdl_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.
|
|
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:
|
|
137
|
+
rubygems_version: 4.0.3
|
|
134
138
|
specification_version: 4
|
|
135
|
-
summary: rggen-vhdl-0.
|
|
139
|
+
summary: rggen-vhdl-0.13.0
|
|
136
140
|
test_files: []
|