rggen-vhdl 0.8.0 → 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: 906e28d5d0068a76fbcf2f75df32990ad6e9e53867e2a308801f1b690a3ad819
4
- data.tar.gz: f4215e40f90090ed02e18a24943051437a46b6b6e5294fc594a5f8ebe0529a90
3
+ metadata.gz: 82e1e01c9df0b2b6f6fdc9d53f7b0b662ebd5f1bc48299b5c38a53e4da1a2137
4
+ data.tar.gz: be850f4ac1b090d779803da9e01f3204e8f852aef9238b2589130ded97782a84
5
5
  SHA512:
6
- metadata.gz: f0e512732e78c0cb65ae173e762de123359d5e3a49c5c26f53eef0abb168f78e44e327e490c5702db6d1b018e678ff38b83a39d91b74b16a611726334e4bf0e9
7
- data.tar.gz: 2d7265a0341b2e32d0ba8041cf46a27a9adef6ffa85c94af13de21a5e0805f4db91aaa5d0a85498359e935d88fd6af4c066db050a60b6a346409b26a6e76081f
6
+ metadata.gz: be576540bdcfbb183c974affd2532fe2c46717507dec07512ff240e6b01e812b7d368081d51c2b4ecf7e637e40a699c0454b2b1fb5781d169e4c8f70eba8ab92
7
+ data.tar.gz: c60ed6476f70dc145d7497fd0624a26021996091a27579779f08832d27103809b5e095fe0c3b9d581e852e25066c17e392f87af979e3ef2f3a37abf68b2aaa32
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2021-2023 Taichi Ishitani
3
+ Copyright (c) 2021-2024 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
@@ -68,7 +68,7 @@ Feedbacks, bus reports, questions and etc. are welcome! You can post them bu usi
68
68
 
69
69
  ## Copyright & License
70
70
 
71
- Copyright © 2021-2023 Taichi Ishitani. RgGen::VHDL is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
71
+ Copyright © 2021-2024 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
 
@@ -16,7 +16,7 @@ u_bit_field: entity work.rggen_bit_field
16
16
  o_sw_value => <%= bit_field_value %>,
17
17
  o_write_trigger => open,
18
18
  o_read_trigger => open,
19
- i_hw_write_enable => <%= latch_signal %>,
19
+ i_hw_write_enable => <%= valid_signal %>,
20
20
  i_hw_write_data => <%= value_in[loop_variables] %>,
21
21
  i_hw_set => (others => '0'),
22
22
  i_hw_clear => (others => '0'),
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RgGen.define_list_item_feature(:bit_field, :type, :rol) do
3
+ RgGen.define_list_item_feature(:bit_field, :type, :rohw) do
4
4
  vhdl do
5
5
  build do
6
6
  unless bit_field.reference?
7
- input :latch, {
8
- name: "i_#{full_name}_latch", width: 1, array_size: array_size
7
+ input :valid, {
8
+ name: "i_#{full_name}_valid", width: 1, array_size: array_size
9
9
  }
10
10
  end
11
11
  input :value_in, {
@@ -20,8 +20,8 @@ RgGen.define_list_item_feature(:bit_field, :type, :rol) do
20
20
 
21
21
  private
22
22
 
23
- def latch_signal
24
- reference_bit_field || latch[loop_variables]
23
+ def valid_signal
24
+ reference_bit_field || valid[loop_variables]
25
25
  end
26
26
  end
27
27
  end
@@ -0,0 +1,26 @@
1
+ u_bit_field: entity work.rggen_bit_field
2
+ generic map (
3
+ WIDTH => <%= width %>,
4
+ INITIAL_VALUE => <%= initial_value %>
5
+ )
6
+ port map (
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",
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 => open,
17
+ o_read_trigger => open,
18
+ i_hw_write_enable => <%= valid_signal %>,
19
+ i_hw_write_data => <%= value_in[loop_variables] %>,
20
+ i_hw_set => (others => '0'),
21
+ i_hw_clear => (others => '0'),
22
+ i_value => (others => '0'),
23
+ i_mask => (others => '1'),
24
+ o_value => <%= value_out[loop_variables] %>,
25
+ o_value_unmasked => open
26
+ );
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, :rwhw) do
4
+ vhdl do
5
+ build do
6
+ unless bit_field.reference?
7
+ input :valid, {
8
+ name: "i_#{full_name}_valid", width: 1, array_size: array_size
9
+ }
10
+ end
11
+ input :value_in, {
12
+ name: "i_#{full_name}", width: width, array_size: array_size
13
+ }
14
+ output :value_out, {
15
+ name: "o_#{full_name}", width: width, array_size: array_size
16
+ }
17
+ end
18
+
19
+ main_code :bit_field, from_template: true
20
+
21
+ private
22
+
23
+ def valid_signal
24
+ reference_bit_field || valid[loop_variables]
25
+ end
26
+ end
27
+ end
@@ -1,7 +1,8 @@
1
1
  u_bit_field: entity work.rggen_bit_field
2
2
  generic map (
3
3
  WIDTH => <%= width %>,
4
- INITIAL_VALUE => <%= initial_value %>
4
+ INITIAL_VALUE => <%= initial_value %>,
5
+ HW_SET_WIDTH => 1
5
6
  )
6
7
  port map (
7
8
  i_clk => <%= clock %>,
@@ -15,9 +16,9 @@ u_bit_field: entity work.rggen_bit_field
15
16
  o_sw_value => <%= bit_field_value %>,
16
17
  o_write_trigger => open,
17
18
  o_read_trigger => open,
18
- i_hw_write_enable => <%= set_signal %>,
19
- i_hw_write_data => <%= value_in[loop_variables] %>,
20
- i_hw_set => (others => '0'),
19
+ i_hw_write_enable => "0",
20
+ i_hw_write_data => (others => '0'),
21
+ i_hw_set => <%= set_signal %>,
21
22
  i_hw_clear => (others => '0'),
22
23
  i_value => (others => '0'),
23
24
  i_mask => (others => '1'),
@@ -8,9 +8,6 @@ RgGen.define_list_item_feature(:bit_field, :type, :rws) do
8
8
  name: "i_#{full_name}_set", width: 1, array_size: array_size
9
9
  }
10
10
  end
11
- input :value_in, {
12
- name: "i_#{full_name}", width: width, array_size: array_size
13
- }
14
11
  output :value_out, {
15
12
  name: "o_#{full_name}", width: width, array_size: array_size
16
13
  }
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module VHDL
5
- VERSION = '0.8.0'
5
+ VERSION = '0.9.0'
6
6
  end
7
7
  end
data/lib/rggen/vhdl.rb CHANGED
@@ -38,13 +38,14 @@ RgGen.setup_plugin :'rggen-vhdl' do |plugin|
38
38
  'vhdl/bit_field/type/rc_w0c_w1c_wc_woc',
39
39
  'vhdl/bit_field/type/ro_rotrg',
40
40
  'vhdl/bit_field/type/rof',
41
- 'vhdl/bit_field/type/rol',
41
+ 'vhdl/bit_field/type/rohw',
42
42
  'vhdl/bit_field/type/row0trg_row1trg',
43
43
  'vhdl/bit_field/type/rowo_rowotrg',
44
44
  'vhdl/bit_field/type/rs_w0s_w1s_ws_wos',
45
45
  'vhdl/bit_field/type/rw_rwtrg_w1',
46
46
  'vhdl/bit_field/type/rwc',
47
47
  'vhdl/bit_field/type/rwe_rwl',
48
+ 'vhdl/bit_field/type/rwhw',
48
49
  'vhdl/bit_field/type/rws',
49
50
  'vhdl/bit_field/type/w0crs_w0src_w1crs_w1src_wcrs_wsrc',
50
51
  'vhdl/bit_field/type/w0t_w1t',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-vhdl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
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-12-28 00:00:00.000000000 Z
11
+ date: 2024-01-22 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.32.0
19
+ version: 0.33.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.32.0
26
+ version: 0.33.0
27
27
  description: VHDL writer plugin for RgGen
28
28
  email:
29
29
  - rggen@googlegroups.com
@@ -44,8 +44,8 @@ files:
44
44
  - lib/rggen/vhdl/bit_field/type/ro_rotrg.rb
45
45
  - lib/rggen/vhdl/bit_field/type/rof.erb
46
46
  - lib/rggen/vhdl/bit_field/type/rof.rb
47
- - lib/rggen/vhdl/bit_field/type/rol.erb
48
- - lib/rggen/vhdl/bit_field/type/rol.rb
47
+ - lib/rggen/vhdl/bit_field/type/rohw.erb
48
+ - lib/rggen/vhdl/bit_field/type/rohw.rb
49
49
  - lib/rggen/vhdl/bit_field/type/row0trg_row1trg.erb
50
50
  - lib/rggen/vhdl/bit_field/type/row0trg_row1trg.rb
51
51
  - lib/rggen/vhdl/bit_field/type/rowo_rowotrg.erb
@@ -58,6 +58,8 @@ files:
58
58
  - lib/rggen/vhdl/bit_field/type/rwc.rb
59
59
  - lib/rggen/vhdl/bit_field/type/rwe_rwl.erb
60
60
  - lib/rggen/vhdl/bit_field/type/rwe_rwl.rb
61
+ - lib/rggen/vhdl/bit_field/type/rwhw.erb
62
+ - lib/rggen/vhdl/bit_field/type/rwhw.rb
61
63
  - lib/rggen/vhdl/bit_field/type/rws.erb
62
64
  - lib/rggen/vhdl/bit_field/type/rws.rb
63
65
  - lib/rggen/vhdl/bit_field/type/w0crs_w0src_w1crs_w1src_wcrs_wsrc.erb
@@ -126,5 +128,5 @@ requirements: []
126
128
  rubygems_version: 3.5.3
127
129
  signing_key:
128
130
  specification_version: 4
129
- summary: rggen-vhdl-0.8.0
131
+ summary: rggen-vhdl-0.9.0
130
132
  test_files: []